@@ -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
206328func TestSubscribe (t * testing.T ) {
0 commit comments