Skip to content

Commit c5013d8

Browse files
committed
nvim/plugin: add Autocmd handlers testcases
Signed-off-by: Koichi Shiraishi <[email protected]>
1 parent 7964610 commit c5013d8

File tree

1 file changed

+122
-0
lines changed

1 file changed

+122
-0
lines changed

nvim/plugin/plugin_test.go

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,74 @@ func TestRegister(t *testing.T) {
113113
},
114114
)
115115

116+
// AutocmdHandler
117+
p.HandleAutocmd(
118+
&plugin.AutocmdOptions{
119+
Event: "User",
120+
Group: "Test",
121+
Pattern: "Test",
122+
Nested: true,
123+
Once: false,
124+
},
125+
func(n *nvim.Nvim, args []string) error {
126+
chunks := []nvim.TextChunk{
127+
{
128+
Text: "Hello",
129+
},
130+
{
131+
Text: "Autocmd",
132+
},
133+
}
134+
135+
return n.Echo(chunks, true, make(map[string]interface{}))
136+
},
137+
)
138+
139+
// AutocmdEvalHandler
140+
p.HandleAutocmd(
141+
&plugin.AutocmdOptions{
142+
Event: "User",
143+
Group: "Eval",
144+
Pattern: "Eval",
145+
Eval: "*",
146+
},
147+
func(n *nvim.Nvim, eval *testEval) error {
148+
chunks := []nvim.TextChunk{
149+
{
150+
Text: eval.BaseDir,
151+
},
152+
}
153+
154+
return n.Echo(chunks, true, make(map[string]interface{}))
155+
},
156+
)
157+
158+
// AutocmdOnceHandler
159+
p.HandleAutocmd(
160+
&plugin.AutocmdOptions{
161+
Event: "User",
162+
Group: "TestOnce",
163+
Pattern: "Once",
164+
Nested: true,
165+
Once: true,
166+
},
167+
func(n *nvim.Nvim, args []string) error {
168+
chunks := []nvim.TextChunk{
169+
{
170+
Text: "Hello",
171+
},
172+
{
173+
Text: "Autocmd",
174+
},
175+
{
176+
Text: "Once",
177+
},
178+
}
179+
180+
return n.Echo(chunks, true, make(map[string]interface{}))
181+
},
182+
)
183+
116184
if err := p.RegisterForTests(); err != nil {
117185
t.Fatalf("register handlers for test: %v", err)
118186
}
@@ -201,6 +269,60 @@ func TestRegister(t *testing.T) {
201269
t.Fatalf("Hello returned %q, want %q", result, expected)
202270
}
203271
})
272+
273+
t.Run("AutocmdHandler", func(t *testing.T) {
274+
result, err := p.Nvim.Exec(`doautocmd User Test`, true)
275+
if err != nil {
276+
t.Fatalf("exec 'doautocmd User Test' command: %v", err)
277+
}
278+
279+
expected := `HelloAutocmd`
280+
if result != expected {
281+
t.Fatalf("'doautocmd User Test' returned %q, want %q", result, expected)
282+
}
283+
284+
result2, err := p.Nvim.Exec(`doautocmd User Test`, true)
285+
if err != nil {
286+
t.Fatalf("exec 'doautocmd User Test' command: %v", err)
287+
}
288+
289+
if result2 != expected {
290+
t.Fatalf("'doautocmd User Test' returned %q, want %q", result, expected)
291+
}
292+
})
293+
294+
t.Run("AutocmdEvalHandler", func(t *testing.T) {
295+
result, err := p.Nvim.Exec(`doautocmd User Eval`, true)
296+
if err != nil {
297+
t.Fatalf("exec 'doautocmd User Eval' command: %v", err)
298+
}
299+
300+
expected := `plugin`
301+
if result != expected {
302+
t.Fatalf("'doautocmd User Eval' returned %q, want %q", result, expected)
303+
}
304+
})
305+
306+
t.Run("AutocmdOnceHandler", func(t *testing.T) {
307+
result, err := p.Nvim.Exec(`doautocmd User Once`, true)
308+
if err != nil {
309+
t.Fatalf("exec 'doautocmd User Once' command: %v", err)
310+
}
311+
312+
expected := `HelloAutocmdOnce`
313+
if result != expected {
314+
t.Fatalf("'doautocmd User Once' returned %q, want %q", result, expected)
315+
}
316+
317+
result2, err := p.Nvim.Exec(`doautocmd User Once`, true)
318+
if err != nil {
319+
t.Fatalf("exec 'doautocmd User Once' command: %v", err)
320+
}
321+
322+
if result2 == expected {
323+
t.Fatalf("'doautocmd User Once' returned %q, want %q", result, "")
324+
}
325+
})
204326
}
205327

206328
func TestSubscribe(t *testing.T) {

0 commit comments

Comments
 (0)