Files
docs/悦/PDA(海外)/tests/relabel-sku-progress.runtime.test.js
2026-09-08 14:05:30 +08:00

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');