Add test cases for GetCommand to cover invalid args scenarios (#1940)

Signed-off-by: Ioannis Polyzos <git@ipolyzos.com>
This commit is contained in:
Ioannis Polyzos 2024-09-27 17:22:47 +03:00 committed by GitHub
parent 4b0a3966cd
commit 0cc4301cd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -115,3 +115,51 @@ func TestGet_cancel(t *testing.T) {
t.Fatalf("wrong error message\nshould contain: %s\ngot:\n%s", want, got)
}
}
func TestGetCommand_InvalidArgs(t *testing.T) {
testCases := []struct {
name string
args []string
expected string
}{
{
name: "TooManyArgs",
args: []string{"too", "many", "args"},
expected: "Too many command line arguments",
},
{
name: "InvalidArgFormat",
args: []string{"--invalid-arg"},
expected: "flag provided but not defined",
},
{
name: "MixedValidAndInvalidArgs",
args: []string{"--update", "--invalid-arg"},
expected: "flag provided but not defined",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
wd := tempWorkingDirFixture(t, "get")
defer testChdir(t, wd.RootModuleDir())()
ui := cli.NewMockUi()
c := &GetCommand{
Meta: Meta{
testingOverrides: metaOverridesForProvider(testProvider()),
Ui: ui,
WorkingDir: wd,
},
}
if code := c.Run(tc.args); code != 1 {
t.Errorf("Expected error code 1 for invalid arguments, got %d", code)
}
if !strings.Contains(ui.ErrorWriter.String(), tc.expected) {
t.Errorf("Expected error message to contain '%s', got: %s", tc.expected, ui.ErrorWriter.String())
}
})
}
}