one
Version:
One is a new React Framework that makes Vite serve both native and web.
82 lines (80 loc) • 2.14 kB
JavaScript
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