fix(fleet): align customer identity collation for fulfillment joins

This commit is contained in:
2026-10-07 17:16:50 +08:00
parent 5c6cd6af44
commit 27c0fe80f6
5 changed files with 21 additions and 5 deletions
@@ -46,6 +46,15 @@ test('module and unified fresh baselines contain the exact same new table defini
assert.match(sql, /ADD CONSTRAINT fk_fleet_booking_offer/i)
})
test('customer identity joins use the same explicit collation as existing fulfillment orders', () => {
for (const name of ['ll_fleet_external_booking', 'll_fleet_pool_order_link']) {
assert.match(table(overseas, 'baiyue_lastleg', name), /customer_id VARCHAR\(128\) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL/i)
}
const sql = read('deploy/sql/migrations/overseas/baiyue_lastleg/V11__align_capacity_pool_collation.sql')
assert.equal((sql.match(/MODIFY COLUMN customer_id/g) || []).length, 2)
assert.doesNotMatch(sql.replace(/^--.*$/gm, ''), /\b(?:DROP|TRUNCATE|DELETE|UPDATE|REPLACE)\b/i)
})
test('pool permissions are independent of trip details and default only to the platform administrator', () => {
const permissions = seedRows(cn, 'iam_permission').filter(row => String(row.permission_code).startsWith('platform:fleet:capacity-offer:'))
assert.equal(permissions.length, 5)