package providers

import (
	"testing"

	ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types"
	"github.com/stretchr/testify/assert"
	"github.com/stretchr/testify/require"
)

func TestNormalizeEKSResolveConflicts(t *testing.T) {
	tests := []struct {
		name string
		in   string
		want ekstypes.ResolveConflicts
	}{
		{name: "none", in: "NONE", want: ekstypes.ResolveConflictsNone},
		{name: "overwrite", in: "OVERWRITE", want: ekstypes.ResolveConflictsOverwrite},
		{name: "preserve", in: "PRESERVE", want: ekstypes.ResolveConflictsPreserve},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			got, err := normalizeEKSResolveConflicts(tt.in)
			require.NoError(t, err)
			assert.Equal(t, tt.want, got)
		})
	}
}

func TestNormalizeEKSResolveConflictsRejectsInvalidValue(t *testing.T) {
	_, err := normalizeEKSResolveConflicts("Overwrite")

	require.Error(t, err)
	assert.Contains(t, err.Error(), `invalid EKS resolveConflicts "Overwrite"`)
}
