import { describe, expect, it } from 'vitest' import type { MuseumPoi } from '@/domain/museum' import { createVisitorPoiPresentations } from '@/view-models/visitorPoiPresentation' const poi = (id: string, name: string, floorLabel = '1F', hallName?: string): MuseumPoi => ({ id, name, floorId: floorLabel === '1F' ? 'L1' : 'L2', floorLabel, hallName, accessible: false, primaryCategory: { id: 'facility', label: '服务设施' }, categories: [] }) describe('VisitorPoiPresentation', () => { it.each([ ['展厅 7生态厅', '生态厅'], ['男卫生间00', '男卫生间 00'], ['贵宾卫生间', '贵宾卫生间'] ])('规范游客展示名 %s', (rawName, displayName) => { const result = createVisitorPoiPresentations([poi('p1', rawName)]) expect(result.get('p1')?.displayName).toBe(displayName) }) it('用真实楼层或展厅区分重复设施', () => { const result = createVisitorPoiPresentations([ poi('p1', '无障碍卫生间', '1F', '恐龙厅'), poi('p2', '无障碍卫生间', '2F', '生态厅') ]) expect(result.get('p1')?.displayName).toBe('无障碍卫生间 · 1F · 恐龙厅 · 服务设施') expect(result.get('p2')?.displayName).toBe('无障碍卫生间 · 2F · 生态厅 · 服务设施') }) })