79 lines
2.2 KiB
TypeScript
79 lines
2.2 KiB
TypeScript
import { describe, it } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
import { loadRtkFilters, runRtkFilterTests } from "../../../open-sse/services/compression/index.ts";
|
|
|
|
const RTK_FIXTURES = path.join(path.dirname(fileURLToPath(import.meta.url)), "fixtures", "rtk");
|
|
const PARITY_FILTER_IDS = [
|
|
"git-branch",
|
|
"make",
|
|
"terraform-plan",
|
|
"tofu-plan",
|
|
"docker-logs",
|
|
"systemctl-status",
|
|
"biome",
|
|
"prettier",
|
|
"turbo",
|
|
"nx",
|
|
"playwright",
|
|
"ruff",
|
|
"mypy",
|
|
"pip",
|
|
"uv-sync",
|
|
"poetry-install",
|
|
"test-go",
|
|
"golangci-lint",
|
|
"test-cargo",
|
|
"bundle-install",
|
|
"rubocop",
|
|
"aws",
|
|
"gcloud",
|
|
"ssh",
|
|
"rsync",
|
|
"curl",
|
|
"wget",
|
|
"shell-grep",
|
|
"shell-find",
|
|
"ps",
|
|
"df",
|
|
"du",
|
|
"build-webpack",
|
|
"build-vite",
|
|
"npm-audit",
|
|
"error-stacktrace",
|
|
];
|
|
|
|
describe("RTK verify and benchmark gate", () => {
|
|
it("requires inline tests for every builtin filter", () => {
|
|
const filters = loadRtkFilters({ refresh: true, customFiltersEnabled: false });
|
|
const result = runRtkFilterTests({ requireAll: true, customFiltersEnabled: false });
|
|
|
|
assert.ok(filters.length >= 35);
|
|
assert.equal(result.filtersWithoutTests.length, 0);
|
|
assert.equal(result.passed, true);
|
|
assert.ok(result.outcomes.length >= filters.length);
|
|
});
|
|
|
|
it("reports benchmark savings by category without shell, network, or DB", () => {
|
|
const result = runRtkFilterTests({ requireAll: true, customFiltersEnabled: false });
|
|
|
|
assert.ok(result.benchmark.length >= 5);
|
|
assert.ok(result.benchmark.some((row) => row.category === "test" && row.tests > 0));
|
|
assert.ok(result.benchmark.some((row) => row.category === "build" && row.filters > 0));
|
|
for (const row of result.benchmark) {
|
|
assert.ok(Number.isFinite(row.averageSavingsPercent));
|
|
}
|
|
});
|
|
|
|
it("ships fixture samples for the parity filter expansion", () => {
|
|
for (const id of PARITY_FILTER_IDS) {
|
|
const fixturePath = path.join(RTK_FIXTURES, `${id}-sample.txt`);
|
|
assert.ok(fs.existsSync(fixturePath), `missing fixture for ${id}`);
|
|
assert.ok(fs.readFileSync(fixturePath, "utf8").trim().length > 0);
|
|
}
|
|
});
|
|
});
|