import { describe, expect, it } from 'vitest' import { getPoiDisplayPolicy, isPoiVisibilityTierAtLeast } from '@/domain/poiDisplay' describe('POI 显示策略', () => { it('空间点位初始总览保留 marker,但不进入环境标签层', () => { const policy = getPoiDisplayPolicy({ primaryCategory: 'space_public_area', kind: 'space' }) expect(policy.labelVisible).toBe(false) expect(policy.minMarkerTier).toBe('tight') expect(policy.allowOverview).toBe(true) expect(policy.allowMulti).toBe(true) expect(policy.minLabelTier).toBe('full') }) it('展厅和服务设施拥有不同优先级与标签密度策略', () => { const hall = getPoiDisplayPolicy({ primaryCategory: 'exhibition_hall', kind: 'hall' }) const service = getPoiDisplayPolicy({ primaryCategory: 'business_poi', kind: 'facility' }) expect(hall.labelVisible).toBe(true) expect(hall.minLabelTier).toBe('tight') expect(hall.priority).toBeGreaterThan(service.priority) expect(service.minLabelTier).toBe('full') }) it('LOD tier 按 tight 到 full 单调放宽', () => { expect(isPoiVisibilityTierAtLeast('tight', 'tight')).toBe(true) expect(isPoiVisibilityTierAtLeast('balanced', 'tight')).toBe(true) expect(isPoiVisibilityTierAtLeast('balanced', 'full')).toBe(false) expect(isPoiVisibilityTierAtLeast('full', 'balanced')).toBe(true) }) })