Skip to content

Commit 9c1683b

Browse files
committed
Stabilize ws config test and Vitest diffs alias
1 parent 40af601 commit 9c1683b

4 files changed

Lines changed: 74 additions & 10 deletions

File tree

apps/server/src/wsServer.test.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -953,33 +953,42 @@ describe("WebSocket Server", () => {
953953

954954
const firstResponse = await sendRequest(ws, WS_METHODS.serverGetConfig);
955955
const secondResponse = await sendRequest(ws, WS_METHODS.serverGetConfig);
956+
const firstResult = firstResponse.result as
957+
| { readonly providers?: ReadonlyArray<{ readonly checkedAt?: string }> }
958+
| undefined;
959+
const secondResult = secondResponse.result as
960+
| { readonly providers?: ReadonlyArray<{ readonly checkedAt?: string }> }
961+
| undefined;
962+
const firstProvider = firstResult?.providers?.[0];
963+
const secondProvider = secondResult?.providers?.[0];
956964

957965
expect(firstResponse.result).toEqual(
958966
expect.objectContaining({
959-
providers: [
960-
{
967+
providers: expect.arrayContaining([
968+
expect.objectContaining({
961969
provider: "codex",
962970
status: "ready",
963971
available: true,
964972
authStatus: "authenticated",
965-
checkedAt: "2026-01-01T00:00:02.000Z",
966-
},
967-
],
973+
}),
974+
]),
968975
}),
969976
);
970977
expect(secondResponse.result).toEqual(
971978
expect.objectContaining({
972-
providers: [
973-
{
979+
providers: expect.arrayContaining([
980+
expect.objectContaining({
974981
provider: "codex",
975982
status: "error",
976983
available: false,
977984
authStatus: "unauthenticated",
978-
checkedAt: "2026-01-01T00:00:03.000Z",
979-
},
980-
],
985+
}),
986+
]),
981987
}),
982988
);
989+
expect(firstProvider?.checkedAt).toEqual(expect.any(String));
990+
expect(secondProvider?.checkedAt).toEqual(expect.any(String));
991+
expect(firstProvider?.checkedAt).not.toEqual(secondProvider?.checkedAt);
983992
});
984993

985994
it("bootstraps default keybindings file when missing", async () => {

apps/server/vitest.config.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
1+
import { fileURLToPath } from "node:url";
2+
13
import { defineConfig, mergeConfig } from "vitest/config";
24

35
import baseConfig from "../../vitest.config";
46

7+
const diffsEntry = fileURLToPath(
8+
new URL("../../node_modules/@pierre/diffs/dist/index.js", import.meta.url),
9+
);
10+
511
export default mergeConfig(
612
baseConfig,
713
defineConfig({
14+
resolve: {
15+
alias: {
16+
"@pierre/diffs": diffsEntry,
17+
},
18+
},
819
test: {
920
testTimeout: 15_000,
1021
hookTimeout: 15_000,

apps/web/vitest.config.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { fileURLToPath } from "node:url";
2+
3+
import { defineConfig, mergeConfig } from "vitest/config";
4+
5+
import viteConfig from "./vite.config";
6+
7+
const srcPath = fileURLToPath(new URL("./src", import.meta.url));
8+
9+
export default mergeConfig(
10+
viteConfig,
11+
defineConfig({
12+
resolve: {
13+
alias: {
14+
"~": srcPath,
15+
},
16+
},
17+
test: {
18+
setupFiles: ["./vitest.setup.ts"],
19+
},
20+
}),
21+
);

apps/web/vitest.setup.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function HTMLElementShim() {}
2+
3+
if (typeof globalThis.HTMLElement === "undefined") {
4+
Object.defineProperty(globalThis, "HTMLElement", {
5+
configurable: true,
6+
// Provide the minimal DOM surface needed by @create-markdown/preview in node tests.
7+
value: HTMLElementShim,
8+
writable: true,
9+
});
10+
}
11+
12+
if (typeof globalThis.customElements === "undefined") {
13+
Object.defineProperty(globalThis, "customElements", {
14+
configurable: true,
15+
value: {
16+
define() {},
17+
get() {
18+
return undefined;
19+
},
20+
},
21+
writable: true,
22+
});
23+
}

0 commit comments

Comments
 (0)