fix(test): use async jiti import and fix control-ui client id for Node 24.13+
Node 24.13+ sealed the require property on ESM module objects, breaking Jiti's sync CJS path when tryNative is false. Switch to async .import(). Also update GatewayClient id from "control-ui" to "openclaw-control-ui" to match the upstream rename.
This commit is contained in:
parent
62daaba64a
commit
b9c59976d3
@ -9,7 +9,7 @@ function makeClient(scopes: string[]): GatewayClient {
|
||||
minProtocol: 1,
|
||||
maxProtocol: 1,
|
||||
client: {
|
||||
id: "control-ui",
|
||||
id: "openclaw-control-ui",
|
||||
version: "1.0.0",
|
||||
platform: "test",
|
||||
mode: "operator",
|
||||
|
||||
@ -77,9 +77,9 @@ export const copiedRuntimeMarker = {
|
||||
...__testing.buildPluginLoaderJitiOptions({}),
|
||||
tryNative: false,
|
||||
});
|
||||
// The production loader uses sync Jiti evaluation, so this regression test
|
||||
// should exercise the same seam instead of Jiti's async import helper.
|
||||
expect(() => withoutAlias(copiedChannelRuntime)).toThrow();
|
||||
// Node 24.13+ sealed `require` on ESM module objects, breaking Jiti's sync
|
||||
// CJS path when tryNative is false. Use the async `.import()` helper instead.
|
||||
await expect(async () => await withoutAlias.import(copiedChannelRuntime)).rejects.toThrow();
|
||||
|
||||
const withAlias = createJiti(jitiBaseUrl, {
|
||||
...__testing.buildPluginLoaderJitiOptions({
|
||||
@ -87,7 +87,7 @@ export const copiedRuntimeMarker = {
|
||||
}),
|
||||
tryNative: false,
|
||||
});
|
||||
expect(withAlias(copiedChannelRuntime)).toMatchObject({
|
||||
expect(await withAlias.import(copiedChannelRuntime)).toMatchObject({
|
||||
copiedRuntimeMarker: {
|
||||
PAIRING_APPROVED_MESSAGE: "paired",
|
||||
resolveOutboundSendDep: expect.any(Function),
|
||||
|
||||
@ -3595,9 +3595,9 @@ export const syntheticRuntimeMarker = {
|
||||
...__testing.buildPluginLoaderJitiOptions({}),
|
||||
tryNative: false,
|
||||
});
|
||||
// The production loader uses sync Jiti evaluation, so this boundary should
|
||||
// follow the same path instead of the async import helper.
|
||||
expect(() => withoutAlias(copiedChannelRuntime)).toThrow();
|
||||
// Node 24.13+ sealed `require` on ESM module objects, breaking Jiti's sync
|
||||
// CJS path when tryNative is false. Use the async `.import()` helper instead.
|
||||
await expect(async () => await withoutAlias.import(copiedChannelRuntime)).rejects.toThrow();
|
||||
|
||||
const withAlias = createJiti(jitiBaseUrl, {
|
||||
...__testing.buildPluginLoaderJitiOptions({
|
||||
@ -3605,7 +3605,7 @@ export const syntheticRuntimeMarker = {
|
||||
}),
|
||||
tryNative: false,
|
||||
});
|
||||
expect(withAlias(copiedChannelRuntime)).toMatchObject({
|
||||
expect(await withAlias.import(copiedChannelRuntime)).toMatchObject({
|
||||
syntheticRuntimeMarker: {
|
||||
resolveOutboundSendDep: expect.any(Function),
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user