remove stub

This commit is contained in:
Hongbo Wu
2024-04-05 22:53:03 +08:00
parent 65ba80b5a3
commit 7abb396032
3 changed files with 5 additions and 74 deletions

View File

@ -142,7 +142,9 @@ export const createUser = async (input: {
})
if (input.pendingConfirmation) {
await sendNewAccountVerificationEmail(user)
if (!(await sendNewAccountVerificationEmail(user))) {
return Promise.reject({ errorCode: SignupErrorCode.InvalidEmail })
}
}
return [user, profile]

View File

@ -1,10 +1,6 @@
import { Job, Queue } from 'bullmq'
import chai, { expect } from 'chai'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
import { expect } from 'chai'
import supertest from 'supertest'
import { StatusType, User } from '../../src/entity/user'
import { SendEmailJobData } from '../../src/jobs/send_email'
import { getRepository } from '../../src/repository'
import { userRepository } from '../../src/repository/user'
import { isValidSignupRequest } from '../../src/routers/auth/auth_router'
@ -17,12 +13,9 @@ import {
generateVerificationToken,
hashPassword,
} from '../../src/utils/auth'
import * as createTask from '../../src/utils/createTask'
import { createTestUser } from '../db'
import { generateFakeUuid, request } from '../util'
chai.use(sinonChai)
describe('auth router', () => {
const route = '/api/auth'
@ -183,12 +176,7 @@ describe('auth router', () => {
})
context('when user is not confirmed', () => {
let fake: (
jobData: SendEmailJobData
) => Promise<Job<any, any, string> | undefined>
beforeEach(async () => {
fake = sinon.replace(createTask, 'enqueueSendEmail', sinon.fake())
await updateUser(user.id, { status: StatusType.Pending })
email = user.email
password = correctPassword
@ -196,7 +184,6 @@ describe('auth router', () => {
afterEach(async () => {
await updateUser(user.id, { status: StatusType.Active })
sinon.restore()
})
it('redirects with error code PendingVerification', async () => {
@ -205,11 +192,6 @@ describe('auth router', () => {
'/email-login?errorCodes=PENDING_VERIFICATION'
)
})
it('sends a verification email', async () => {
await loginRequest(email, password).expect(302)
expect(fake).to.have.been.calledOnce
})
})
context('when user not exists', () => {
@ -268,12 +250,10 @@ describe('auth router', () => {
let token: string
before(async () => {
sinon.replace(createTask, 'enqueueSendEmail', sinon.fake())
user = await createTestUser('pendingUser', undefined, 'password', true)
})
after(async () => {
sinon.restore()
await deleteUser(user.id)
})
@ -371,40 +351,11 @@ describe('auth router', () => {
})
context('when reset password email sent', () => {
before(() => {
sinon.replace(
createTask,
'enqueueSendEmail',
sinon.fake.resolves(new Job(new Queue('test'), 'test', 'test'))
)
})
after(() => {
sinon.restore()
})
it('redirects to forgot-password page with success message', async () => {
const res = await emailResetPasswordReq(email).expect(302)
expect(res.header.location).to.endWith('/auth/reset-sent')
})
})
context('when reset password email not sent', () => {
before(() => {
sinon.replace(createTask, 'enqueueSendEmail', sinon.fake())
})
after(() => {
sinon.restore()
})
it('redirects to sign up page with error code INVALID_EMAIL', async () => {
const res = await emailResetPasswordReq(email).expect(302)
expect(res.header.location).to.endWith(
'/forgot-password?errorCodes=INVALID_EMAIL'
)
})
})
})
context('when email is not verified', () => {

View File

@ -1,23 +1,15 @@
import { Job } from 'bullmq'
import chai, { expect } from 'chai'
import 'mocha'
import sinon from 'sinon'
import sinonChai from 'sinon-chai'
import { expect } from 'chai'
import { Filter } from '../../src/entity/filter'
import { StatusType, User } from '../../src/entity/user'
import { SendEmailJobData } from '../../src/jobs/send_email'
import { authTrx, getRepository } from '../../src/repository'
import { findProfile } from '../../src/services/profile'
import { deleteUser } from '../../src/services/user'
import * as createTask from '../../src/utils/createTask'
import {
createTestUser,
createUserWithoutProfile,
deleteFiltersFromUser,
} from '../db'
chai.use(sinonChai)
describe('create user', () => {
context('creates a user through manual sign up', () => {
it('adds the default filters to the user', async () => {
@ -96,17 +88,9 @@ describe('create user', () => {
context('create a user with pending confirmation', () => {
const name = 'pendingUser'
let fake: (
jobData: SendEmailJobData
) => Promise<Job<any, any, string> | undefined>
context('when email sends successfully', () => {
beforeEach(() => {
fake = sinon.replace(createTask, 'enqueueSendEmail', sinon.fake())
})
afterEach(async () => {
sinon.restore()
const user = await getRepository(User).findOneBy({ name })
await deleteUser(user!.id)
})
@ -117,12 +101,6 @@ describe('create user', () => {
expect(user.status).to.eql(StatusType.Pending)
expect(user.name).to.eql(name)
})
it('sends an email to the user', async () => {
await createTestUser(name, undefined, undefined, true)
expect(fake).to.have.been.calledOnce
})
})
})
})