|
1 | 1 | import { BatchError, type Meta } from "jsr:@denops/core@^7.0.0";
|
2 | 2 | import {
|
| 3 | + assert, |
3 | 4 | assertEquals,
|
| 5 | + assertFalse, |
4 | 6 | assertInstanceOf,
|
5 | 7 | assertRejects,
|
6 | 8 | assertStrictEquals,
|
@@ -29,15 +31,29 @@ Deno.test("DenopsImpl", async (t) => {
|
29 | 31 | call: () => unimplemented(),
|
30 | 32 | batch: () => unimplemented(),
|
31 | 33 | };
|
| 34 | + const serviceInterrupt = new AbortController(); |
32 | 35 | const service: Service = {
|
33 | 36 | dispatch: () => unimplemented(),
|
34 | 37 | waitLoaded: () => unimplemented(),
|
35 |
| - interrupted: new AbortController().signal, |
| 38 | + interrupted: serviceInterrupt.signal, |
36 | 39 | };
|
37 | 40 | const denops = new DenopsImpl("dummy", meta, host, service);
|
38 | 41 |
|
39 |
| - await t.step("interrupted returns AbortSignal instance", () => { |
40 |
| - assertInstanceOf(denops.interrupted, AbortSignal); |
| 42 | + await t.step(".interrupted property", async (t) => { |
| 43 | + await t.step("returns AbortSignal instance", () => { |
| 44 | + assertInstanceOf(denops.interrupted, AbortSignal); |
| 45 | + }); |
| 46 | + |
| 47 | + await t.step("aborts when `Service.interrupted` aborts", () => { |
| 48 | + const signal = denops.interrupted; |
| 49 | + |
| 50 | + assertFalse(signal.aborted); |
| 51 | + |
| 52 | + serviceInterrupt.abort("test"); |
| 53 | + |
| 54 | + assert(signal.aborted); |
| 55 | + assertEquals(signal.reason, "test"); |
| 56 | + }); |
41 | 57 | });
|
42 | 58 |
|
43 | 59 | await t.step(".redraw()", async (t) => {
|
|
0 commit comments