Files
openrig/scripts/check-engines.test.mjs
Mike Schwarzanddev-qa 57380a250e Release0.6.0: works for strangers (#109)
* chore(release): prepare OpenRig 0.6.0

Add per-seat permission selection and typing protection, rig-wide Herdr entry,
Node 22/24 support with SQLite 13, and first-use improvements. Label the optional
Jev/Rig Stream classifier and Slack manifest setup assistance experimental.

* docs: finalize 0.6.0 verification scope and release references

Record the accepted Node 22 candidate install, retained Node 24 evidence,
and unperformed native permission checks without broadening test claims.

---------

Co-authored-by: dev-qa <[email protected]>
2026-09-28 14:07:36 -07:00

36 lines
1.2 KiB
JavaScript

import { readFileSync } from "node:fs";
import { test } from "node:test";
import assert from "node:assert/strict";
const LTS_ENGINE = "^22 || ^24";
const CLI_ENGINE = ">=22";
const LTS_PACKAGE_PATHS = [
"package.json",
"packages/daemon/package.json",
];
for (const pkgPath of LTS_PACKAGE_PATHS) {
test(`${pkgPath} has engines.node set to LTS-only constraint`, () => {
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
assert.ok(pkg.engines, `${pkgPath} is missing an "engines" field`);
assert.ok(pkg.engines.node, `${pkgPath} is missing "engines.node"`);
assert.equal(
pkg.engines.node,
LTS_ENGINE,
`${pkgPath} engines.node should be "${LTS_ENGINE}" (even-numbered LTS only) but got "${pkg.engines.node}"`
);
});
}
test("published CLI allows odd Node majors to reach the postinstall ABI guard", () => {
const pkgPath = "packages/cli/package.json";
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
assert.ok(pkg.engines, `${pkgPath} is missing an "engines" field`);
assert.equal(
pkg.engines.node,
CLI_ENGINE,
`${pkgPath} engines.node should be "${CLI_ENGINE}" so npm selects the latest package and check-abi.mjs prints the supported-Node fix`
);
});