37
tests/unit/PoiDisplayPolicy.spec.ts
Normal file
37
tests/unit/PoiDisplayPolicy.spec.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
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)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user