Skip to content

Commit 1df7a02

Browse files
authored
Merge pull request #466 from vim-denops/fix/updates
fix(test): address type errors and timing issues in test suite
2 parents 5cfca39 + ca89e38 commit 1df7a02

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

denops/@denops-private/cli_test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ Deno.test("main()", async (t) => {
288288
);
289289

290290
await t.step("and the worker stream is closed", async (t) => {
291-
fakeWorker.onmessage(new MessageEvent("message", { data: null }));
291+
fakeWorker.onmessage!(new MessageEvent("message", { data: null }));
292292
await delay(0);
293293

294294
await t.step("calls Worker.terminate()", () => {
@@ -453,7 +453,7 @@ Deno.test("main()", async (t) => {
453453
assertSpyCalls(globalThis_Worker, 1);
454454
fakeTcpListener.close();
455455

456-
fakeWorker.onmessage(new MessageEvent("message", { data: null }));
456+
fakeWorker.onmessage!(new MessageEvent("message", { data: null }));
457457
await delay(0);
458458

459459
await t.step("calls Worker.terminate()", () => {
@@ -557,7 +557,7 @@ Deno.test("main()", async (t) => {
557557
await delay(0);
558558

559559
await t.step("and the worker stream is closed", async (t) => {
560-
fakeWorker.onmessage(new MessageEvent("message", { data: null }));
560+
fakeWorker.onmessage!(new MessageEvent("message", { data: null }));
561561
await delay(0);
562562

563563
await t.step("outputs error logs", () => {

denops/@denops-private/worker_test.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,13 @@ for (const { host, mode } of matrix) {
145145
throw error;
146146
});
147147

148-
await delay(0);
149-
assertEquals(consoleStub.error.firstCall.args, [
148+
// NOTE: The unhandledrejection event dispatch timing varies across
149+
// platforms and Deno versions. Poll until console.error is called.
150+
const deadline = Date.now() + 5000;
151+
while (!consoleStub.error.firstCall && Date.now() < deadline) {
152+
await delay(10);
153+
}
154+
assertEquals(consoleStub.error.firstCall?.args, [
150155
"Unhandled rejection:",
151156
error,
152157
]);

tests/denops/testutil/mock_test.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ type MethodKeyOf<T extends AnyRecord> = ({
2424
[K in keyof T]: T[K] extends AnyFn ? K : never;
2525
})[keyof T];
2626

27+
type NullableMethodKeyOf<T extends AnyRecord> = ({
28+
[K in keyof T]: T[K] extends AnyFn | null ? K : never;
29+
})[keyof T];
30+
2731
type GetterKeyOf<T extends AnyRecord> = ({
2832
[K in keyof T]: T[K] extends AnyFn ? never : K;
2933
})[keyof T];
@@ -337,7 +341,7 @@ Deno.test("createFakeWorker()", async (t) => {
337341
"removeEventListener",
338342
"dispatchEvent",
339343
"terminate",
340-
] as const satisfies readonly MethodKeyOf<Worker>[];
344+
] as const satisfies readonly NullableMethodKeyOf<Worker>[];
341345
for (const key of unimplementedMethods) {
342346
await t.step(`.${key}()`, () => {
343347
assertThrows(() => (worker[key] as AnyFn)(), Error, "Unimplemented");

tests/denops/testutil/with.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export function withVim<T>(
5656
"-c",
5757
"visual", // Go to Normal mode
5858
"-c",
59-
"set columns=9999", // Avoid unwilling output newline
59+
"set columns=9999 shortmess-=T", // Avoid unwilling output newline/truncation
6060
...commands.flatMap((c) => ["-c", c]),
6161
];
6262
return withProcess(cmd, args, { verbose: conf.verbose, ...options });

0 commit comments

Comments
 (0)