32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
const applicationSource = fs.readFileSync(path.join(__dirname, '..', 'assets', 'app.js'), 'utf8')
|
|
.replace(/\s*bootstrap\(\);\s*$/, '');
|
|
const runtimeTests = String.raw`
|
|
render=()=>{};
|
|
state.selectedRelabelId='INB-260819-018';
|
|
state.page='relabel-sku';
|
|
state.relabelDoneOrders={};
|
|
state.relabelScans.sku={};
|
|
let view=relabelDetailView('sku');
|
|
assert.match(view,/class="progress-line"/,'SKU relabel detail should show progress');
|
|
assert.match(view,/0 \/ 0/,'SKU relabel detail should start without a scanned carton');
|
|
|
|
state.relabelScans.sku['INB-260819-018']={value:'YQ-CASE-01',itemId:'C-001'};
|
|
view=relabelDetailView('sku');
|
|
assert.match(view,/0 \/ 120/,'SKU relabel detail should show scanned SKU carton quantity');
|
|
|
|
state.relabelDoneOrders['sku:INB-260819-018']=true;
|
|
view=relabelDetailView('sku');
|
|
assert.match(view,/120 \/ 120/,'Completed SKU relabel detail should show full quantity progress');
|
|
`;
|
|
|
|
const documentStub = { getElementById: () => null };
|
|
const windowStub = { scrollTo: () => {}, requestAnimationFrame: callback => callback() };
|
|
const run = new Function('assert', 'localStorage', 'document', 'window', applicationSource + '\n' + runtimeTests);
|
|
run(assert, { getItem: () => null, setItem: () => {} }, documentStub, windowStub);
|
|
|
|
process.stdout.write('PASS: SKU relabel detail exposes quantity progress\n');
|