MCPcopy Index your code
hub / github.com/authorizerdev/authorizer / TestUser

Function TestUser

internal/integration_tests/user_test.go:17–82  ·  view source on GitHub ↗

TestUser tests the _user admin query

(t *testing.T)

Source from the content-addressed store, hash-verified

15
16// TestUser tests the _user admin query
17func TestUser(t *testing.T) {
18 cfg := getTestConfig()
19 ts := initTestSetup(t, cfg)
20 req, ctx := createContext(ts)
21
22 // Create a test user
23 email := "user_test_" + uuid.New().String() + "@authorizer.dev"
24 password := "Password@123"
25 signupReq := &model.SignUpRequest{
26 Email: &email,
27 Password: password,
28 ConfirmPassword: password,
29 }
30 signupRes, err := ts.GraphQLProvider.SignUp(ctx, signupReq)
31 require.NoError(t, err)
32 require.NotNil(t, signupRes)
33 require.NotNil(t, signupRes.User)
34
35 t.Run("should fail without admin auth", func(t *testing.T) {
36 req.Header.Set("Cookie", "")
37 user, err := ts.GraphQLProvider.User(ctx, &model.GetUserRequest{
38 ID: refs.NewStringRef(signupRes.User.ID),
39 })
40 assert.Error(t, err)
41 assert.Nil(t, user)
42 })
43
44 t.Run("should get user by ID", func(t *testing.T) {
45 h, err := crypto.EncryptPassword(cfg.AdminSecret)
46 require.NoError(t, err)
47 req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
48
49 user, err := ts.GraphQLProvider.User(ctx, &model.GetUserRequest{
50 ID: refs.NewStringRef(signupRes.User.ID),
51 })
52 require.NoError(t, err)
53 assert.NotNil(t, user)
54 assert.Equal(t, signupRes.User.ID, user.ID)
55 assert.Equal(t, email, *user.Email)
56 })
57
58 t.Run("should get user by email", func(t *testing.T) {
59 h, err := crypto.EncryptPassword(cfg.AdminSecret)
60 require.NoError(t, err)
61 req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))
62
63 user, err := ts.GraphQLProvider.User(ctx, &model.GetUserRequest{
64 Email: refs.NewStringRef(email),
65 })
66 require.NoError(t, err)
67 assert.NotNil(t, user)
68 assert.Equal(t, email, *user.Email)
69 })
70
71 t.Run("should fail for non-existent user", func(t *testing.T) {
72 h, err := crypto.EncryptPassword(cfg.AdminSecret)
73 require.NoError(t, err)
74 req.Header.Set("Cookie", fmt.Sprintf("%s=%s", constants.AdminCookieName, h))

Callers

nothing calls this directly

Calls 11

NewStringRefFunction · 0.92
EncryptPasswordFunction · 0.92
getTestConfigFunction · 0.85
initTestSetupFunction · 0.85
createContextFunction · 0.85
ErrorMethod · 0.80
SignUpMethod · 0.65
SetMethod · 0.65
UserMethod · 0.65
StringMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected