This commit is contained in:
2026-09-15 09:58:15 +08:00
parent 3f998bdb88
commit 4bf66d9571
90 changed files with 1599 additions and 1388 deletions
@@ -1,5 +1,6 @@
import { flushPromises, shallowMount, type VueWrapper } from '@vue/test-utils'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { getVehicle } from '../api/overseasMasterData'
import ExchangeRatesView from './ExchangeRatesView.vue'
import OverseasQuotesView from './OverseasQuotesView.vue'
import VehicleDetailView from './VehicleDetailView.vue'
@@ -26,5 +27,15 @@ function mountView(component: object): VueWrapper { return shallowMount(componen
describe('overseas master data real page mounts', () => {
beforeEach(() => push.mockReset())
it.each([OverseasQuotesView, ExchangeRatesView, VehiclesView])('mounts a real API-backed list page', async (component) => { const wrapper = mountView(component); await flushPromises(); expect(wrapper.find('[data-test="data-table"]').exists()).toBe(true) })
it('mounts API-backed vehicle detail without fabricating fulfillment history', async () => { const wrapper = mountView(VehicleDetailView); await flushPromises(); expect(wrapper.text()).toContain('CA-TEST'); expect(wrapper.text()).toContain('当前车辆主数据接口明确不包含派送履约记录') })
it('keeps the business title empty on detail failure instead of exposing the route ID', async () => {
vi.mocked(getVehicle).mockRejectedValueOnce(new Error('加载失败'))
const wrapper = mountView(VehicleDetailView)
await flushPromises()
expect(wrapper.get('.density-detail-title').text()).toBe('—')
expect(wrapper.text()).not.toContain('VH-TEST-001')
expect(wrapper.find('.density-fields').exists()).toBe(false)
expect(wrapper.findComponent({ name: 'LoadErrorState' }).exists()).toBe(true)
})
it('mounts API-backed vehicle detail without fabricating fulfillment history', async () => { const wrapper = mountView(VehicleDetailView); await flushPromises(); expect(wrapper.get('.density-detail-title').text()).toBe('CA-TEST'); expect(wrapper.get('.density-fields').findAll('dt')).toHaveLength(11); expect(wrapper.get('.density-fields').text()).toContain('在役'); expect(wrapper.text()).not.toContain('IN_SERVICE'); expect(wrapper.text()).toContain('当前车辆主数据接口明确不包含派送履约记录') })
})