Files
query-orchestration/internal/database/repository/client_test.go
T

108 lines
2.5 KiB
Go
Raw Normal View History

2025-01-21 18:24:14 +00:00
package repository_test
import (
"context"
"os"
"path"
2025-03-05 12:05:46 +00:00
"testing"
2025-01-21 18:24:14 +00:00
"queryorchestration/internal/database/repository"
"queryorchestration/internal/serviceconfig"
2025-01-21 18:24:14 +00:00
"queryorchestration/internal/test"
"github.com/stretchr/testify/assert"
2025-03-19 11:54:14 +00:00
"github.com/stretchr/testify/require"
2025-01-21 18:24:14 +00:00
)
func TestClient(t *testing.T) {
if testing.Short() {
t.Skip("Skipping long test in short mode")
}
2025-01-21 18:24:14 +00:00
ctx := context.Background()
cfg := &serviceconfig.BaseConfig{}
test.SetCfgProvider(t, cfg)
cfg.SetBasePath(path.Join(os.Getenv("PWD"), "../../.."))
_, cleanup := test.CreateDB(t, ctx, &test.CreateDatabaseConfig{
Cfg: cfg,
RunMigrations: true,
})
2025-01-21 18:24:14 +00:00
defer cleanup()
queries := cfg.GetDBQueries()
2025-01-21 18:24:14 +00:00
name := "example_name"
externalId := "EXAMPLE"
id, err := queries.CreateClient(ctx, &repository.CreateClientParams{
Name: name,
Externalid: externalId,
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-21 18:24:14 +00:00
assert.NotEmpty(t, id)
client, err := queries.GetClient(ctx, id)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.EqualExportedValues(t, &repository.Fullclient{
ID: id,
Name: name,
Externalid: externalId,
Cansync: false,
2025-01-21 18:24:14 +00:00
}, client)
externalClient, err := queries.GetClientByExternalId(ctx, externalId)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.EqualExportedValues(t, client, externalClient)
name = "updated_client"
2025-01-21 18:24:14 +00:00
err = queries.UpdateClient(ctx, &repository.UpdateClientParams{
ID: id,
Name: name,
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
client, err = queries.GetClient(ctx, id)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.EqualExportedValues(t, &repository.Fullclient{
ID: id,
Name: name,
Externalid: externalId,
Cansync: false,
}, client)
err = queries.AddClientCanSync(ctx, &repository.AddClientCanSyncParams{
Clientid: id,
Cansync: true,
2025-01-21 18:24:14 +00:00
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-21 18:24:14 +00:00
client, err = queries.GetClient(ctx, id)
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
assert.EqualExportedValues(t, &repository.Fullclient{
ID: id,
Name: name,
Externalid: externalId,
Cansync: true,
2025-01-21 18:24:14 +00:00
}, client)
_, err = queries.CreateClient(ctx, &repository.CreateClientParams{
Name: name,
Externalid: externalId,
})
assert.Error(t, err)
_, err = queries.CreateClient(ctx, &repository.CreateClientParams{
Name: name,
Externalid: "definitely different",
})
assert.Error(t, err)
_, err = queries.CreateClient(ctx, &repository.CreateClientParams{
Name: "100 different",
Externalid: externalId,
})
assert.Error(t, err)
_, err = queries.CreateClient(ctx, &repository.CreateClientParams{
Name: "sameid",
Externalid: "sameid",
})
2025-03-19 11:54:14 +00:00
require.NoError(t, err)
2025-01-21 18:24:14 +00:00
}