|
|
|
|
@ -12,14 +12,14 @@ import (
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
func TestDb_Update(t *testing.T) {
|
|
|
|
|
// intentionally not run with t.Parallel so we don't need to use DoTx for the Update tests
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -45,7 +45,7 @@ func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Name, user.Name)
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -89,7 +89,7 @@ func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
})
|
|
|
|
|
t.Run("nil-tx", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: nil}
|
|
|
|
|
w := Db{Tx: nil}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -100,7 +100,7 @@ func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
assert.Equal("update tx is nil", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-wrapper-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -131,7 +131,7 @@ func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
assert.Equal("error wrapper is nil for WithWrapper", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-metadata-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -160,14 +160,14 @@ func TestGormReadWriter_Update(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
func TestDb_Create(t *testing.T) {
|
|
|
|
|
// intentionally not run with t.Parallel so we don't need to use DoTx for the Create tests
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -187,7 +187,7 @@ func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -216,7 +216,7 @@ func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-wrapper-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -238,7 +238,7 @@ func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
assert.Equal("error wrapper is nil for WithWrapper", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-metadata-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -256,7 +256,7 @@ func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
assert.Equal("error no metadata for WithOplog", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("nil-tx", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: nil}
|
|
|
|
|
w := Db{Tx: nil}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -268,14 +268,14 @@ func TestGormReadWriter_Create(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_LookupByName(t *testing.T) {
|
|
|
|
|
func TestDb_LookupByName(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -293,7 +293,7 @@ func TestGormReadWriter_LookupByName(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("tx-nil,", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{}
|
|
|
|
|
w := Db{}
|
|
|
|
|
foundUser, err := db_test.NewTestUser()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
foundUser.Name = "fn-name"
|
|
|
|
|
@ -302,7 +302,7 @@ func TestGormReadWriter_LookupByName(t *testing.T) {
|
|
|
|
|
assert.Equal("error tx nil for lookup by name", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-friendly-name-set", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
foundUser, err := db_test.NewTestUser()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
err = w.LookupByName(context.Background(), foundUser)
|
|
|
|
|
@ -310,7 +310,7 @@ func TestGormReadWriter_LookupByName(t *testing.T) {
|
|
|
|
|
assert.Equal("error name empty string for lookup by name", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("not-found", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -323,14 +323,14 @@ func TestGormReadWriter_LookupByName(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_LookupByPublicId(t *testing.T) {
|
|
|
|
|
func TestDb_LookupByPublicId(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -348,7 +348,7 @@ func TestGormReadWriter_LookupByPublicId(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("tx-nil,", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{}
|
|
|
|
|
w := Db{}
|
|
|
|
|
foundUser, err := db_test.NewTestUser()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
err = w.LookupByPublicId(context.Background(), foundUser)
|
|
|
|
|
@ -356,7 +356,7 @@ func TestGormReadWriter_LookupByPublicId(t *testing.T) {
|
|
|
|
|
assert.Equal("error tx nil for lookup by public id", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-public-id-set", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
foundUser, err := db_test.NewTestUser()
|
|
|
|
|
foundUser.PublicId = ""
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
@ -365,7 +365,7 @@ func TestGormReadWriter_LookupByPublicId(t *testing.T) {
|
|
|
|
|
assert.Equal("error public id empty string for lookup by public id", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("not-found", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -378,14 +378,14 @@ func TestGormReadWriter_LookupByPublicId(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_LookupWhere(t *testing.T) {
|
|
|
|
|
func TestDb_LookupWhere(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -401,14 +401,14 @@ func TestGormReadWriter_LookupWhere(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUser.Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("tx-nil,", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{}
|
|
|
|
|
w := Db{}
|
|
|
|
|
var foundUser db_test.TestUser
|
|
|
|
|
err := w.LookupWhere(context.Background(), &foundUser, "public_id = ?", 1)
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
assert.Equal("error tx nil for lookup by", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("not-found", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -418,7 +418,7 @@ func TestGormReadWriter_LookupWhere(t *testing.T) {
|
|
|
|
|
assert.Equal(ErrRecordNotFound, err)
|
|
|
|
|
})
|
|
|
|
|
t.Run("bad-where", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -428,14 +428,14 @@ func TestGormReadWriter_LookupWhere(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_SearchWhere(t *testing.T) {
|
|
|
|
|
func TestDb_SearchWhere(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -451,14 +451,14 @@ func TestGormReadWriter_SearchWhere(t *testing.T) {
|
|
|
|
|
assert.Equal(foundUsers[0].Id, user.Id)
|
|
|
|
|
})
|
|
|
|
|
t.Run("tx-nil,", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{}
|
|
|
|
|
w := Db{}
|
|
|
|
|
var foundUsers []db_test.TestUser
|
|
|
|
|
err := w.SearchWhere(context.Background(), &foundUsers, "public_id = ?", 1)
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
assert.Equal("error tx nil for search by", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("not-found", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -468,7 +468,7 @@ func TestGormReadWriter_SearchWhere(t *testing.T) {
|
|
|
|
|
assert.Equal(0, len(foundUsers))
|
|
|
|
|
})
|
|
|
|
|
t.Run("bad-where", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
|
|
|
|
|
@ -478,14 +478,14 @@ func TestGormReadWriter_SearchWhere(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_DB(t *testing.T) {
|
|
|
|
|
func TestDb_DB(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("valid", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
d, err := w.DB()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
assert.True(d != nil)
|
|
|
|
|
@ -493,7 +493,7 @@ func TestGormReadWriter_DB(t *testing.T) {
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
})
|
|
|
|
|
t.Run("nil-tx", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: nil}
|
|
|
|
|
w := Db{Tx: nil}
|
|
|
|
|
d, err := w.DB()
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
assert.True(d == nil)
|
|
|
|
|
@ -501,7 +501,7 @@ func TestGormReadWriter_DB(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
func TestDb_DoTx(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
@ -509,7 +509,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
defer db.Close()
|
|
|
|
|
|
|
|
|
|
t.Run("valid-with-10-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 10, ExpBackoff{},
|
|
|
|
|
func(Writer) error {
|
|
|
|
|
@ -524,7 +524,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal(9, attempts) // attempted 1 + 8 retries
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-with-1-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 1, ExpBackoff{},
|
|
|
|
|
func(Writer) error {
|
|
|
|
|
@ -539,7 +539,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal(2, attempts) // attempted 1 + 8 retries
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-with-2-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 3, ExpBackoff{},
|
|
|
|
|
func(Writer) error {
|
|
|
|
|
@ -554,7 +554,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal(3, attempts) // attempted 1 + 8 retries
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-with-4-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 4, ExpBackoff{},
|
|
|
|
|
func(Writer) error {
|
|
|
|
|
@ -569,7 +569,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal(4, attempts) // attempted 1 + 8 retries
|
|
|
|
|
})
|
|
|
|
|
t.Run("zero-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 0, ExpBackoff{}, func(Writer) error { attempts += 1; return nil })
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
@ -577,7 +577,7 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal(1, attempts)
|
|
|
|
|
})
|
|
|
|
|
t.Run("nil-tx", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{nil}
|
|
|
|
|
w := &Db{nil}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 1, ExpBackoff{}, func(Writer) error { attempts += 1; return nil })
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
@ -585,14 +585,14 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
assert.Equal("do tx is nil", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("not-a-retry-err", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
got, err := w.DoTx(context.Background(), 1, ExpBackoff{}, func(Writer) error { return errors.New("not a retry error") })
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
assert.Equal(RetryInfo{}, got)
|
|
|
|
|
assert.True(err != oplog.ErrTicketAlreadyRedeemed)
|
|
|
|
|
})
|
|
|
|
|
t.Run("too-many-retries", func(t *testing.T) {
|
|
|
|
|
w := &GormReadWriter{Tx: db}
|
|
|
|
|
w := &Db{Tx: db}
|
|
|
|
|
attempts := 0
|
|
|
|
|
got, err := w.DoTx(context.Background(), 2, ExpBackoff{}, func(Writer) error { attempts += 1; return oplog.ErrTicketAlreadyRedeemed })
|
|
|
|
|
assert.True(err != nil)
|
|
|
|
|
@ -601,14 +601,14 @@ func TestGormReadWriter_DoTx(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
func TestDb_Delete(t *testing.T) {
|
|
|
|
|
// intentionally not run with t.Parallel so we don't need to use DoTx for the Create tests
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("simple", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -635,7 +635,7 @@ func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
assert.Equal(ErrRecordNotFound, err)
|
|
|
|
|
})
|
|
|
|
|
t.Run("valid-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -682,7 +682,7 @@ func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
assert.Equal(ErrRecordNotFound, err)
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-wrapper-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -726,7 +726,7 @@ func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
assert.Equal("error wrapper is nil for WithWrapper", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("no-metadata-WithOplog", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -766,7 +766,7 @@ func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
assert.Equal("error no metadata for WithOplog", err.Error())
|
|
|
|
|
})
|
|
|
|
|
t.Run("nil-tx", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: nil}
|
|
|
|
|
w := Db{Tx: nil}
|
|
|
|
|
id, err := uuid.GenerateUUID()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
@ -778,14 +778,14 @@ func TestGormReadWriter_Delete(t *testing.T) {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestGormReadWriter_ScanRows(t *testing.T) {
|
|
|
|
|
func TestDb_ScanRows(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
cleanup, db := TestSetup(t, "postgres")
|
|
|
|
|
defer cleanup()
|
|
|
|
|
assert := assert.New(t)
|
|
|
|
|
defer db.Close()
|
|
|
|
|
t.Run("valid", func(t *testing.T) {
|
|
|
|
|
w := GormReadWriter{Tx: db}
|
|
|
|
|
w := Db{Tx: db}
|
|
|
|
|
user, err := db_test.NewTestUser()
|
|
|
|
|
assert.Nil(err)
|
|
|
|
|
err = w.Create(context.Background(), user)
|
|
|
|
|
|