UNPKG

one

Version:

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

84 lines (81 loc) 2.39 kB
"use strict"; var import_vitest = require("vitest"); var import_routeModuleHmrPlugin = require("./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 = (0, import_routeModuleHmrPlugin.createRouteModuleHmrPlugin)("app-sootsim"); var send = import_vitest.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 }; } (0, import_vitest.describe)(import_routeModuleHmrPlugin.createRouteModuleHmrPlugin, function () { (0, import_vitest.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] }); (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", function () { var 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); }); }); //# sourceMappingURL=routeModuleHmrPlugin.test.native.js.map