Files
admin-web/src/shared/components/InboundCodeRelationshipDrawer.test.ts
T

34 lines
1.8 KiB
TypeScript
Raw Normal View History

2026-08-30 17:43:03 +08:00
import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
const source = readFileSync(resolve(process.cwd(), 'src/shared/components/InboundCodeRelationshipDrawer.vue'), 'utf8')
describe('InboundCodeRelationshipDrawer contract', () => {
it('loads only permission-authorized server read models and keeps failures isolated', () => {
expect(source).toContain('props.canReadBase')
expect(source).toContain('props.canReadLoading')
expect(source).toContain('props.canReadOverseas')
expect(source).toContain('getPlatformInboundCodeAssociation(code)')
expect(source).toContain('getLoadingAssociationSummary(code)')
expect(source).toContain('getOverseasInboundCodeRelationship(code)')
expect(source).toContain('await Promise.all(tasks)')
expect(source).toContain('<ApiErrorMeta :details="baseError"')
expect(source).toContain('<ApiErrorMeta :details="overseasError"')
expect(source).toContain('服务端未找到该入仓码的海外关联数据')
expect(source).not.toMatch(/listPlatform|customerId\)|warehouseId\)/)
})
it('shows business numbers and names without rendering internal ids', () => {
expect(source).toContain('baseAssociation.inboundCode')
expect(source).toContain('baseAssociation.orderNo')
expect(source).toContain('baseAssociation.customerName')
expect(source).toContain('baseAssociation.destinationWarehouseName')
expect(source).not.toContain('{{ baseAssociation.orderId')
expect(source).not.toContain('{{ baseAssociation.customerId')
expect(source).not.toContain('{{ baseAssociation.destinationWarehouseId')
expect(source).toContain('text-overflow:ellipsis')
expect(source).toContain(':title="display(baseAssociation.inboundCode)"')
})
})