Skip to content

Commit e098df0

Browse files
committed
Fix code-server module not being provided in Jest
1 parent b881117 commit e098df0

File tree

2 files changed

+20
-15
lines changed

2 files changed

+20
-15
lines changed

src/node/plugin.ts

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@ type Module = any
2121
*/
2222
const originalLoad = require("module")._load
2323
require("module")._load = function (request: string, parent: object, isMain: boolean): Module {
24-
if (request === "code-server") {
25-
return {
26-
express,
27-
field,
28-
HttpCode,
29-
HttpError,
30-
Level,
31-
proxy,
32-
replaceTemplates,
33-
WsRouter,
34-
wss,
35-
}
36-
}
37-
return originalLoad.apply(this, [request, parent, isMain])
24+
return request === "code-server" ? codeServer : originalLoad.apply(this, [request, parent, isMain])
25+
}
26+
27+
/**
28+
* The module you get when importing "code-server".
29+
*/
30+
export const codeServer = {
31+
express,
32+
field,
33+
HttpCode,
34+
HttpError,
35+
Level,
36+
proxy,
37+
replaceTemplates,
38+
WsRouter,
39+
wss,
3840
}
3941

4042
interface Plugin extends pluginapi.Plugin {

test/plugin.test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ import * as express from "express"
33
import * as fs from "fs"
44
import * as path from "path"
55
import { HttpCode } from "../src/common/http"
6-
import { PluginAPI } from "../src/node/plugin"
6+
import { codeServer, PluginAPI } from "../src/node/plugin"
77
import * as apps from "../src/node/routes/apps"
88
import * as httpserver from "./httpserver"
99
const fsp = fs.promises
1010

11+
// Jest overrides `require` so our usual override doesn't work.
12+
jest.mock("code-server", () => codeServer)
13+
1114
/**
1215
* Use $LOG_LEVEL=debug to see debug logs.
1316
*/

0 commit comments

Comments
 (0)