From e28fe847fd8af110b0d2a9d78856400b5e8cd023 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Sat, 9 May 2026 13:33:53 +0200 Subject: [PATCH] test(generators): e2e byte-identical reconstruction of core-realtime --- .../core-package-realtime.e2e.test.ts | 24 +++++++++++++++++++ turbo/generators/vitest.config.ts | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 turbo/generators/__tests__/core-package-realtime.e2e.test.ts diff --git a/turbo/generators/__tests__/core-package-realtime.e2e.test.ts b/turbo/generators/__tests__/core-package-realtime.e2e.test.ts new file mode 100644 index 0000000..fc2890d --- /dev/null +++ b/turbo/generators/__tests__/core-package-realtime.e2e.test.ts @@ -0,0 +1,24 @@ +import { describe, it, expect } from "vitest"; +import { mkdtempSync, cpSync, readFileSync } from "node:fs"; +import { tmpdir } from "node:os"; +import { execSync } from "node:child_process"; +import { join } from "node:path"; +import { computeSnapshot } from "../lib/snapshot"; +import expectedSnapshot from "../__snapshots__/core-package/realtime.snapshot.json"; + +describe("e2e: core-package realtime", () => { + it("byte-identical reconstruction matches snapshot", { timeout: 120_000 }, () => { + const tmp = mkdtempSync(join(tmpdir(), "e2e-")); + cpSync(process.cwd(), tmp, { + recursive: true, + filter: (src) => + !src.includes("node_modules") && + !src.includes(".turbo") && + !src.includes("packages/core-realtime"), + }); + execSync(`cd ${tmp} && pnpm install --frozen-lockfile=false`, { stdio: "ignore" }); + execSync(`cd ${tmp} && pnpm turbo gen core-package --args realtime`, { stdio: "ignore" }); + const result = computeSnapshot(join(tmp, "packages/core-realtime")); + expect(result).toEqual(expectedSnapshot); + }); +}); diff --git a/turbo/generators/vitest.config.ts b/turbo/generators/vitest.config.ts index a5d041f..f0ee9d4 100644 --- a/turbo/generators/vitest.config.ts +++ b/turbo/generators/vitest.config.ts @@ -4,7 +4,7 @@ export default defineConfig({ test: { globals: true, environment: "node", - include: ["*.test.ts", "lib/*.test.ts"], + include: ["*.test.ts", "lib/*.test.ts", "__tests__/*.test.ts"], clearMocks: true, restoreMocks: true, },