Files
pom-omp/scripts/smoke.ts

27 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import { mkdtemp, readFile, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { DEFAULT_CONFIG } from "../src/domain";
import { bootstrapProject } from "../src/persistence";
import { createState } from "../src/state";
import { validatePom } from "../src/validators";
const sandbox = await mkdtemp(join(tmpdir(), "pom-smoke-"));
try {
const config = { ...DEFAULT_CONFIG, projectRootMode: "cwd" as const };
const state = createState("POM Smoke", sandbox, config, true);
await bootstrapProject(state);
const ompConfig = await readFile(join(sandbox, ".omp", "config.yml"), "utf8");
assert.match(ompConfig, /dark: pom-nocturne/);
assert.match(ompConfig, /task:\n\s+eager: preferred/);
assert.match(ompConfig, /compaction:\n\s+strategy: snapcompact/);
const board = await readFile(join(sandbox, "content", "production-board.md"), "utf8");
assert.match(board, /# Production Board/);
const report = await validatePom(state, "quick", { writeReport: false });
assert.equal(report.passed, true);
console.log(`POM runtime smoke PASS · ${report.checks.length} checks`);
} finally {
await rm(sandbox, { recursive: true, force: true });
}