Files

121 lines
3.6 KiB
Go
Raw Permalink Normal View History

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))
}