← back to Harlequin Pilot Publish
05-verify-untrack.mjs
21 lines
// FRESH verify: all 23 pilot Sample variants must be tracked=false AND price 4.25.
import fs from 'node:fs';
import { getProductVariants } from './lib.mjs';
const verify = JSON.parse(fs.readFileSync(new URL('./data/verify.json', import.meta.url)));
const located = JSON.parse(fs.readFileSync(new URL('./data/located.json', import.meta.url)));
const byDw = Object.fromEntries(located.map(l => [l.dw_sku, l]));
let pass = 0, fail = 0; const rows = [];
for (const row of verify) {
const dw = row.dw_sku; const loc = byDw[dw];
const prod = await getProductVariants(loc.productGid);
const s = prod.variants.edges.map(e => e.node).find(v => (v.sku||'').toUpperCase() === (dw+'-SAMPLE').toUpperCase());
const untracked = s && s.inventoryItem?.tracked === false;
const priceOk = s && Number(s.price).toFixed(2) === '4.25';
const ok = untracked && priceOk; ok ? pass++ : fail++;
rows.push({ dw_sku: dw, sample_id: s?.id?.split('/').pop(), tracked: s?.inventoryItem?.tracked, price: s?.price, verdict: ok?'PASS':'FAIL' });
console.log(dw.padEnd(12), 'tracked=' + String(s?.inventoryItem?.tracked).padEnd(6), '$' + s?.price, ok?'PASS':'FAIL');
await new Promise(r => setTimeout(r, 200));
}
fs.writeFileSync(new URL('./data/untrack-verify.json', import.meta.url), JSON.stringify(rows, null, 2));
console.log(`\nPART A VERIFY: PASS ${pass}/23 FAIL ${fail}/23`);