Files
query-orchestration/internal/serviceconfig/database/transaction_test.go
T
Michael McGuinness 61d12bf8df Merged in feature/checkbox (pull request #145)
Checkbox Primary Edge Cases

* hascheckboxlogic

* gen

* preppinggen

* exploringcheckbox

* removeunselected

* tests

* failingtest

* failintests

* nomockqueryapi

* db

* name

* nocontainer

* deleterow

* cnc

* extradocsandupdatetextracts

* moretables

* appndedtables

* baseversion
2025-05-20 12:47:22 +00:00

60 lines
1.5 KiB
Go

package database_test
import (
"context"
"errors"
"testing"
"queryorchestration/internal/database/repository"
"queryorchestration/internal/serviceconfig"
"queryorchestration/internal/test"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestExecuteTransaction(t *testing.T) {
t.Run("create client", func(t *testing.T) {
t.Parallel()
cfg := &serviceconfig.BaseConfig{}
net := test.GetNetwork(t)
test.CreateDB(t, cfg, net, &test.CreateDatabaseConfig{})
err := cfg.ExecuteDBTransaction(t.Context(), func(ctx context.Context, q *repository.Queries) error {
err := q.CreateClient(ctx, &repository.CreateClientParams{
Name: "example_client",
Clientid: "ID",
})
require.NoError(t, err)
return nil
})
require.NoError(t, err)
client, err := cfg.GetDBQueries().GetClient(t.Context(), "ID")
require.NoError(t, err)
assert.Equal(t, "example_client", client.Name)
assert.Equal(t, "ID", client.Clientid)
})
t.Run("error in transaction", func(t *testing.T) {
t.Parallel()
cfg := &serviceconfig.BaseConfig{}
net := test.GetNetwork(t)
test.CreateDB(t, cfg, net, &test.CreateDatabaseConfig{})
err := cfg.ExecuteDBTransaction(t.Context(), func(ctx context.Context, q *repository.Queries) error {
err := q.CreateClient(ctx, &repository.CreateClientParams{
Name: "example_client",
Clientid: "ID",
})
require.NoError(t, err)
return errors.New("error")
})
require.Error(t, err)
_, err = cfg.GetDBQueries().GetClient(t.Context(), "ID")
require.Error(t, err)
})
}