13 lines
903 B
JavaScript
13 lines
903 B
JavaScript
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
const snapshot = JSON.parse(readFileSync(new URL("../src/data/papers.json",import.meta.url),"utf8"));
|
|
test("paper sample has unique source identities and retained abstracts",()=>{
|
|
assert.equal(snapshot.papers.length,20);
|
|
assert.equal(new Set(snapshot.papers.map(p=>p.id)).size,20);
|
|
for(const p of snapshot.papers){assert.ok(p.title.length>0);assert.ok(p.abstract?.length>0);assert.ok(p.authors.length>0);assert.ok(p.sources.length>0);for(const s of p.sources){assert.equal(new URL(s.url).protocol,"https:");assert.ok(s.externalId);}}
|
|
});
|
|
test("sample does not invent popularity, code repositories or editorial conclusions",()=>{
|
|
for(const p of snapshot.papers){for(const k of ["stars","downloads","citations","codeUrl","aiSummary","trendingRank"])assert.equal(k in p,false);}
|
|
});
|