34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { resolvePoiSeriesGroup } from '@/domain/poiSeriesGrouping'
|
|
|
|
const ticketMachine = (floorId: string, name: string) => resolvePoiSeriesGroup({
|
|
floorId,
|
|
name,
|
|
category: 'basic_service_facility',
|
|
iconType: 'ticket_office'
|
|
})
|
|
|
|
describe('POI numbered series grouping', () => {
|
|
it('groups the four numbered ticket machines on the same floor', () => {
|
|
const groups = [1, 2, 3, 4].map((index) => (
|
|
ticketMachine('L1', `L1_售票机_0${index}`)
|
|
))
|
|
|
|
expect(groups.every(Boolean)).toBe(true)
|
|
expect(new Set(groups.map((group) => group?.groupKey)).size).toBe(1)
|
|
expect(groups[0]).toMatchObject({ displayName: '售票机' })
|
|
})
|
|
|
|
it('does not group ticket locations without an explicit numbered suffix', () => {
|
|
expect(ticketMachine('L1', '售票机')).toBeNull()
|
|
expect(ticketMachine('L1', '展厅售票点')).toBeNull()
|
|
})
|
|
|
|
it('keeps the same numbered series on different floors separate', () => {
|
|
const l1 = ticketMachine('L1', 'L1_售票机_01')
|
|
const l2 = ticketMachine('L2', 'L2_售票机_01')
|
|
|
|
expect(l1?.groupKey).not.toBe(l2?.groupKey)
|
|
})
|
|
})
|