import { strict as assert } from "node:assert"; import { parseCheckOptions, runChecks } from "./src/check"; const scriptsOnly = parseCheckOptions(["--scripts-typecheck"]); assert.equal(scriptsOnly.scriptsTypecheck, true); assert.equal(scriptsOnly.ghContracts, false); const full = parseCheckOptions(["--full"]); assert.equal(full.scriptsTypecheck, true); assert.equal(full.ghContracts, true); const explicit = parseCheckOptions(["--gh-contracts"]); assert.equal(explicit.scriptsTypecheck, false); assert.equal(explicit.ghContracts, true); const minimalConfig = { project: { name: "contract" }, runtime: "contract", } as never; const result = runChecks(minimalConfig, { ...scriptsOnly, scriptsTypecheck: false }); const issueGuard = result.items.find((item) => item.name === "gh:issue-guard-contract"); const prFiles = result.items.find((item) => item.name === "gh:pr-files-contract"); const pr = result.items.find((item) => item.name === "gh:pr-contract"); for (const item of [issueGuard, prFiles, pr]) { assert.ok(item, "GitHub contract item should be visible in check output"); assert.equal(item?.ok, true); assert.equal((item?.detail as { skipped?: boolean }).skipped, true); } console.log("check gh contract scope contract ok");