package common

import (
	"testing"

	"github.com/stretchr/testify/require"
	. "github.com/tidbcloud/dataflow-service-e2e/internal/model"
)

func TestRequireMySQLPrivateLinkFixtureSeparatesManagementEndpointAndProductPort(t *testing.T) {
	fixture := &MySQLEntity{PrivateLinkServiceName: "service", Endpoint: "runner.example:13306", Ports: []int64{4406}}
	require.NoError(t, RequireMySQLPrivateLinkFixture("case", fixture))

	fixture.Endpoint = ""
	require.EqualError(t, RequireMySQLPrivateLinkFixture("case", fixture), "case requires a runner-reachable MySQL management endpoint for seed and validation")
	fixture.Endpoint = "runner.example:13306"
	fixture.Ports = nil
	require.EqualError(t, RequireMySQLPrivateLinkFixture("case", fixture), "case requires a valid MySQL PrivateLink product port")
	fixture.Ports = []int64{4406}
	fixture.PrivateLinkServiceName = ""
	require.EqualError(t, RequireMySQLPrivateLinkFixture("case", fixture), "case requires a configured PrivateLink service name")
}
