package enricher

import (
	"testing"

	tntent "github.com/tidbcloud/devops/entity/tenant"
	"github.com/tidbcloud/devops/pkg/infra/utils/test"

	. "github.com/onsi/ginkgo/v2"
	. "github.com/onsi/gomega"
)

func TestSalesforceEnricher(t *testing.T) {
	RegisterFailHandler(Fail)
	RunSpecs(t, "Salesforce Enricher Suite", test.ReporterConfig())
}

var _ = Describe("[SalesforceEnricher]", func() {
	Describe("overrideTestInfraRegion", func() {
		It("overrides the region for a configured tenant", func() {
			enricher := NewSalesforceEnricher(nil, nil, "", []uint64{1001})
			tenant := &tntent.Tenant{
				Id:               1001,
				SalesForceRegion: tntent.TenantRegionNA,
			}

			enricher.overrideTestInfraRegion(tenant)

			Expect(tenant.SalesForceRegion).To(Equal(tntent.TenantRegionTestInfra))
		})

		It("preserves the region for a tenant that is not configured", func() {
			enricher := NewSalesforceEnricher(nil, nil, "", []uint64{1001})
			tenant := &tntent.Tenant{
				Id:               1002,
				SalesForceRegion: tntent.TenantRegionEMEA,
			}

			enricher.overrideTestInfraRegion(tenant)

			Expect(tenant.SalesForceRegion).To(Equal(tntent.TenantRegionEMEA))
		})
	})
})
