forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			57 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
	
		
			2.3 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", () => {
							 | 
						||
| 
								 | 
							
								        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"),
							 | 
						||
| 
								 | 
							
								                },
							 | 
						||
| 
								 | 
							
								            ])
							 | 
						||
| 
								 | 
							
								        })
							 | 
						||
| 
								 | 
							
								    })
							 | 
						||
| 
								 | 
							
								})
							 |