(t *testing.T)
| 198 | } |
| 199 | |
| 200 | func TestJoinDuplicateEmail(t *testing.T) { |
| 201 | db := testutils.InitMemoryDB(t) |
| 202 | |
| 203 | // Setup |
| 204 | a := app.NewTest() |
| 205 | a.Clock = clock.NewMock() |
| 206 | a.DB = db |
| 207 | server := MustNewServer(t, &a) |
| 208 | defer server.Close() |
| 209 | |
| 210 | u := testutils.SetupUserData(db, "alice@example.com", "somepassword") |
| 211 | |
| 212 | dat := url.Values{} |
| 213 | dat.Set("email", "alice@example.com") |
| 214 | dat.Set("password", "foobarbaz") |
| 215 | dat.Set("password_confirmation", "foobarbaz") |
| 216 | req := testutils.MakeFormReq(server.URL, "POST", "/join", dat) |
| 217 | |
| 218 | // Execute |
| 219 | res := testutils.HTTPDo(t, req) |
| 220 | |
| 221 | // Test |
| 222 | assert.StatusCodeEquals(t, res, http.StatusBadRequest, "status code mismatch") |
| 223 | |
| 224 | var userCount, verificationTokenCount int64 |
| 225 | testutils.MustExec(t, db.Model(&database.User{}).Count(&userCount), "counting user") |
| 226 | testutils.MustExec(t, db.Model(&database.Token{}).Count(&verificationTokenCount), "counting verification token") |
| 227 | |
| 228 | var user database.User |
| 229 | testutils.MustExec(t, db.Where("id = ?", u.ID).First(&user), "finding user") |
| 230 | |
| 231 | assert.Equal(t, userCount, int64(1), "user count mismatch") |
| 232 | assert.Equal(t, verificationTokenCount, int64(0), "verification_token should not have been created") |
| 233 | assert.Equal(t, user.LastLoginAt, (*time.Time)(nil), "LastLoginAt mismatch") |
| 234 | } |
| 235 | |
| 236 | func TestJoinDisabled(t *testing.T) { |
| 237 | db := testutils.InitMemoryDB(t) |
nothing calls this directly
no test coverage detected