У меня есть этот модульный тест:
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")
})
})
Когда я запускаю тесты локально:
npm run test.
Они пройдены.
Однако когда я объединяю изменения, последний тест завершается неудачно:
Это format2APIDate:
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")}`
}
Привет @Justinas, я обновил свой вопрос. Я считаю, что проблема связана с настройкой часового пояса на сервере.
Отвечает ли это на ваш вопрос? getDate в JavaScript возвращает неправильную дату





Агенты сборки Azure могут быть размещены в разных часовых поясах. При создании в GMT+0100 местное время агента сборки облака может быть GMT+0300. Поэтому для const date = new Date("Mon Feb 12 2024 00:00:00 GMT+0100 (Central European Standard Time)") он будет содержать еще одну местную дату.
В Azure Pipelines используется время UTC (GMT+0), которое на 1 hour отстает от вашего часового пояса. В вашем тестовом коде дата-время «2024/02/12 00:00:00 GMT+1» будет рассчитано как «2024/02/11 23:00:00 GMT+0» (или «2024/02/11 23:00:00 UTC»).
Вы можете попытаться настроить в тестовом коде любую из следующих вещей:
1. Например, 02:00:00.
Что делает
format2APIDate? Может быть, при вызове кто-то использует неправильный часовой пояс? Например.2024/02/12 00:00:00 GMT+3равно2024/02/11 21:00:00 UTC