UNPKG

one

Version:

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

74 lines 2.12 kB
var import_vitest = require("vitest"); var import_routeModuleHmrPlugin = require("./routeModuleHmrPlugin.cjs"); function runHotUpdate({ environment, file, modules }) { const plugin = (0, import_routeModuleHmrPlugin.createRouteModuleHmrPlugin)("app-sootsim"); const send = import_vitest.vi.fn(); const hotUpdate = typeof plugin.hotUpdate === "object" ? plugin.hotUpdate.handler : plugin.hotUpdate; const result = hotUpdate.call({ environment: { name: environment } }, { file, modules, server: { config: { root: "/project" }, hot: { send } } }); return { result, send }; } (0, import_vitest.describe)(import_routeModuleHmrPlugin.createRouteModuleHmrPlugin, () => { (0, import_vitest.it)("applies client hmr to the configured router root", () => { const routeModule = { id: "/project/app-sootsim/_layout.tsx?one" }; const otherModule = { id: "/project/app/index.tsx" }; const { result, send } = runHotUpdate({ environment: "client", file: "/project/app-sootsim/_layout.tsx", modules: [routeModule, otherModule] }); (0, import_vitest.expect)(result).toEqual([routeModule, otherModule]); (0, import_vitest.expect)(routeModule.acceptedHmrExports).toEqual(/* @__PURE__ */new Set()); (0, import_vitest.expect)(otherModule.acceptedHmrExports).toBeUndefined(); (0, import_vitest.expect)(send).toHaveBeenCalledWith({ type: "custom", event: "one:route-update", data: { file: "app-sootsim/_layout.tsx" } }); }); (0, import_vitest.it)("suppresses ssr reloads only inside the configured router root", () => { const modules = [{ id: "/project/app-sootsim/index.tsx" }]; (0, import_vitest.expect)(runHotUpdate({ environment: "ssr", file: "/project/app-sootsim/index.tsx", modules }).result).toEqual([]); (0, import_vitest.expect)(runHotUpdate({ environment: "ssr", file: "/project/app/index.tsx", modules }).result).toEqual(modules); }); });