Eu tenho este teste de unidade:
import { describe, expect, it } from "@jest/globals"
import { format2APIDate } from "../helpers"
describe("format2APIDate()", () => {
it("should return a date with the format: YYYY/MM/DD for date with this format YYYY-MM-DD", () => {
const date = new Date("2024-02-12")
const formattedDate = format2APIDate(date)
expect(formattedDate).toBe("2024/02/12")
})
it("should return a date with the format: YYYY/MM/DD when a date has this format", () => {
const date = new Date("Mon Feb 12 2024 00:00:00 GMT+0100 (Central European Standard Time)")
const formattedDate = format2APIDate(date)
expect(formattedDate).toBe("2024/02/12")
})
})
Quando executo os testes localmente:
npm run test
.
Eles são aprovados.
No entanto, quando mesclo as alterações, o último teste falha:
Este é o formato2APIDate:
export const format2APIDate = (date: Date) => {
// Format the date as "YYYY/MM/DD"
const formattedDate = new Date(date)
return `${formattedDate.getFullYear()}/${String(formattedDate.getMonth() + 1).padStart(2, "0")}/${String(formattedDate.getDate()).padStart(2, "0")}`
}
No Azure Pipelines, ele usa o horário UTC (GMT+0) que está
1 hour
atrasado em relação ao seu fuso horário. No seu código de teste, a data e hora "2024/02/12 00:00:00 GMT+1
" será calculada como "2024/02/11 23:00:00 GMT+0
" (ou "2024/02/11 23:00:00 UTC
").Você pode tentar ajustar qualquer uma das seguintes coisas em seu código de teste:
1
. Por exemplo,02:00:00
.Os agentes do Azure Build podem ser colocados em fusos horários diferentes. Ao criar em GMT+0100, a hora local do agente de construção de nuvem pode ser GMT+0300. Portanto, conterá outra data local para
const date = new Date("Mon Feb 12 2024 00:00:00 GMT+0100 (Central European Standard Time)")
.