Files
upstream-traggo/user/update_test.go
upstream-mirror cda7c1a474
Some checks failed
build / build (push) Failing after 3s
snapshot of https://github.com/traggo/server.git (master, 2026-09-16; blobs > 131072B omitted)
2026-09-16 05:24:45 +05:00

78 lines
1.8 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_UpdateUser_succeeds_updatesUser(t *testing.T) {
createPassword = fakePassword
db := test.InMemoryDB(t)
defer db.Close()
db.NewUserPass(1, "jmattheis", unicornPW, true)
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
user, err := resolver.UpdateUser(context.Background(), 1, "broder", pointer("pony"), false)
require.Nil(t, err)
expected := &gqlmodel.User{
Name: "broder",
ID: 1,
Admin: false,
}
require.Equal(t, expected, user)
assertUserCount(t, db, 1)
assertUserExist(t, db, model.User{
Name: "broder",
ID: 1,
Admin: false,
Pass: ponyPW,
})
}
func TestGQL_UpdateUser_succeeds_preservesPassword(t *testing.T) {
createPassword = fakePassword
db := test.InMemoryDB(t)
defer db.Close()
db.NewUserPass(1, "jmattheis", unicornPW, true)
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
user, err := resolver.UpdateUser(context.Background(), 1, "broder", nil, false)
require.Nil(t, err)
expected := &gqlmodel.User{
Name: "broder",
ID: 1,
Admin: false,
}
require.Equal(t, expected, user)
assertUserCount(t, db, 1)
assertUserExist(t, db, model.User{
Name: "broder",
ID: 1,
Admin: false,
Pass: unicornPW,
})
}
func TestGQL_UpdateUser_fails_notExistingUser(t *testing.T) {
createPassword = fakePassword
db := test.InMemoryDB(t)
defer db.Close()
resolver := ResolverForUser{DB: db.DB, PassStrength: 4}
_, err := resolver.UpdateUser(context.Background(), 1, "broder", nil, false)
require.EqualError(t, err, "user with id 1 does not exist")
assertUserCount(t, db, 0)
}
func pointer(s string) *string {
return &s
}