Files
agentic-dev/turbo/generators/config.test.ts

39 lines
1.7 KiB
TypeScript

import { describe, it, expect } from "vitest";
import type { PlopTypes } from "@turbo/gen";
import generator from "./config";
describe("core-package generator", () => {
it("is registered with realtime in choices list", () => {
const captured: Array<{ name: string; def: PlopTypes.PlopGeneratorConfig }> = [];
const plopMock = {
setHelper: () => {},
setGenerator: (name: string, def: PlopTypes.PlopGeneratorConfig) =>
captured.push({ name, def }),
} as unknown as PlopTypes.NodePlopAPI;
generator(plopMock);
const corePkg = captured.find((c) => c.name === "core-package");
expect(corePkg).toBeDefined();
const prompts = corePkg!.def.prompts as Array<{ name: string; choices: unknown[] }>;
expect(prompts[0]!.name).toBe("name");
expect(prompts[0]!.choices).toContain("realtime");
});
});
describe("core-package realtime", () => {
it("emits actions covering package files, transpilePackages, and ESLint rules", () => {
// Capture the actions returned by the realtime entry.
const captured: Array<{ name: string; def: PlopTypes.PlopGeneratorConfig }> = [];
const plop = {
setHelper: () => {},
setGenerator: (n: string, d: unknown) => captured.push({ name: n, def: d as PlopTypes.PlopGeneratorConfig }),
} as unknown as PlopTypes.NodePlopAPI;
generator(plop);
const corePkg = captured.find((c) => c.name === "core-package")!.def;
const actions = (corePkg.actions as (a: { name: string }) => PlopTypes.ActionType[])(
{ name: "realtime" },
);
// Expectations: at least one assertNotPresent guard, multiple `add` actions, and a transpilePackages action.
expect(actions.length).toBeGreaterThan(20); // 28 files + extras
});
});