From e696fa3ba534f3766f50b2e9789d537316017bc4 Mon Sep 17 00:00:00 2001 From: Mike Fridman Date: Tue, 10 Oct 2023 08:59:05 -0400 Subject: [PATCH] feat(experimental): move Provider to an internal package --- provider.go => internal/provider/provider.go | 6 +++--- .../provider/provider_options.go | 2 +- .../provider/provider_options_test.go | 21 +++++++++---------- 3 files changed, 14 insertions(+), 15 deletions(-) rename provider.go => internal/provider/provider.go (97%) rename provider_options.go => internal/provider/provider_options.go (98%) rename provider_options_test.go => internal/provider/provider_options_test.go (76%) diff --git a/provider.go b/internal/provider/provider.go similarity index 97% rename from provider.go rename to internal/provider/provider.go index c12d4ea8b..c8d899511 100644 --- a/provider.go +++ b/internal/provider/provider.go @@ -1,4 +1,4 @@ -package goose +package provider import ( "context" @@ -25,7 +25,7 @@ import ( // Unless otherwise specified, all methods on Provider are safe for concurrent use. // // Experimental: This API is experimental and may change in the future. -func NewProvider(dialect Dialect, db *sql.DB, fsys fs.FS, opts ...ProviderOption) (*Provider, error) { +func NewProvider(dialect string, db *sql.DB, fsys fs.FS, opts ...ProviderOption) (*Provider, error) { if db == nil { return nil, errors.New("db must not be nil") } @@ -45,7 +45,7 @@ func NewProvider(dialect Dialect, db *sql.DB, fsys fs.FS, opts ...ProviderOption if cfg.tableName == "" { cfg.tableName = defaultTablename } - store, err := sqladapter.NewStore(string(dialect), cfg.tableName) + store, err := sqladapter.NewStore(dialect, cfg.tableName) if err != nil { return nil, err } diff --git a/provider_options.go b/internal/provider/provider_options.go similarity index 98% rename from provider_options.go rename to internal/provider/provider_options.go index 2370486f9..bf7b9f9b2 100644 --- a/provider_options.go +++ b/internal/provider/provider_options.go @@ -1,4 +1,4 @@ -package goose +package provider import ( "errors" diff --git a/provider_options_test.go b/internal/provider/provider_options_test.go similarity index 76% rename from provider_options_test.go rename to internal/provider/provider_options_test.go index 629c6efaa..341735401 100644 --- a/provider_options_test.go +++ b/internal/provider/provider_options_test.go @@ -1,4 +1,4 @@ -package goose_test +package provider import ( "database/sql" @@ -7,7 +7,6 @@ import ( "testing" "testing/fstest" - "github.com/pressly/goose/v3" "github.com/pressly/goose/v3/internal/check" ) @@ -18,35 +17,35 @@ func TestNewProvider(t *testing.T) { fsys := newFsys() t.Run("invalid", func(t *testing.T) { // Empty dialect not allowed - _, err = goose.NewProvider("", db, fsys) + _, err = NewProvider("", db, fsys) check.HasError(t, err) // Invalid dialect not allowed - _, err = goose.NewProvider("unknown-dialect", db, fsys) + _, err = NewProvider("unknown-dialect", db, fsys) check.HasError(t, err) // Nil db not allowed - _, err = goose.NewProvider("sqlite3", nil, fsys) + _, err = NewProvider("sqlite3", nil, fsys) check.HasError(t, err) // Nil fsys not allowed - _, err = goose.NewProvider("sqlite3", db, nil) + _, err = NewProvider("sqlite3", db, nil) check.HasError(t, err) // Duplicate table name not allowed - _, err = goose.NewProvider("sqlite3", db, fsys, goose.WithTableName("foo"), goose.WithTableName("bar")) + _, err = NewProvider("sqlite3", db, fsys, WithTableName("foo"), WithTableName("bar")) check.HasError(t, err) check.Equal(t, `table already set to "foo"`, err.Error()) // Empty table name not allowed - _, err = goose.NewProvider("sqlite3", db, fsys, goose.WithTableName("")) + _, err = NewProvider("sqlite3", db, fsys, WithTableName("")) check.HasError(t, err) check.Equal(t, "table must not be empty", err.Error()) }) t.Run("valid", func(t *testing.T) { // Valid dialect, db, and fsys allowed - _, err = goose.NewProvider("sqlite3", db, fsys) + _, err = NewProvider("sqlite3", db, fsys) check.NoError(t, err) // Valid dialect, db, fsys, and table name allowed - _, err = goose.NewProvider("sqlite3", db, fsys, goose.WithTableName("foo")) + _, err = NewProvider("sqlite3", db, fsys, WithTableName("foo")) check.NoError(t, err) // Valid dialect, db, fsys, and verbose allowed - _, err = goose.NewProvider("sqlite3", db, fsys, goose.WithVerbose()) + _, err = NewProvider("sqlite3", db, fsys, WithVerbose()) check.NoError(t, err) }) }