import { readFileSync } from 'node:fs' import { resolve } from 'node:path' import { describe, expect, it } from 'vitest' const source = readFileSync(resolve(process.cwd(), 'src/modules/trucking/components/TruckAttachmentDialog.vue'), 'utf8') describe('TruckAttachmentDialog interaction governance', () => { it('shows existing attachments without exposing file-service internals', () => { expect(source).toContain('预约附件') expect(source).toContain('attachmentTypeLabel(item.attachmentType)') expect(source).not.toContain('文件 ID') expect(source).not.toContain('item.objectKey') }) it('provides scoped upload and deletion without exposing manual file ids', () => { expect(source).toContain("BILL_OF_LADING: '提单文件'") expect(source).not.toContain('referenceTruckAppointmentAttachment') expect(source).not.toContain('输入文件服务 ID') expect(source).toContain('uploadTruckAppointmentAttachment') expect(source).toContain('上传并关联') expect(source).toContain('deleteTruckAppointmentAttachment') expect(source).toContain("confirmButtonText: '确认', cancelButtonText: '取消'") expect(source).toContain('删除') expect(source).toContain('size="small" type="danger" plain') expect(source).not.toContain(' text type="danger"') }) })