You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.3 KiB
80 lines
2.3 KiB
package bolt
|
|
|
|
import (
|
|
"context"
|
|
"github.com/gisle/stufflog/models"
|
|
"github.com/stretchr/testify/assert"
|
|
"testing"
|
|
)
|
|
|
|
func TestUserRepository(t *testing.T) {
|
|
if dbErr != nil {
|
|
t.Fatal(dbErr)
|
|
}
|
|
|
|
ctx := context.Background()
|
|
|
|
testUser1 := models.User{
|
|
ID: "U1234",
|
|
Name: "Stuffer",
|
|
}
|
|
testUser2 := models.User{
|
|
ID: "U4321",
|
|
Name: "Logger",
|
|
}
|
|
testUser3 := models.User{
|
|
ID: "U2396",
|
|
Name: "Temper",
|
|
}
|
|
testUsers := []*models.User{
|
|
&testUser1,
|
|
&testUser3,
|
|
&testUser2,
|
|
}
|
|
|
|
t.Run("Save", func(t *testing.T) {
|
|
assert.NoError(t, db.Users().Save(ctx, testUser1), "Save testUser1")
|
|
assert.NoError(t, db.Users().Save(ctx, testUser2), "Save testUser2")
|
|
assert.NoError(t, db.Users().Save(ctx, testUser3), "Save testUser3")
|
|
})
|
|
|
|
t.Run("List", func(t *testing.T) {
|
|
users, err := db.Users().List(ctx)
|
|
assert.Equal(t, testUsers, users, "List 3 users")
|
|
assert.NoError(t, err, "List 3 users")
|
|
})
|
|
|
|
t.Run("Find", func(t *testing.T) {
|
|
user, err := db.Users().FindID(ctx, testUser1.ID)
|
|
assert.Equal(t, &testUser1, user, "Find testUser1")
|
|
assert.NoError(t, err, "Find testUser1")
|
|
user, err = db.Users().FindID(ctx, testUser2.ID)
|
|
assert.Equal(t, &testUser2, user, "Find testUser2")
|
|
assert.NoError(t, err, "Find testUser2")
|
|
user, err = db.Users().FindID(ctx, testUser3.ID)
|
|
assert.Equal(t, &testUser3, user, "Find testUser3")
|
|
assert.NoError(t, err, "Find testUser3")
|
|
|
|
user, err = db.Users().FindID(ctx, "UNonExistent")
|
|
assert.Nil(t, user, "Find UNonExistent")
|
|
assert.Error(t, err, "Find UNonExistent")
|
|
})
|
|
|
|
t.Run("Remove", func(t *testing.T) {
|
|
assert.NoError(t, db.Users().Remove(ctx, testUser3), "Remove testUser3")
|
|
|
|
user, err := db.Users().FindID(ctx, testUser1.ID)
|
|
assert.Equal(t, &testUser1, user, "Find non-deleted testUser1")
|
|
assert.NoError(t, err, "Find non-deleted testUser1")
|
|
user, err = db.Users().FindID(ctx, testUser2.ID)
|
|
assert.Equal(t, &testUser2, user, "Find non-deleted testUser2")
|
|
assert.NoError(t, err, "Find non-deleted testUser2")
|
|
user, err = db.Users().FindID(ctx, testUser3.ID)
|
|
assert.Nil(t, user, "Find deleted testUser3")
|
|
assert.Error(t, err, "Find deleted testUser3")
|
|
|
|
users, err := db.Users().List(ctx)
|
|
assert.Equal(t, []*models.User{&testUser1, &testUser2}, users, "List 2 remaining users")
|
|
assert.NoError(t, err, "List 2 remaining users")
|
|
})
|
|
}
|