MCPcopy
hub / github.com/benbjohnson/wtf / TestUserService_DeleteUser

Function TestUserService_DeleteUser

sqlite/user_test.go:115–155  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

113}
114
115func TestUserService_DeleteUser(t *testing.T) {
116 // Ensure user can delete self.
117 t.Run("OK", func(t *testing.T) {
118 db := MustOpenDB(t)
119 defer MustCloseDB(t, db)
120 s := sqlite.NewUserService(db)
121 user0, ctx0 := MustCreateUser(t, context.Background(), db, &wtf.User{Name: "john"})
122
123 // Delete user & ensure it is actually gone.
124 if err := s.DeleteUser(ctx0, user0.ID); err != nil {
125 t.Fatal(err)
126 } else if _, err := s.FindUserByID(ctx0, user0.ID); wtf.ErrorCode(err) != wtf.ENOTFOUND {
127 t.Fatalf("unexpected error: %#v", err)
128 }
129 })
130
131 // Ensure an error is returned if deleting a non-existent user.
132 t.Run("ErrNotFound", func(t *testing.T) {
133 db := MustOpenDB(t)
134 defer MustCloseDB(t, db)
135 s := sqlite.NewUserService(db)
136 if err := s.DeleteUser(context.Background(), 1); wtf.ErrorCode(err) != wtf.ENOTFOUND {
137 t.Fatalf("unexpected error: %#v", err)
138 }
139 })
140
141 // Ensure deleting a user is restricted only to the current user.
142 t.Run("ErrUnauthorized", func(t *testing.T) {
143 db := MustOpenDB(t)
144 defer MustCloseDB(t, db)
145 s := sqlite.NewUserService(db)
146 user0, _ := MustCreateUser(t, context.Background(), db, &wtf.User{Name: "NAME0"})
147 _, ctx1 := MustCreateUser(t, context.Background(), db, &wtf.User{Name: "NAME1"})
148
149 if err := s.DeleteUser(ctx1, user0.ID); err == nil {
150 t.Fatal("expected error")
151 } else if wtf.ErrorCode(err) != wtf.EUNAUTHORIZED || wtf.ErrorMessage(err) != `You are not allowed to delete this user.` {
152 t.Fatalf("unexpected error: %#v", err)
153 }
154 })
155}
156
157func TestUserService_FindUser(t *testing.T) {
158 // Ensure an error is returned if fetching a non-existent user.

Callers

nothing calls this directly

Calls 9

DeleteUserMethod · 0.95
FindUserByIDMethod · 0.95
NewUserServiceFunction · 0.92
ErrorCodeFunction · 0.92
ErrorMessageFunction · 0.92
MustOpenDBFunction · 0.85
MustCloseDBFunction · 0.85
MustCreateUserFunction · 0.70
RunMethod · 0.45

Tested by

no test coverage detected