Feature(opening_hours): correctly display "open ended" opening hours, see #2438

This commit is contained in:
Pieter Vander Vennet 2025-06-12 14:32:22 +02:00
parent a01be66592
commit 9689cdfb65
7 changed files with 125 additions and 45 deletions

View file

@ -0,0 +1,56 @@
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", () => {
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-10T16:00:00.000Z"),
"isOpen": true,
"isSpecial": false,
"openEnd": false,
"startDate": new Date("2025-06-10T08:00:00.000Z"),
},
])
})
it("open ended opening hours", () => {
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-10T11:00:00.000Z"),
"isOpen": false,
"isSpecial": true,
"openEnd": true,
"startDate": new Date("2025-06-10T08:00:00.000Z"),
},
])
expect(ranges.at(-1)).to.deep.equal([
{
"comment": undefined,
"endDate": new Date("2025-06-15T11:00:00.000Z"),
"isOpen": false,
"isSpecial": true,
"openEnd": true,
"startDate": new Date("2025-06-15T08:00:00.000Z"),
},
])
})
})
})