helmfile/pkg/flags/flag_handler_test.go

52 lines
1.5 KiB
Go

package flags
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestMockFlagHandler_HandleFlag_ReturnValue(t *testing.T) {
// Create a mock handler
mockHandler := NewMockFlagHandler()
// Test that it returns true for any flag
result := mockHandler.HandleFlag("test-flag", true, false)
assert.True(t, result, "MockHandler should return true for any flag")
// Test with multiple flags
result = mockHandler.HandleFlag("another-flag", "value", true)
assert.True(t, result, "MockHandler should return true for any flag")
// Verify the flags were stored correctly
assert.Equal(t, true, mockHandler.handledFlags["test-flag"])
assert.Equal(t, "value", mockHandler.handledFlags["another-flag"])
assert.Equal(t, false, mockHandler.changedFlags["test-flag"])
assert.Equal(t, true, mockHandler.changedFlags["another-flag"])
}
// CustomFlagHandler implements FlagHandler for testing specific return values
type CustomFlagHandler struct{}
func (h *CustomFlagHandler) HandleFlag(name string, value interface{}, changed bool) bool {
// Only handle specific flags
switch name {
case "known-flag":
return true
default:
return false
}
}
func TestCustomFlagHandler_HandleFlag_ReturnValue(t *testing.T) {
handler := &CustomFlagHandler{}
// Test with a recognized flag
result := handler.HandleFlag("known-flag", true, false)
assert.True(t, result, "Should return true for recognized flag")
// Test with an unrecognized flag
result = handler.HandleFlag("unknown-flag", true, false)
assert.False(t, result, "Should return false for unrecognized flag")
}