package case_driver

import (
	"testing"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/dataflow-service-e2e/cases"
	"github.com/tidbcloud/dataflow-service-e2e/cases/essential/backup"
	exportcase "github.com/tidbcloud/dataflow-service-e2e/cases/essential/export"
	"github.com/tidbcloud/dataflow-service-e2e/internal/config"
	. "github.com/tidbcloud/dataflow-service-e2e/internal/model"
)

func TestEssentialRegistryAPIModeValidation(t *testing.T) {
	exportCase := exportcase.NewExportLifecycleSmokeCase(AWS)
	pitrCase := backup.NewPiTRRestoreSmokeCase(AWS)
	require.NoError(t, ValidateEssentialCaseAPIMode(exportCase, config.ApiModeOpenAPI))
	require.Error(t, ValidateEssentialCaseAPIMode(pitrCase, config.ApiModeOpenAPI))
	require.Error(t, ValidateEssentialAPIMode("unsupported"))
	// API metadata remains a case tag for compatibility with the driver.
	require.Equal(t, commonAPIModesBoth, exportCase.Tags()[cases.TagKeyAPIModes])
}

const commonAPIModesBoth = "consoleapi,openapi"
