Skip to content

Commit 7bee3ae

Browse files
committed
🌿Add test for type definition of cursor-functions
1 parent 1c76d4a commit 7bee3ae

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import * as cursor from "./cursor.ts";
2+
import { assertEquals } from "../deps_test.ts";
3+
import { ensureNumber } from "../deps.ts";
4+
import { ensurePosition, ensureScreenPos, isScreenPos } from "./types.ts";
5+
import { test } from "../deps_test.ts";
6+
7+
test({
8+
mode: "all",
9+
name: "col()",
10+
fn: async (denops) => {
11+
await denops.call("setline", 1, "abcdef");
12+
await denops.cmd("norm gg4|mx6|mY2|");
13+
14+
ensureNumber(await cursor.col(denops, "."));
15+
assertEquals(await cursor.col(denops, "."), 2);
16+
assertEquals(await cursor.col(denops, [1, 2]), 2);
17+
assertEquals(await cursor.col(denops, [1, "$"]), 7);
18+
},
19+
});
20+
21+
test({
22+
mode: "all",
23+
name: "virtcol()",
24+
fn: async (denops) => {
25+
await denops.call("setline", 1, "\tab");
26+
27+
ensureNumber(await cursor.virtcol(denops, "."));
28+
assertEquals(await cursor.virtcol(denops, "."), 8);
29+
assertEquals(await cursor.virtcol(denops, [1, 1]), 8);
30+
assertEquals(await cursor.virtcol(denops, [1, "$"]), 11);
31+
32+
await denops.cmd("set virtualedit=all");
33+
assertEquals(await cursor.virtcol(denops, [1, 1, 1]), 2);
34+
},
35+
});
36+
37+
test({
38+
mode: "all",
39+
name: "line()",
40+
fn: async (denops) => {
41+
await denops.call("setline", 1, ["a", "b", "c"]);
42+
ensureNumber(await cursor.line(denops, "."));
43+
assertEquals(await cursor.line(denops, "."), 1);
44+
assertEquals(await cursor.line(denops, "$"), 3);
45+
},
46+
});
47+
48+
test({
49+
mode: "all",
50+
name: "wincol()",
51+
fn: async (denops) => {
52+
ensureNumber(await cursor.wincol(denops));
53+
},
54+
});
55+
56+
test({
57+
mode: "all",
58+
name: "winline()",
59+
fn: async (denops) => {
60+
ensureNumber(await cursor.winline(denops));
61+
},
62+
});
63+
64+
test({
65+
mode: "all",
66+
name: "cursor()",
67+
fn: async (denops) => {
68+
ensureNumber(await cursor.cursor(denops, 1, 2));
69+
ensureNumber(await cursor.cursor(denops, 1, 2, 3));
70+
ensureNumber(await cursor.cursor(denops, [1, 2, 3]));
71+
ensureNumber(await cursor.cursor(denops, [1, 2, 3, 4]));
72+
},
73+
});
74+
75+
test({
76+
mode: "all",
77+
name: "screenpos()",
78+
fn: async (denops) => {
79+
ensureScreenPos(await cursor.screenpos(denops, "%", 1, 1));
80+
// screenpos() returns `{}` if failed
81+
assertEquals(
82+
isScreenPos(await cursor.screenpos(denops, 9999, 1, 1)),
83+
false,
84+
);
85+
},
86+
});
87+
88+
test({
89+
mode: "all",
90+
name: "getcurpos",
91+
fn: async (denops) => {
92+
ensurePosition(await cursor.getcurpos(denops));
93+
},
94+
});
95+
96+
test({
97+
mode: "all",
98+
name: "getpos",
99+
fn: async (denops) => {
100+
ensurePosition(await cursor.getpos(denops, "'a"));
101+
},
102+
});
103+
104+
test({
105+
mode: "all",
106+
name: "setpos",
107+
fn: async (denops) => {
108+
ensureNumber(
109+
await cursor.setpos(denops, "'b", await cursor.getpos(denops, "'a")),
110+
);
111+
ensureNumber(
112+
await cursor.setpos(denops, "'b", await cursor.getcurpos(denops)),
113+
);
114+
},
115+
});
116+
117+
test({
118+
mode: "all",
119+
name: "byte2line",
120+
fn: async (denops) => {
121+
ensureNumber(await cursor.byte2line(denops, 1));
122+
},
123+
});
124+
125+
test({
126+
mode: "all",
127+
name: "line2byte",
128+
fn: async (denops) => {
129+
ensureNumber(await cursor.line2byte(denops, 1));
130+
},
131+
});
132+
133+
test({
134+
mode: "all",
135+
name: "diff_filler()",
136+
fn: async (denops) => {
137+
ensureNumber(await cursor.diff_filler(denops, 1));
138+
ensureNumber(await cursor.diff_filler(denops, "."));
139+
},
140+
});

0 commit comments

Comments
 (0)