package k8s

import (
	"context"
	"testing"

	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"

	. "github.com/onsi/gomega"
	corev1 "k8s.io/api/core/v1"
	"sigs.k8s.io/controller-runtime/pkg/client/fake"
)

func TestCreateIgnoreExists(t *testing.T) {
	g := NewGomegaWithT(t)
	client := fake.NewClientBuilder().Build()

	cm := new(corev1.ConfigMap)
	cm.Name = "name"
	op, err := CreateIgnoreExists(context.Background(), client, cm)
	g.Expect(err).Should(Succeed())
	g.Expect(op).To(Equal(controllerutil.OperationResultCreated))
	cm = new(corev1.ConfigMap)
	cm.Name = "name"
	op, err = CreateIgnoreExists(context.Background(), client, cm)
	g.Expect(err).Should(Succeed())
	g.Expect(op).To(Equal(controllerutil.OperationResultNone))
}
