修复导览点位可见性与构建门禁

This commit is contained in:
cxk
2026-07-20 23:54:19 +08:00
parent 735c5cd1ee
commit 1f89e8b3e0
14 changed files with 499 additions and 168 deletions

View File

@@ -1,6 +1,6 @@
import { describe, expect, it } from 'vitest'
import { toMuseumPoi } from '@/data/adapters/navAssetsAdapter'
import { resolvePoiCategory } from '@/domain/poiCategories'
import { isVisitorSearchPoi, resolvePoiCategory } from '@/domain/poiCategories'
import type { StaticNavPoiPayload } from '@/data/providers/staticNavAssetsProvider'
const createStaticPoi = (name: string, iconType = 'elevator'): StaticNavPoiPayload => ({
@@ -52,10 +52,23 @@ describe('static nav POI adapter', () => {
const serviceDesk = toMuseumPoi(createStaticPoi('服务台', 'restroom'))
const locker = toMuseumPoi(createStaticPoi('存包处', 'restroom'))
const teaRoom = toMuseumPoi(createStaticPoi('茶水间', 'restroom'))
const vipReception = toMuseumPoi(createStaticPoi('贵宾接待区', 'restroom'))
const vipRestroom = toMuseumPoi(createStaticPoi('贵宾卫生间', 'restroom'))
expect(resolvePoiCategory(serviceDesk)?.id).toBe('service-center')
expect(resolvePoiCategory(locker)?.id).toBe('service-center')
expect(resolvePoiCategory(teaRoom)).toBeNull()
expect(teaRoom.visitorVisible).toBe(false)
expect(vipReception.visitorVisible).toBe(false)
expect(vipRestroom.visitorVisible).toBe(false)
expect(toMuseumPoi({
...createStaticPoi('茶水间', 'restroom'),
visitorVisible: true
}).visitorVisible).toBe(true)
expect(toMuseumPoi({
...createStaticPoi('贵宾卫生间', 'restroom'),
visitorVisible: true
}).visitorVisible).toBe(true)
})
it('splits generic touring fallback records into their visitor-facing semantic kinds', () => {
@@ -73,4 +86,19 @@ describe('static nav POI adapter', () => {
})
expect(resolvePoiCategory(ticketOffice)?.id).toBe('ticket-office')
})
it('keeps a hall visible when its secondary category describes an entrance', () => {
const hall = toMuseumPoi(createTouringPoi('地球展厅'))
hall.kind = 'hall'
hall.categories = [
hall.primaryCategory,
{
id: 'exhibition_hall_entrance',
label: '展厅出入口',
iconType: 'hall_entrance'
}
]
expect(isVisitorSearchPoi(hall)).toBe(true)
})
})