27 lines
1.2 KiB
TypeScript
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 });
|
|
}
|