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