import assert from "node:assert/strict"; import fs from "node:fs/promises"; import path from "node:path"; const filePath = path.resolve(process.argv[2] || "src/assets/data/demashi-summary.json"); const dataset = JSON.parse(await fs.readFile(filePath, "utf8")); assert.equal(dataset.schemaVersion, 1); assert.equal(dataset.platform, "jd"); assert.equal(dataset.summary.metricRows, 9717); assert.equal(dataset.summary.metricProducts, 2817); assert.equal(dataset.summary.mappingRows, 28); assert.equal(dataset.summary.uniqueCompetitorProducts, 37); assert.equal(new Set(dataset.products.map((item) => item.productKey)).size, dataset.products.length); assert.equal(new Set(dataset.relations.map((item) => item.relationKey)).size, dataset.relations.length); assert.equal(dataset.quality.orphanMappings.length, 1); assert.equal(dataset.quality.mappingsWithoutCompetitor.length, 2); for (const product of dataset.products) { assert.match(product.productKey, /^jd:\d+$/); assert.equal(product.asin, product.productId); assert.ok(product.trend.every((point) => /^\d{4}-\d{2}-\d{2}$/.test(point.date))); } console.log(JSON.stringify({ ok: true, file: filePath, summary: dataset.summary }, null, 2));