53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package user
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/traggo/server/generated/gqlmodel"
|
|
"github.com/traggo/server/model"
|
|
"github.com/traggo/server/test"
|
|
)
|
|
|
|
func TestGQL_CreateUser_succeeds_addsUser(t *testing.T) {
|
|
createPassword = fakePassword
|
|
db := test.InMemoryDB(t)
|
|
defer db.Close()
|
|
|
|
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
|
|
user, err := resolver.CreateUser(context.Background(), "jmattheis", "unicorn", true)
|
|
|
|
require.Nil(t, err)
|
|
expected := &gqlmodel.User{
|
|
Name: "jmattheis",
|
|
Admin: true,
|
|
ID: 1,
|
|
}
|
|
require.Equal(t, expected, user)
|
|
assertUserExist(t, db, model.User{
|
|
Name: "jmattheis",
|
|
Pass: unicornPW,
|
|
ID: 1,
|
|
Admin: true,
|
|
})
|
|
assertUserCount(t, db, 1)
|
|
}
|
|
|
|
func TestGQL_CreateUser_fails_userAlreadyExists(t *testing.T) {
|
|
createPassword = fakePassword
|
|
db := test.InMemoryDB(t)
|
|
defer db.Close()
|
|
db.Create(&model.User{
|
|
Name: "jmattheis",
|
|
Pass: unicornPW,
|
|
ID: 1,
|
|
Admin: true,
|
|
})
|
|
|
|
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
|
|
_, err := resolver.CreateUser(context.Background(), "jmattheis", "unicorn", true)
|
|
require.EqualError(t, err, "user with name 'jmattheis' does already exist")
|
|
assertUserCount(t, db, 1)
|
|
}
|