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