Files
frontend-miniapp/tests/unit/PoiDisplayPolicy.spec.ts
cxk 3cc0336806
Some checks failed
CI / verify (push) Has been cancelled
恢复空间标签层级与模型锚点
2026-07-20 08:56:03 +08:00

38 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
})
})