Testando datas mais facilmente com Jest

Javascript를 사용 중지 | Typescript (e outras linguagens também 😜) sabe a dor de cabeça que é trabalhar com datas.

Uma coisa é certa, do juninho ao sênior em algum momento você vai precisar formatar uma data (e não vai saber 😬) ou vai ficar (muito) estressado porque o diabo da data que você criou está ficando com 3 horas a menos (kkk) .

O Primeiro problema é normal. Já o segundo se deve a forma como o Node trabalha com timezones. Nesse caso, ao criar um objeto Date com o comando new Date('2022-05-21') e tentar utilizar algum método como .toString() , o Node vai trazer esse valor acrescido (ou subtraído) do valor timezone da nossa máquina (normalmente aqui no Brasil seria de -3 horas). Por isso ocorre de criarmos uma data e ao tentarmos exibí-la, o valor retornado ser a data do dia anterior às 21h.

예:

const date = new Date('2022-05-21')

date.toString() // deveria retornar Sat May 21 2022 00:00:00
// mas retorna Fri May 20 2022 21:00:00


Para resolver esse problema na execução de testes com Jest e evitar programações alternativas 🤭, podemos fazer uma simples configuração que lhe salvará vários fios de cabelo.

바모스 라. Primeiramente precisamos criar um arquivo de configuração global para o jest (não é o jest.config). O nome não importa mas nesse exemplo vamos chamá-lo de globalJestSetup.ts e ele terá uma simples função exportada como default.



Nesse arquivo estamos simplesmente dizendo para o Jest semper utilizar a timezone UTC, assim ao trabalhar com datas não haverá o problema de termos o valor diferente da timezone.

Feito isso agora só precisamos adicionar esse arquivo nas configurações do Jest (no arquivo jest.config) como mostrado na imagem abaixo, utilizando or atributo globalSetup :



Lembrando que o nome que você deu ao arquivo deve ser igual ao usado na configuração do Jest.

E é basicamente isso. Agora ao fazer seus testes, as datas semper terão o valor que você esperava hehe, independente do ambiente em que eles sejam executados.

보너스:
다음 추가 포드 테스트 테스트는 실제 구성 기능을 검증하기 위한 것입니다.

좋은 웹페이지 즐겨찾기