UNPKG

one

Version:

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

82 lines (80 loc) 2.14 kB
import { describe, expect, it, vi } from "vitest"; import { createRouteModuleHmrPlugin } from "./routeModuleHmrPlugin.native.js"; function _type_of(obj) { "@swc/helpers - typeof"; return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj; } function runHotUpdate(param) { var { environment, file, modules } = param; var plugin = createRouteModuleHmrPlugin("app-sootsim"); var send = vi.fn(); var hotUpdate = _type_of(plugin.hotUpdate) === "object" ? plugin.hotUpdate.handler : plugin.hotUpdate; var result = hotUpdate.call({ environment: { name: environment } }, { file, modules, server: { config: { root: "/project" }, hot: { send } } }); return { result, send }; } describe(createRouteModuleHmrPlugin, function () { it("applies client hmr to the configured router root", function () { var routeModule = { id: "/project/app-sootsim/_layout.tsx?one" }; var otherModule = { id: "/project/app/index.tsx" }; var { result, send } = runHotUpdate({ environment: "client", file: "/project/app-sootsim/_layout.tsx", modules: [routeModule, otherModule] }); expect(result).toEqual([routeModule, otherModule]); expect(routeModule.acceptedHmrExports).toEqual(/* @__PURE__ */new Set()); expect(otherModule.acceptedHmrExports).toBeUndefined(); expect(send).toHaveBeenCalledWith({ type: "custom", event: "one:route-update", data: { file: "app-sootsim/_layout.tsx" } }); }); it("suppresses ssr reloads only inside the configured router root", function () { var modules = [{ id: "/project/app-sootsim/index.tsx" }]; expect(runHotUpdate({ environment: "ssr", file: "/project/app-sootsim/index.tsx", modules }).result).toEqual([]); expect(runHotUpdate({ environment: "ssr", file: "/project/app/index.tsx", modules }).result).toEqual(modules); }); }); //# sourceMappingURL=routeModuleHmrPlugin.test.native.js.map