47 lines
1.7 KiB
JavaScript
47 lines
1.7 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { readFile } from "node:fs/promises";
|
|
import { test } from "node:test";
|
|
|
|
const sourceRoot = new URL("../src/", import.meta.url);
|
|
|
|
async function read(relativePath) {
|
|
return readFile(new URL(relativePath, sourceRoot), "utf8");
|
|
}
|
|
|
|
test("Worker 006 telemetry remains a bounded system feature slice", async () => {
|
|
const [
|
|
productModel,
|
|
workspaceHub,
|
|
core,
|
|
computeWorkspace,
|
|
pipelineStages,
|
|
networkWorkspace,
|
|
styles,
|
|
] = await Promise.all([
|
|
read("productModel.ts"),
|
|
read("workspaces/Workspaces.tsx"),
|
|
read("core/system/workerTelemetry.ts"),
|
|
read("workspaces/system/ComputeModulesWorkspace.tsx"),
|
|
read("components/system/WorkerPipelineStages.tsx"),
|
|
read("workspaces/system/NetworkWorkspace.tsx"),
|
|
read("styles.css"),
|
|
]);
|
|
|
|
assert.match(productModel, /kind: "compute-modules"/);
|
|
assert.match(productModel, /kind: "network-monitor"/);
|
|
assert.match(workspaceHub, /<ComputeModulesWorkspace \/>/);
|
|
assert.match(workspaceHub, /<NetworkWorkspace \/>/);
|
|
assert.doesNotMatch(workspaceHub, /worker-telemetry|worker-profile|DESKTOP-OPJ8J04/);
|
|
assert.match(core, /\/api\/v1\/system\/worker-telemetry/);
|
|
assert.match(core, /\/api\/v1\/system\/worker-profile/);
|
|
assert.match(core, /share_percent/);
|
|
assert.doesNotMatch(core, /@nodedc\/ui-react/);
|
|
assert.match(computeWorkspace, /useWorkerTelemetry/);
|
|
assert.match(computeWorkspace, /WorkerPipelineStages/);
|
|
assert.match(pipelineStages, /измеренного времени/);
|
|
assert.doesNotMatch(pipelineStages, /CPU|GPU|hardware/);
|
|
assert.match(networkWorkspace, /127\.0\.0\.1:8000/);
|
|
assert.doesNotMatch(networkWorkspace, /8765/);
|
|
assert.match(styles, /system-telemetry\.css/);
|
|
});
|