| 1178 | } |
| 1179 | |
| 1180 | func usersAddEmail(t *testing.T, ctx context.Context, s *UsersStore) { |
| 1181 | t.Run("multiple users can add the same unverified email", func(t *testing.T) { |
| 1182 | alice, err := s.Create(ctx, "alice", "unverified@example.com", CreateUserOptions{}) |
| 1183 | require.NoError(t, err) |
| 1184 | err = s.AddEmail(ctx, alice.ID+1, "unverified@example.com", false) |
| 1185 | require.NoError(t, err) |
| 1186 | }) |
| 1187 | |
| 1188 | t.Run("only one user can add the same verified email", func(t *testing.T) { |
| 1189 | bob, err := s.Create(ctx, "bob", "verified@example.com", CreateUserOptions{Activated: true}) |
| 1190 | require.NoError(t, err) |
| 1191 | got := s.AddEmail(ctx, bob.ID+1, "verified@example.com", true) |
| 1192 | want := ErrEmailAlreadyUsed{args: errutil.Args{"email": "verified@example.com"}} |
| 1193 | require.Equal(t, want, got) |
| 1194 | }) |
| 1195 | } |
| 1196 | |
| 1197 | func usersGetEmail(t *testing.T, ctx context.Context, s *UsersStore) { |
| 1198 | const testUserID = 1 |