@@ -242,3 +242,63 @@ func TestLibCompletion(t *testing.T) {
242242 stdout , _ , _ = cli .Run ("__complete" , "lib" , "deps" , "" )
243243 require .Contains (t , string (stdout ), "WiFi101" )
244244}
245+
246+ // here we test if the completions coming from the core are working
247+ func TestCoreCompletion (t * testing.T ) {
248+ env := testsuite .NewEnvironment (t )
249+ defer env .CleanUp ()
250+
251+ cli := integrationtest .NewArduinoCliWithinEnvironment (env , & integrationtest.ArduinoCLIConfig {
252+ ArduinoCLIPath : paths .New (".." , ".." , ".." , "arduino-cli" ),
253+ UseSharedStagingFolder : true ,
254+ })
255+
256+ _ , _ , err := cli .Run ("core" , "update-index" )
257+ require .NoError (t , err )
258+ stdout , _ , _ := cli .Run ("__complete" , "core" , "install" , "" )
259+ require .Contains (t , string (stdout ), "arduino:avr" )
260+ stdout , _ , _ = cli .Run ("__complete" , "core" , "download" , "" )
261+ require .Contains (t , string (stdout ), "arduino:avr" )
262+ stdout , _ , _ = cli .Run ("__complete" , "core" , "uninstall" , "" )
263+ require .NotContains (t , string (stdout ), "arduino:avr" )
264+
265+ // we install a core because the provided completions comes from it
266+ _ , _ , err = cli .Run ("core" , "install" , "arduino:avr@1.8.3" )
267+ require .NoError (t , err )
268+
269+ stdout , _ , _ = cli .Run ("__complete" , "core" , "uninstall" , "" )
270+ require .Contains (t , string (stdout ), "arduino:avr" )
271+
272+ stdout , _ , _ = cli .Run ("__complete" , "board" , "details" , "-b" , "" )
273+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
274+ stdout , _ , _ = cli .Run ("__complete" , "burn-bootloader" , "-b" , "" )
275+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
276+ stdout , _ , _ = cli .Run ("__complete" , "compile" , "-b" , "" )
277+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
278+ stdout , _ , _ = cli .Run ("__complete" , "debug" , "-b" , "" )
279+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
280+ stdout , _ , _ = cli .Run ("__complete" , "lib" , "examples" , "-b" , "" )
281+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
282+ stdout , _ , _ = cli .Run ("__complete" , "upload" , "-b" , "" )
283+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
284+ stdout , _ , _ = cli .Run ("__complete" , "monitor" , "-b" , "" )
285+ require .Contains (t , string (stdout ), "arduino:avr:uno" )
286+ stdout , _ , _ = cli .Run ("__complete" , "burn-bootloader" , "-l" , "" )
287+ require .Contains (t , string (stdout ), "network" )
288+ stdout , _ , _ = cli .Run ("__complete" , "compile" , "-l" , "" )
289+ require .Contains (t , string (stdout ), "network" )
290+ stdout , _ , _ = cli .Run ("__complete" , "debug" , "-l" , "" )
291+ require .Contains (t , string (stdout ), "network" )
292+ stdout , _ , _ = cli .Run ("__complete" , "upload" , "-l" , "" )
293+ require .Contains (t , string (stdout ), "network" )
294+ stdout , _ , _ = cli .Run ("__complete" , "monitor" , "-l" , "" )
295+ require .Contains (t , string (stdout ), "network" )
296+ stdout , _ , _ = cli .Run ("__complete" , "burn-bootloader" , "-P" , "" )
297+ require .Contains (t , string (stdout ), "atmel_ice" )
298+ stdout , _ , _ = cli .Run ("__complete" , "compile" , "-P" , "" )
299+ require .Contains (t , string (stdout ), "atmel_ice" )
300+ stdout , _ , _ = cli .Run ("__complete" , "debug" , "-P" , "" )
301+ require .Contains (t , string (stdout ), "atmel_ice" )
302+ stdout , _ , _ = cli .Run ("__complete" , "upload" , "-P" , "" )
303+ require .Contains (t , string (stdout ), "atmel_ice" )
304+ }
0 commit comments