enhance release v2 experience
This commit is contained in:
1 parent
9b4970583e
commit
ef2ed6c602
152 files changed
+7236
-764
No files matched your search
@@ -0,0 +1,54 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { test } from "node:test";
|
||||
import { resolve } from "node:path";
|
||||
|
||||
import { createFeatureCheckPlan, executeFeatureCheckPlan, formatFeatureCheckPlan } from "./check-feature.mts";
|
||||
|
||||
const root = resolve(import.meta.dirname, "../..");
|
||||
|
||||
test("plans a focused standalone widget check deterministically", () => {
|
||||
const plan = createFeatureCheckPlan(root, "clock");
|
||||
|
||||
assert.deepEqual(plan, createFeatureCheckPlan(root, "clock"));
|
||||
assert.deepEqual(plan.types, ["widget"]);
|
||||
assert.ok(plan.files.includes("packages/widgets/src/clock/index.ts"));
|
||||
assert.ok(plan.files.includes("apps/docs/docs/widgets/clock/index.mdx"));
|
||||
assert.ok(plan.files.includes("packages/translation/src/lang/en.json"));
|
||||
assert.ok(plan.commands.some((command) => command.args.includes("packages/widgets/src/manifest.spec.ts")));
|
||||
assert.match(formatFeatureCheckPlan(plan), /LIVE SERVICE \(optional, not run\)/);
|
||||
assert.match(formatFeatureCheckPlan(plan), /VISUAL \(optional, not run\)/);
|
||||
});
|
||||
|
||||
test("combines integration and widget checks for a shared kind", () => {
|
||||
const plan = createFeatureCheckPlan(root, "wud");
|
||||
|
||||
assert.deepEqual(plan.types, ["integration", "widget"]);
|
||||
assert.ok(plan.files.includes("packages/integrations/src/wud/wud-integration.ts"));
|
||||
assert.ok(plan.files.includes("packages/widgets/src/wud/index.ts"));
|
||||
assert.ok(plan.files.includes("apps/docs/docs/integrations/whats-up-docker/index.mdx"));
|
||||
assert.ok(plan.files.includes("apps/docs/docs/widgets/whats-up-docker/index.mdx"));
|
||||
assert.ok(
|
||||
plan.commands.some((command) =>
|
||||
command.args.includes("packages/integrations/src/wud/test/wud-integration.spec.ts"),
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
test("rejects unknown kinds before creating a command plan", () => {
|
||||
assert.throws(() => createFeatureCheckPlan(root, "notAFeature"), /Unknown feature kind/);
|
||||
});
|
||||
|
||||
test("executes commands in order and stops on the first failure", () => {
|
||||
const plan = createFeatureCheckPlan(root, "clock");
|
||||
const visited: string[] = [];
|
||||
const status = executeFeatureCheckPlan(plan, (command) => {
|
||||
visited.push(command.label);
|
||||
return visited.length === 3 ? 7 : 0;
|
||||
});
|
||||
|
||||
assert.equal(status, 7);
|
||||
assert.deepEqual(
|
||||
visited,
|
||||
plan.commands.slice(0, 3).map((command) => command.label),
|
||||
);
|
||||
});
|
||||
Reference in new issue
Block a user