forked from MapComplete/MapComplete
78 lines
2.6 KiB
TypeScript
78 lines
2.6 KiB
TypeScript
import { describe, it } from "vitest"
|
|
import { REPORT_REASONS } from "panoramax-js"
|
|
import Translations from "../../src/UI/i18n/Translations"
|
|
import { OH, OpeningRange } from "../../src/UI/OpeningHours/OpeningHours"
|
|
import { expect } from "chai"
|
|
|
|
describe("OH", () => {
|
|
describe("getRanges", () => {
|
|
process.env.TZ = "UTC"
|
|
it("standard opening hours", () => {
|
|
const oh_obj = OH.createOhObject(
|
|
{
|
|
opening_hours: "10:00-18:00",
|
|
_lat: 0,
|
|
_lon: 0,
|
|
_country: "be",
|
|
},
|
|
"10:00-18:00",
|
|
"be"
|
|
)
|
|
const ranges = OH.getRanges(
|
|
oh_obj,
|
|
new Date("2025-06-10T00:00:00Z"),
|
|
new Date("2025-06-11T00:00:00Z")
|
|
)
|
|
// Deep equal compares the dates correctly
|
|
expect(ranges[1]).to.deep.equal([
|
|
{
|
|
comment: undefined,
|
|
endDate: new Date("2025-06-10T18:00:00.000Z"),
|
|
isOpen: true,
|
|
isSpecial: false,
|
|
openEnd: false,
|
|
startDate: new Date("2025-06-10T10:00:00.000Z"),
|
|
},
|
|
])
|
|
})
|
|
it("open ended opening hours", () => {
|
|
process.env.TZ = "UTC"
|
|
const oh_obj = OH.createOhObject(
|
|
{
|
|
opening_hours: "10:00-18:00+",
|
|
_lat: 0,
|
|
_lon: 0,
|
|
_country: "be",
|
|
},
|
|
"10:00+",
|
|
"be"
|
|
)
|
|
const ranges = OH.getRanges(
|
|
oh_obj,
|
|
new Date("2025-06-09T00:00:00Z"),
|
|
new Date("2025-06-16T00:00:00Z")
|
|
)
|
|
// Deep equal compares the dates correctly
|
|
expect(ranges[1]).to.deep.equal([
|
|
{
|
|
comment: undefined,
|
|
endDate: new Date("2025-06-10T13:00:00.000Z"),
|
|
isOpen: false,
|
|
isSpecial: true,
|
|
openEnd: true,
|
|
startDate: new Date("2025-06-10T10:00:00.000Z"),
|
|
},
|
|
])
|
|
expect(ranges.at(-1)).to.deep.equal([
|
|
{
|
|
comment: undefined,
|
|
endDate: new Date("2025-06-15T13:00:00.000Z"),
|
|
isOpen: false,
|
|
isSpecial: true,
|
|
openEnd: true,
|
|
startDate: new Date("2025-06-15T10:00:00.000Z"),
|
|
},
|
|
])
|
|
})
|
|
})
|
|
})
|