-
Notifications
You must be signed in to change notification settings - Fork 15
/
mod_test.ts
65 lines (60 loc) 路 1.68 KB
/
mod_test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import {
assertEquals,
assertRejects,
} from "https://deno.land/std@0.217.0/assert/mod.ts";
import { test } from "https://deno.land/x/denops_test@v1.6.2/mod.ts";
import * as lambda from "./mod.ts";
test({
mode: "all",
name: "lambda",
fn: async (denops, t) => {
await t.step({
name: "register() registers a lambda function",
fn: async () => {
const id = lambda.register(
denops,
() => Promise.resolve("0"),
);
assertEquals(await denops.dispatch(denops.name, id), "0");
assertEquals(await denops.dispatch(denops.name, id), "0");
},
});
await t.step({
name:
"register() registers an oneshot lambda functions when 'once' option is specified",
fn: async () => {
const id = lambda.register(
denops,
() => Promise.resolve("0"),
{ once: true },
);
assertEquals(await denops.dispatch(denops.name, id), "0");
// The method will be removed
await assertRejects(
async () => {
await denops.dispatch(denops.name, id);
},
`No method '${id}' exists`,
);
},
});
await t.step({
name:
"unregister() unregisters a lambda function identified by the identifier",
fn: async () => {
const id = lambda.register(
denops,
() => Promise.resolve("0"),
);
assertEquals(lambda.unregister(denops, id), true);
// The method is removed
await assertRejects(
async () => {
await denops.dispatch(denops.name, id);
},
`No method '${id}' exists`,
);
},
});
},
});