@@ -113,6 +113,74 @@ func TestRegister(t *testing.T) {
113
113
},
114
114
)
115
115
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
+
116
184
if err := p .RegisterForTests (); err != nil {
117
185
t .Fatalf ("register handlers for test: %v" , err )
118
186
}
@@ -201,6 +269,60 @@ func TestRegister(t *testing.T) {
201
269
t .Fatalf ("Hello returned %q, want %q" , result , expected )
202
270
}
203
271
})
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
+ })
204
326
}
205
327
206
328
func TestSubscribe (t * testing.T ) {
0 commit comments