package utils

import (
	"testing"

	"github.com/pingcap-inc/clinic/pkg/db"
	"github.com/pingcap-inc/clinic/pkg/o11y"
)

func TestApplyDevSharedClusterRegion(t *testing.T) {
	c := &db.Cluster{DeployType: o11y.SharedType, Region: "us-east-2"}
	ApplyDevSharedClusterRegion("dev", c)
	if c.Region != devSharedClusterAWSRegion {
		t.Fatalf("expected %s, got %s", devSharedClusterAWSRegion, c.Region)
	}

	c = &db.Cluster{DeployType: o11y.SharedType, Region: "us-west-2"}
	ApplyDevSharedClusterRegion("dev", c)
	if c.Region != "us-west-2" {
		t.Fatalf("expected %s, got %s", "us-west-2", c.Region)
	}

	c2 := &db.Cluster{DeployType: o11y.SharedType, Region: "us-east-2"}
	ApplyDevSharedClusterRegion("prod", c2)
	if c2.Region != "us-east-2" {
		t.Fatalf("prod must not change region: got %s", c2.Region)
	}

	d := &db.Cluster{DeployType: o11y.DedicatedType, Region: "us-east-2"}
	ApplyDevSharedClusterRegion("dev", d)
	if d.Region != "us-east-2" {
		t.Fatalf("non-shared must not change region: got %s", d.Region)
	}
}
