refactor: update project structure (#42)

Reviewed-on: twhelp/corev3#42
This commit is contained in:
Dawid Wysokiński 2024-01-14 10:04:17 +00:00
parent 535b1038d4
commit 85b3f90447
48 changed files with 58 additions and 58 deletions

View File

@ -5,7 +5,7 @@ import (
"log/slog" "log/slog"
"strings" "strings"
"gitea.dwysokinski.me/twhelp/corev3/internal/migrations" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/migrations"
"github.com/uptrace/bun/migrate" "github.com/uptrace/bun/migrate"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
) )

View File

@ -6,11 +6,11 @@ import (
"os" "os"
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"github.com/ory/dockertest/v3" "github.com/ory/dockertest/v3"
) )
var postgres *adaptertest.Postgres var postgres *buntest.Postgres
func TestMain(m *testing.M) { func TestMain(m *testing.M) {
os.Exit(testMainWrapper(m)) os.Exit(testMainWrapper(m))
@ -30,7 +30,7 @@ func testMainWrapper(m *testing.M) int {
return 1 return 1
} }
postgres, err = adaptertest.NewPostgres(pool) postgres, err = buntest.NewPostgres(pool)
if err != nil { if err != nil {
log.Println("couldn't construct adaptertest.Postgres:", err) log.Println("couldn't construct adaptertest.Postgres:", err)
return 1 return 1

View File

@ -6,7 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
) )

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestEnnoblementBunRepository_Postgres(t *testing.T) { func TestEnnoblementBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestEnnoblementBunRepository_Postgres(t *testing.T) {
testEnnoblementRepository(t, func(t *testing.T) repositories { testEnnoblementRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestEnnoblementBunRepository_SQLite(t *testing.T) {
testEnnoblementRepository(t, func(t *testing.T) repositories { testEnnoblementRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -7,7 +7,7 @@ import (
"fmt" "fmt"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
"github.com/uptrace/bun/dialect" "github.com/uptrace/bun/dialect"

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestPlayerBunRepository_Postgres(t *testing.T) { func TestPlayerBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestPlayerBunRepository_Postgres(t *testing.T) {
testPlayerRepository(t, func(t *testing.T) repositories { testPlayerRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestPlayerBunRepository_SQLite(t *testing.T) {
testPlayerRepository(t, func(t *testing.T) repositories { testPlayerRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -7,7 +7,7 @@ import (
"fmt" "fmt"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
"github.com/uptrace/bun/dialect" "github.com/uptrace/bun/dialect"

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestServerBunRepository_Postgres(t *testing.T) { func TestServerBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestServerBunRepository_Postgres(t *testing.T) {
testServerRepository(t, func(t *testing.T) repositories { testServerRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestServerBunRepository_SQLite(t *testing.T) {
testServerRepository(t, func(t *testing.T) repositories { testServerRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -7,7 +7,7 @@ import (
"fmt" "fmt"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
"github.com/uptrace/bun/dialect" "github.com/uptrace/bun/dialect"

View File

@ -7,7 +7,7 @@ import (
"fmt" "fmt"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
) )

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestTribeChangeBunRepository_Postgres(t *testing.T) { func TestTribeChangeBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestTribeChangeBunRepository_Postgres(t *testing.T) {
testTribeChangeRepository(t, func(t *testing.T) repositories { testTribeChangeRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestTribeChangeBunRepository_SQLite(t *testing.T) {
testTribeChangeRepository(t, func(t *testing.T) repositories { testTribeChangeRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestTribeBunRepository_Postgres(t *testing.T) { func TestTribeBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestTribeBunRepository_Postgres(t *testing.T) {
testTribeRepository(t, func(t *testing.T) repositories { testTribeRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestTribeBunRepository_SQLite(t *testing.T) {
testTribeRepository(t, func(t *testing.T) repositories { testTribeRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -6,7 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
) )

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestVersionBunRepository_Postgres(t *testing.T) { func TestVersionBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestVersionBunRepository_Postgres(t *testing.T) {
testVersionRepository(t, func(t *testing.T) repositories { testVersionRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestVersionBunRepository_SQLite(t *testing.T) {
testVersionRepository(t, func(t *testing.T) repositories { testVersionRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -7,7 +7,7 @@ import (
"fmt" "fmt"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
"github.com/uptrace/bun/dialect" "github.com/uptrace/bun/dialect"

View File

@ -3,7 +3,7 @@ package adapter_test
import ( import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
) )
func TestVillageBunRepository_Postgres(t *testing.T) { func TestVillageBunRepository_Postgres(t *testing.T) {
@ -15,7 +15,7 @@ func TestVillageBunRepository_Postgres(t *testing.T) {
testVillageRepository(t, func(t *testing.T) repositories { testVillageRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, postgres.NewBunDB(t)) return newBunDBRepositories(t, postgres.NewDB(t))
}) })
} }
@ -24,6 +24,6 @@ func TestVillageBunRepository_SQLite(t *testing.T) {
testVillageRepository(t, func(t *testing.T) repositories { testVillageRepository(t, func(t *testing.T) repositories {
t.Helper() t.Helper()
return newBunDBRepositories(t, adaptertest.NewBunDBSQLite(t)) return newBunDBRepositories(t, buntest.NewSQLiteDB(t))
}) })
} }

View File

@ -6,7 +6,7 @@ import (
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter" "gitea.dwysokinski.me/twhelp/corev3/internal/adapter"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"github.com/uptrace/bun" "github.com/uptrace/bun"
) )
@ -67,7 +67,7 @@ type repositories struct {
func newBunDBRepositories(tb testing.TB, bunDB *bun.DB) repositories { func newBunDBRepositories(tb testing.TB, bunDB *bun.DB) repositories {
tb.Helper() tb.Helper()
adaptertest.NewFixture(bunDB).Load(tb, context.Background(), os.DirFS("testdata"), "fixture.yml") buntest.NewFixture(bunDB).Load(tb, context.Background(), os.DirFS("testdata"), "fixture.yml")
return repositories{ return repositories{
version: adapter.NewVersionBunRepository(bunDB), version: adapter.NewVersionBunRepository(bunDB),

View File

@ -1,10 +1,10 @@
package adaptertest package buntest
import ( import (
"context" "context"
"io/fs" "io/fs"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/internal/bunmodel" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/bunmodel"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"github.com/uptrace/bun" "github.com/uptrace/bun"
"github.com/uptrace/bun/dbfixture" "github.com/uptrace/bun/dbfixture"

View File

@ -1,4 +1,4 @@
package adaptertest package buntest
import ( import (
"database/sql" "database/sql"
@ -127,13 +127,13 @@ const (
postgresPingBackOffMaxElapsedTime = 30 * time.Second postgresPingBackOffMaxElapsedTime = 30 * time.Second
) )
// NewBunDB initializes a new instance of *bun.DB, which is ready for use (all required migrations are applied). // NewDB initializes a new instance of *bun.DB, which is ready for use (all required migrations are applied).
// This method guarantees data separation through PostgresSQL schemas // This method guarantees data separation through PostgresSQL schemas
// (https://www.postgresql.org/docs/current/ddl-schemas.html) // (https://www.postgresql.org/docs/current/ddl-schemas.html)
// and it is safe to call Postgres.NewBunDB multiple times. // and it is safe to call postgres.NewDB multiple times.
// //
// It fails if Postgres hasn't been properly initialized (via NewPostgres). // It fails if Postgres hasn't been properly initialized (via NewPostgres).
func (p *Postgres) NewBunDB(tb TestingTB) *bun.DB { func (p *Postgres) NewDB(tb TestingTB) *bun.DB {
tb.Helper() tb.Helper()
require.NotNil(tb, p, "postgres resource not property initialized") require.NotNil(tb, p, "postgres resource not property initialized")

View File

@ -1,4 +1,4 @@
package adaptertest package buntest
import ( import (
"database/sql" "database/sql"
@ -9,9 +9,9 @@ import (
"github.com/uptrace/bun/driver/sqliteshim" "github.com/uptrace/bun/driver/sqliteshim"
) )
// NewBunDBSQLite initializes a new instance of *bun.DB, which is ready for use (all required migrations are applied). // NewSQLiteDB initializes a new instance of *bun.DB, which is ready for use (all required migrations are applied).
// Data is stored in memory (https://www.sqlite.org/inmemorydb.html). // Data is stored in memory (https://www.sqlite.org/inmemorydb.html).
func NewBunDBSQLite(tb TestingTB) *bun.DB { func NewSQLiteDB(tb TestingTB) *bun.DB {
tb.Helper() tb.Helper()
sqlDB, err := sql.Open(sqliteshim.ShimName, "file::memory:") sqlDB, err := sql.Open(sqliteshim.ShimName, "file::memory:")

View File

@ -1,4 +1,4 @@
package adaptertest package buntest
// TestingTB is a subset of the API provided by both *testing.T and *testing.B. // TestingTB is a subset of the API provided by both *testing.T and *testing.B.
type TestingTB interface { type TestingTB interface {

View File

@ -1,4 +1,4 @@
package adaptertest package buntest
import ( import (
"context" "context"
@ -8,7 +8,7 @@ import (
"os" "os"
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/migrations" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/migrations"
"github.com/cenkalti/backoff/v4" "github.com/cenkalti/backoff/v4"
"github.com/ory/dockertest/v3" "github.com/ory/dockertest/v3"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"

View File

@ -10,11 +10,11 @@ import (
var migrations = migrate.NewMigrations() var migrations = migrate.NewMigrations()
func NewMigrator(db *bun.DB, opts ...migrate.MigratorOption) *migrate.Migrator { func NewMigrator(db *bun.DB, opts ...migrate.MigratorOption) *migrate.Migrator {
return migrate.NewMigrator( // db isn't required in all cases (e.g. for creating migrations)
db.WithNamedArg("ID_COL", autoincrementIDColumn(db)), if db != nil {
migrations, db = db.WithNamedArg("ID_COL", autoincrementIDColumn(db))
opts..., }
) return migrate.NewMigrator(db, migrations, opts...)
} }
type hasFeaturer interface { type hasFeaturer interface {

View File

@ -48,7 +48,7 @@ func TestDataSync(t *testing.T) {
defer stop() defer stop()
// bun // bun
db := postgres.NewBunDB(t) db := postgres.NewDB(t)
// watermill // watermill
marshaler := watermillmsg.JSONMarshaler{NewUUID: watermill.NewUUID} marshaler := watermillmsg.JSONMarshaler{NewUUID: watermill.NewUUID}

View File

@ -16,8 +16,8 @@ import (
"time" "time"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter" "gitea.dwysokinski.me/twhelp/corev3/internal/adapter"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest"
"gitea.dwysokinski.me/twhelp/corev3/internal/app" "gitea.dwysokinski.me/twhelp/corev3/internal/app"
"gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"gitea.dwysokinski.me/twhelp/corev3/internal/domain" "gitea.dwysokinski.me/twhelp/corev3/internal/domain"
"gitea.dwysokinski.me/twhelp/corev3/internal/port" "gitea.dwysokinski.me/twhelp/corev3/internal/port"
"gitea.dwysokinski.me/twhelp/corev3/internal/tw" "gitea.dwysokinski.me/twhelp/corev3/internal/tw"
@ -48,8 +48,8 @@ func TestEnnoblementSync(t *testing.T) {
defer stop() defer stop()
// bun // bun
db := postgres.NewBunDB(t) db := postgres.NewDB(t)
adaptertest.NewFixture(db).Load(t, ctx, os.DirFS("./testdata/ennoblementsync"), "fixture.yml") buntest.NewFixture(db).Load(t, ctx, os.DirFS("./testdata/ennoblementsync"), "fixture.yml")
// watermill // watermill
marshaler := watermillmsg.JSONMarshaler{NewUUID: watermill.NewUUID} marshaler := watermillmsg.JSONMarshaler{NewUUID: watermill.NewUUID}

View File

@ -6,13 +6,13 @@ import (
"os" "os"
"testing" "testing"
"gitea.dwysokinski.me/twhelp/corev3/internal/adapter/adaptertest" "gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"gitea.dwysokinski.me/twhelp/corev3/internal/watermill/watermillamqptest" "gitea.dwysokinski.me/twhelp/corev3/internal/watermill/watermillamqptest"
"github.com/ory/dockertest/v3" "github.com/ory/dockertest/v3"
) )
var ( var (
postgres *adaptertest.Postgres postgres *buntest.Postgres
rabbitMQ *watermillamqptest.RabbitMQ rabbitMQ *watermillamqptest.RabbitMQ
) )
@ -34,7 +34,7 @@ func testMainWrapper(m *testing.M) int {
return 1 return 1
} }
postgres, err = adaptertest.NewPostgres(pool, adaptertest.WithPostgresTTL(180)) postgres, err = buntest.NewPostgres(pool, buntest.WithPostgresTTL(180))
if err != nil { if err != nil {
log.Println("couldn't construct adaptertest.Postgres:", err) log.Println("couldn't construct adaptertest.Postgres:", err)
return 1 return 1