package main_test import ( "testing" "git.akyoto.dev/cli/q/cli" "git.akyoto.dev/go/assert" ) func TestCLI(t *testing.T) { type cliTest struct { arguments []string expectedExitCode int } tests := []cliTest{ {[]string{}, 2}, {[]string{"invalid"}, 2}, {[]string{"system"}, 0}, {[]string{"build", "non-existing-directory"}, 1}, {[]string{"build", "examples/hello/hello.q"}, 2}, {[]string{"build", "examples/hello", "--invalid"}, 2}, } for _, test := range tests { exitCode := cli.Main(test.arguments) t.Log(test.arguments) assert.Equal(t, exitCode, test.expectedExitCode) } }