package engine

import (
	"testing"

	"cloud.google.com/go/bigquery"
	"github.com/pingcap-inc/clinic/clinic_data_service/pkg/dto"
	"github.com/stretchr/testify/require"
)

func TestBigQueryQueryRoutingUsesRegionalDefaultDataset(t *testing.T) {
	engine := &BigQueryEngine{
		projectID: "project",
		dataset:   "clinic_data_proxy",
	}
	query := &bigquery.Query{}

	engine.configureQueryRouting(query, &dto.DataSourceInfo{Vendor: "gcp", Region: "asia-northeast1"})

	require.Equal(t, "project", query.DefaultProjectID)
	require.Equal(t, "clinic_data_proxy_asia_northeast1", query.DefaultDatasetID)
	require.Equal(t, "asia-northeast1", query.Location)
}

func TestBigQueryQueryRoutingAllowsConfiguredDefaultDatasetWithoutRegion(t *testing.T) {
	engine := &BigQueryEngine{
		projectID: "project",
		dataset:   "clinic_data_proxy",
	}
	query := &bigquery.Query{}

	engine.configureQueryRouting(query, nil)

	require.Equal(t, "project", query.DefaultProjectID)
	require.Equal(t, "clinic_data_proxy", query.DefaultDatasetID)
	require.Empty(t, query.Location)
}
