package repository_test import ( "context" "testing" "queryorchestration/internal/database/repository" "queryorchestration/internal/serviceconfig" "queryorchestration/internal/test" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestClient(t *testing.T) { t.Parallel() if testing.Short() { t.SkipNow() } ctx := context.Background() cfg := &serviceconfig.BaseConfig{} net := test.DepNetwork.Get(t, ctx) _ = test.CreateDB(t, ctx, cfg, net, &test.CreateDatabaseConfig{}) queries := cfg.GetDBQueries() name := "example_name" clientId := "EXAMPLE" err := queries.CreateClient(ctx, &repository.CreateClientParams{ Name: name, ID: clientId, }) require.NoError(t, err) client, err := queries.GetClient(ctx, clientId) require.NoError(t, err) assert.EqualExportedValues(t, &repository.Fullclient{ ID: clientId, Name: name, Cansync: false, }, client) name = "updated_client" err = queries.UpdateClient(ctx, &repository.UpdateClientParams{ ID: clientId, Name: name, }) require.NoError(t, err) client, err = queries.GetClient(ctx, clientId) require.NoError(t, err) assert.EqualExportedValues(t, &repository.Fullclient{ ID: clientId, Name: name, Cansync: false, }, client) err = queries.AddClientCanSync(ctx, &repository.AddClientCanSyncParams{ Clientid: clientId, Cansync: true, }) require.NoError(t, err) client, err = queries.GetClient(ctx, clientId) require.NoError(t, err) assert.EqualExportedValues(t, &repository.Fullclient{ ID: clientId, Name: name, Cansync: true, }, client) err = queries.CreateClient(ctx, &repository.CreateClientParams{ Name: name, ID: clientId, }) assert.Error(t, err) err = queries.CreateClient(ctx, &repository.CreateClientParams{ Name: name, ID: "definitely different", }) assert.Error(t, err) err = queries.CreateClient(ctx, &repository.CreateClientParams{ Name: "100 different", ID: clientId, }) assert.Error(t, err) err = queries.CreateClient(ctx, &repository.CreateClientParams{ Name: "sameid", ID: "sameid", }) require.NoError(t, err) }