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"),
 | 
						|
                },
 | 
						|
            ])
 | 
						|
        })
 | 
						|
    })
 | 
						|
})
 |