package api import ( "testing" "queryorchestration/internal/database/repository" "queryorchestration/internal/serviceconfig" "queryorchestration/internal/test" "github.com/stretchr/testify/require" ) func TestEnsureLocalDevClientCreatesConfiguredClient(t *testing.T) { if testing.Short() { t.SkipNow() } t.Setenv("DISABLE_AUTH", "true") t.Setenv(localDevClientIDEnv, "mathisonprojects-local") t.Setenv(localDevClientNameEnv, "Mathison Projects Local") cfg := &BaseConfig{} _ = serviceconfig.InitializeConfig(cfg) test.CreateDB(t, cfg) err := ensureLocalDevClient(t.Context(), cfg) require.NoError(t, err) dbClient, err := cfg.GetDBQueries().GetClient(t.Context(), "mathisonprojects-local") require.NoError(t, err) require.Equal(t, "Mathison Projects Local", dbClient.Name) rootFolder, err := cfg.GetDBQueries().GetFolderByPath(t.Context(), &repository.GetFolderByPathParams{ Clientid: "mathisonprojects-local", Path: "/", }) require.NoError(t, err) require.Equal(t, "/", rootFolder.Path) require.NoError(t, ensureLocalDevClient(t.Context(), cfg)) } func TestEnsureLocalDevClientSkipsWhenUnconfigured(t *testing.T) { t.Setenv("DISABLE_AUTH", "true") t.Setenv(localDevClientIDEnv, "") cfg := &BaseConfig{} _ = serviceconfig.InitializeConfig(cfg) require.NoError(t, ensureLocalDevClient(t.Context(), cfg)) } func TestEnsureLocalDevEula(t *testing.T) { if testing.Short() { t.SkipNow() } t.Setenv("DISABLE_AUTH", "true") t.Setenv(localDevEulaVersionEnv, "local-2026-05-07") t.Setenv(localDevEulaTitleEnv, "AArete DoczyAI Terms of Use") t.Setenv(localDevEulaAutoAcceptSubjectEnv, "jacob+2@mathisonprojects.com") t.Setenv(localDevEulaAutoAcceptEmailEnv, "jacob+2@mathisonprojects.com") cfg := &BaseConfig{} _ = serviceconfig.InitializeConfig(cfg) test.CreateDB(t, cfg) require.NoError(t, ensureLocalDevEula(t.Context(), cfg)) current, err := cfg.GetDBQueries().GetCurrentEulaVersion(t.Context()) require.NoError(t, err) require.Equal(t, "local-2026-05-07", current.Version) require.Equal(t, "AArete DoczyAI Terms of Use", current.Title) agreement, err := cfg.GetDBQueries().GetUserCurrentEulaAgreement(t.Context(), "jacob+2@mathisonprojects.com") require.NoError(t, err) require.Equal(t, current.ID, agreement.Eulaversionid) require.NoError(t, ensureLocalDevEula(t.Context(), cfg)) } func TestEnsureLocalDevEulaUsesDefaults(t *testing.T) { if testing.Short() { t.SkipNow() } t.Setenv("DISABLE_AUTH", "true") t.Setenv(localDevEulaVersionEnv, "local-defaults") t.Setenv(localDevEulaTitleEnv, "") t.Setenv(localDevEulaAutoAcceptSubjectEnv, "local-subject") t.Setenv(localDevEulaAutoAcceptEmailEnv, "") cfg := &BaseConfig{} _ = serviceconfig.InitializeConfig(cfg) test.CreateDB(t, cfg) require.NoError(t, ensureLocalDevEula(t.Context(), cfg)) current, err := cfg.GetDBQueries().GetCurrentEulaVersion(t.Context()) require.NoError(t, err) require.Equal(t, "local-defaults", current.Version) require.Equal(t, "AArete DoczyAI Terms of Use", current.Title) agreement, err := cfg.GetDBQueries().GetUserCurrentEulaAgreement(t.Context(), "local-subject") require.NoError(t, err) require.Equal(t, "local-subject", agreement.Useremail) } func TestEnsureLocalDevEulaSkipsWhenDisabledOrUnconfigured(t *testing.T) { cfg := &BaseConfig{} _ = serviceconfig.InitializeConfig(cfg) t.Setenv("DISABLE_AUTH", "false") t.Setenv(localDevEulaVersionEnv, "local-disabled") require.NoError(t, ensureLocalDevEula(t.Context(), cfg)) t.Setenv("DISABLE_AUTH", "true") t.Setenv(localDevEulaVersionEnv, "") require.NoError(t, ensureLocalDevEula(t.Context(), cfg)) }