Skip to content

Commit

Permalink
feat(experimental): move Provider to an internal package
Browse files Browse the repository at this point in the history
  • Loading branch information
mfridman committed Oct 10, 2023
1 parent c590380 commit e696fa3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 15 deletions.
6 changes: 3 additions & 3 deletions provider.go → internal/provider/provider.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package goose
package provider

import (
"context"
Expand All @@ -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")
}
Expand All @@ -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
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package goose
package provider

import (
"errors"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package goose_test
package provider

import (
"database/sql"
Expand All @@ -7,7 +7,6 @@ import (
"testing"
"testing/fstest"

"github.com/pressly/goose/v3"
"github.com/pressly/goose/v3/internal/check"
)

Expand All @@ -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)
})
}
Expand Down

0 comments on commit e696fa3

Please sign in to comment.