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