Skip to content

Commit 43c8e80

Browse files
committed
🌿 Add tests for execute
1 parent f5bd7ce commit 43c8e80

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

denops_std/helper/execute_test.ts

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import {
2+
assertEquals,
3+
assertThrowsAsync,
4+
} from "../vendor/https/deno.land/std/testing/asserts.ts";
5+
import { test } from "../vendor/https/deno.land/x/denops_core/test/mod.ts";
6+
import { execute } from "./execute.ts";
7+
8+
test({
9+
mode: "any",
10+
name: "execute() executes Vim script",
11+
fn: async (denops) => {
12+
await execute(denops, "let g:denops_std_execute_test = 1");
13+
assertEquals(await denops.eval("g:denops_std_execute_test") as number, 1);
14+
},
15+
});
16+
17+
test({
18+
mode: "any",
19+
name: "execute() executes multi-line Vim script",
20+
fn: async (denops) => {
21+
await execute(
22+
denops,
23+
`
24+
let g:denops_std_execute_test = 1
25+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
26+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
27+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
28+
`,
29+
);
30+
assertEquals(await denops.eval("g:denops_std_execute_test") as number, 4);
31+
},
32+
});
33+
34+
test({
35+
mode: "any",
36+
name: "execute() executes multi-line Vim script but stop on errors",
37+
fn: async (denops) => {
38+
await assertThrowsAsync(
39+
async () => {
40+
await execute(
41+
denops,
42+
`
43+
let g:denops_std_execute_test = 1
44+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
45+
throw "This is expected error"
46+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
47+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
48+
`,
49+
);
50+
},
51+
undefined,
52+
"This is expected error",
53+
);
54+
assertEquals(await denops.eval("g:denops_std_execute_test") as number, 2);
55+
},
56+
});
57+
58+
test({
59+
mode: "any",
60+
name: "execute() executes multi-line Vim script with given context",
61+
fn: async (denops) => {
62+
await execute(
63+
denops,
64+
`
65+
let g:denops_std_execute_test = value1
66+
let g:denops_std_execute_test = g:denops_std_execute_test + l:value2
67+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
68+
let g:denops_std_execute_test = g:denops_std_execute_test + 1
69+
`,
70+
{
71+
value1: 11,
72+
value2: 12,
73+
value3: 13,
74+
},
75+
);
76+
assertEquals(await denops.eval("g:denops_std_execute_test") as number, 25);
77+
},
78+
});

0 commit comments

Comments
 (0)