UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

119 lines (118 loc) 4.47 kB
import { mkdtempSync, rmSync, writeFileSync } from "fs"; import { tmpdir } from "os"; import { join } from "path"; import { afterEach, describe, expect, it } from "vitest"; import { createCloudflareWranglerConfig, isExperimentalWorkerDevEnabled, loadUserWranglerConfigSync, shouldEnableWorkerdDev } from "./cloudflareWranglerConfig.native.js"; describe("createCloudflareWranglerConfig", function () { it("synthesizes a worker config when no user wrangler file exists", function () { var config = createCloudflareWranglerConfig("my-app"); expect(config.name).toBe("my-app"); expect(config.main).toBe("worker.js"); expect(config.compatibility_flags).toEqual(["nodejs_compat"]); expect(config.find_additional_modules).toBe(true); expect(config.assets).toEqual({ directory: "client", binding: "ASSETS", run_worker_first: true }); }); it("merges user wrangler.jsonc the same way the cloudflare build does", function () { var config = createCloudflareWranglerConfig("generated-name", { name: "test-cloudflare-user-config", compatibility_date: "2025-01-01", compatibility_flags: ["nodejs_als"], vars: { CUSTOM_VALUE: "from-root-config" }, assets: { html_handling: "auto-trailing-slash" }, rules: [{ type: "ESModule", globs: ["./extra/**/*.js"], fallthrough: true }] }); expect(config.name).toBe("test-cloudflare-user-config"); expect(config.main).toBe("worker.js"); expect(config.compatibility_date).toBe("2025-01-01"); expect(config.compatibility_flags).toEqual(["nodejs_compat", "nodejs_als"]); expect(config.vars).toEqual({ CUSTOM_VALUE: "from-root-config" }); expect(config.assets).toEqual({ html_handling: "auto-trailing-slash", directory: "client", binding: "ASSETS", run_worker_first: true }); expect(config.rules).toEqual([{ type: "ESModule", globs: ["./server/**/*.js"], fallthrough: true }, { type: "ESModule", globs: ["./api/**/*.js"], fallthrough: true }, { type: "ESModule", globs: ["./middlewares/**/*.js"], fallthrough: true }, { type: "ESModule", globs: ["./assets/**/*.js"], fallthrough: true }, { type: "ESModule", globs: ["./extra/**/*.js"], fallthrough: true }]); }); }); describe("shouldEnableWorkerdDev", function () { var previous = process.env.ONE_EXPERIMENTAL_WORKER_DEV; afterEach(function () { if (previous === void 0) delete process.env.ONE_EXPERIMENTAL_WORKER_DEV;else process.env.ONE_EXPERIMENTAL_WORKER_DEV = previous; }); it("is off when the flag is unset", function () { delete process.env.ONE_EXPERIMENTAL_WORKER_DEV; expect(isExperimentalWorkerDevEnabled()).toBe(false); expect(shouldEnableWorkerdDev("cloudflare", "/tmp")).toBe(false); }); it("is off when the flag is on but the app has no cloudflare target or wrangler file", function () { process.env.ONE_EXPERIMENTAL_WORKER_DEV = "1"; var root = mkdtempSync(join(tmpdir(), "one-workerd-flag-")); try { expect(shouldEnableWorkerdDev(void 0, root)).toBe(false); expect(shouldEnableWorkerdDev("node", root)).toBe(false); } finally { rmSync(root, { recursive: true, force: true }); } }); it("is on when the flag is set and deploy is cloudflare", function () { process.env.ONE_EXPERIMENTAL_WORKER_DEV = "1"; expect(shouldEnableWorkerdDev("cloudflare", "/tmp-does-not-exist")).toBe(true); expect(shouldEnableWorkerdDev({ target: "cloudflare" }, "/tmp-does-not-exist")).toBe(true); }); it("is on when the flag is set and wrangler.jsonc exists", function () { process.env.ONE_EXPERIMENTAL_WORKER_DEV = "1"; var root = mkdtempSync(join(tmpdir(), "one-workerd-wrangler-")); try { var _loadUserWranglerConfigSync; writeFileSync(join(root, "wrangler.jsonc"), '{ "name": "from-file" }\n'); expect(shouldEnableWorkerdDev(void 0, root)).toBe(true); expect((_loadUserWranglerConfigSync = loadUserWranglerConfigSync(root)) === null || _loadUserWranglerConfigSync === void 0 ? void 0 : _loadUserWranglerConfigSync.config.name).toBe("from-file"); } finally { rmSync(root, { recursive: true, force: true }); } }); }); //# sourceMappingURL=cloudflareWranglerConfig.test.native.js.map