53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
// @vitest-environment happy-dom
|
|
|
|
import { describe, expect, it } from 'vitest'
|
|
import { mount } from '@vue/test-utils'
|
|
import RoutePlannerPanel from '@/components/navigation/RoutePlannerPanel.vue'
|
|
|
|
const point = (name: string, floorLabel: string) => ({
|
|
poiId: name,
|
|
name,
|
|
floorId: floorLabel,
|
|
floorLabel,
|
|
positionGltf: [0, 0, 0] as [number, number, number]
|
|
})
|
|
|
|
describe('RoutePlannerPanel', () => {
|
|
it('在导航副标题中显示起点和终点楼层', () => {
|
|
const wrapper = mount(RoutePlannerPanel, {
|
|
props: {
|
|
startPoint: point('办公室', '5F'),
|
|
endPoint: point('秦匠', 'B2'),
|
|
hasRoutePreview: true,
|
|
summary: '跨 2 层 · 约 104 米'
|
|
}
|
|
})
|
|
|
|
expect(wrapper.get('.route-panel-subtitle').text()).toBe('从 5F 办公室 前往 B2 秦匠')
|
|
})
|
|
|
|
it('导航信息不显示点位内部楼层和设备编号', () => {
|
|
const previewWrapper = mount(RoutePlannerPanel, {
|
|
props: {
|
|
startPoint: point('L1_K电梯', '1F'),
|
|
endPoint: point('L2_导览屏_02', '2F'),
|
|
hasRoutePreview: true,
|
|
summary: '跨 1 层'
|
|
}
|
|
})
|
|
|
|
expect(previewWrapper.get('.route-panel-subtitle').text()).toBe('从 1F 电梯 前往 2F 导览屏')
|
|
|
|
const pickerWrapper = mount(RoutePlannerPanel, {
|
|
props: {
|
|
startPoint: point('L1_K电梯', '1F'),
|
|
endPoint: point('L2_导览屏_02', '2F'),
|
|
hasRoutePreview: false,
|
|
summary: ''
|
|
}
|
|
})
|
|
|
|
expect(pickerWrapper.get('.route-point-name').text()).toBe('电梯')
|
|
})
|
|
})
|