23 lines
1.0 KiB
TypeScript
23 lines
1.0 KiB
TypeScript
import { readFileSync } from 'node:fs'
|
|
import { resolve } from 'node:path'
|
|
import { describe, expect, it } from 'vitest'
|
|
|
|
const source = readFileSync(resolve(process.cwd(), 'src/modules/ocean-bookings/pages/OceanBookingDetailView.vue'), 'utf8')
|
|
|
|
describe('OceanBookingDetailView form contract', () => {
|
|
it('keeps prototype parties, sailing and cargo fields', () => {
|
|
for (const field of ['SHIPPER', 'CONSIGNEE', 'NOTIFY_PARTY', 'departurePortName', 'destinationPortName', 'vesselName', 'voyageNo', 'containerRequirements', 'goodsDescription']) {
|
|
expect(source).toContain(field)
|
|
}
|
|
})
|
|
|
|
it('validates required booking fields and protects edit-only fields', () => {
|
|
expect(source).toContain("customerId: [{ required: true")
|
|
expect(source).toContain("departurePortName: [{ required: true")
|
|
expect(source).toContain("bookingAgentName: [{ required: true")
|
|
expect(source).toContain(':disabled="!isNew"')
|
|
expect(source).toContain(':disabled="!editable"')
|
|
expect(source).toContain("containerType: '40HC', quantity: 1")
|
|
})
|
|
})
|