Skip to content

Commit 6d7fdec

Browse files
committed
add: abnormality test of load()
1 parent 4df9882 commit 6d7fdec

File tree

2 files changed

+45
-5
lines changed

2 files changed

+45
-5
lines changed

denops_std/helper/load.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ async function ensureLocalFile(url: URL): Promise<string> {
2828
}
2929
const response = await fetch(url);
3030
if (response.status !== 200) {
31+
await response.body?.cancel();
3132
throw new Error(`Failed to fetch '${url}'`);
3233
}
3334
const content = await response.arrayBuffer();

denops_std/helper/load_test.ts

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
import { assertEquals, test } from "../deps_test.ts";
1+
import { assertEquals, assertThrowsAsync, test } from "../deps_test.ts";
22
import { load } from "./load.ts";
33

4+
const loadScriptUrlBase =
5+
"https://raw.githubusercontent.com/vim-denops/deno-denops-std/4df988237b3ea04aaa665974b44c8e7df8e237cb/denops_std/helper/";
6+
47
test({
58
mode: "any",
69
name: "load() load local Vim script file",
@@ -14,13 +17,49 @@ test({
1417
mode: "any",
1518
name: "load() load remote Vim script file",
1619
fn: async (denops) => {
20+
const loadScriptUrl = new URL("load_test.vim", loadScriptUrlBase);
1721
await load(
1822
denops,
19-
new URL(
20-
"https://raw.githubusercontent.com/vim-denops/deno-denops-std/main/denops_std/helper/load_test.vim",
21-
import.meta.url,
22-
),
23+
loadScriptUrl,
2324
);
2425
assertEquals(await denops.eval("g:denops_std_load_test") as number, 1);
2526
},
2627
});
28+
29+
test({
30+
mode: "any",
31+
name: "load() load not exists local Vim script file",
32+
fn: async (denops) => {
33+
await assertThrowsAsync(
34+
async () => {
35+
await load(
36+
denops,
37+
new URL("./load_test_not_exists.vim", import.meta.url),
38+
);
39+
},
40+
undefined,
41+
`Failed to call 'call' with`,
42+
);
43+
},
44+
});
45+
46+
test({
47+
mode: "any",
48+
name: "load() load not exists remote Vim script file",
49+
fn: async (denops) => {
50+
await assertThrowsAsync(
51+
async () => {
52+
const loadScriptUrl = new URL(
53+
"load_test_not_exists.vim",
54+
loadScriptUrlBase,
55+
);
56+
await load(
57+
denops,
58+
loadScriptUrl,
59+
);
60+
},
61+
Error,
62+
"Failed to fetch",
63+
);
64+
},
65+
});

0 commit comments

Comments
 (0)