fix bugs
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {readFile} from 'node:fs/promises';
|
||||
const source=await readFile(new URL('../booking/bookingRecord/bookingRecord.vue',import.meta.url),'utf8');
|
||||
function computed(name,next) {
|
||||
const start=source.indexOf(name+'(){');
|
||||
const end=source.indexOf(next+'()',start);
|
||||
assert.ok(start>=0 && end>start);
|
||||
return new Function(`return ({${source.slice(start,end).trim().replace(/,$/,'')}}).${name}();`)();
|
||||
}
|
||||
const color=computed('getRecordColor','getETA');
|
||||
const confirmation=computed('getConfirmationNo','dateFormat');
|
||||
test('AP retains approval color when lodging status also matches an ordinary booking',()=>{
|
||||
for(const lastOperaStatus of ['CHECKED_IN','DUE_OUT','RESERVED',null]) {
|
||||
for(const sharer of [null,'[]','']) {
|
||||
assert.equal(color({approveStatus:'AP',lastOperaStatus,confirmationNo:'12345',sharer}),'hz-card-approval');
|
||||
}
|
||||
}
|
||||
});
|
||||
test('waitlist and ordinary colors are preserved',()=>{
|
||||
for(const approveStatus of ['W','WA']) assert.equal(color({approveStatus,lastOperaStatus:'CHECKED_IN',confirmationNo:'12345'}),'hz-card-waitlist');
|
||||
assert.equal(color({approveStatus:'N',lastOperaStatus:'CHECKED_IN',confirmationNo:'12345'}),'hz-card-booking');
|
||||
});
|
||||
test('Daylight still displays an existing AP confirmation number',()=>{
|
||||
assert.equal(confirmation({approveStatus:'AP',confirmationNo:'12345'}),'12345');
|
||||
assert.equal(confirmation({approveStatus:'AP',confirmationNo:null}),'N/A');
|
||||
assert.equal(confirmation({approveStatus:'W',confirmationNo:'12345'}),'N/A');
|
||||
});
|
||||
Reference in New Issue
Block a user