package app import ( "testing" "coopcloud.tech/abra/cli/internal" ) func TestGetSpecificVersion(t *testing.T) { tests := []struct { input []string expectedOutput string }{ // No specified version when command has one or less args {[]string{}, ""}, {[]string{"arg0"}, ""}, // Second in arg (index-1) is the specified result when command has more than 1 args {[]string{"arg0", "arg1"}, "arg1"}, {[]string{"arg0", "arg1", "arg2"}, "arg1"}, } for _, test := range tests { if test.expectedOutput != getSpecifiedVersion(test.input) { t.Fatalf("result for %s should be %s", test.input, test.expectedOutput) } } } func TestValidateChaosXORVersion(t *testing.T) { tests := []struct { input []string isChaos bool expectedResult bool }{ // Chaos = true, Specified Version absent {[]string{}, true, true}, // Chaos = false, Specified Version absent {[]string{}, false, true}, // Chaos = true, Specified Version present {[]string{"arg0", "arg1"}, true, false}, // Chaos = false, Specified Version present {[]string{"arg0", "arg1", "arg2"}, false, true}, } for _, test := range tests { internal.Chaos = test.isChaos res, _ := validateChaosXORVersion(test.input) if res != test.expectedResult { t.Fatalf( "When args are %s and Chaos mode is %t result needs to be %t", test.input, test.isChaos, test.expectedResult, ) } } }