From d284a3d30283a43ffd776ba3b92e6b705c15ed6e Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 21 Jul 2022 13:33:17 +0800 Subject: [PATCH] fake sendMail in sign up test --- packages/api/src/services/create_user.ts | 2 +- packages/api/test/resolvers/user.test.ts | 22 ++++++++++--------- .../api/test/services/create_user.test.ts | 5 +++-- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/api/src/services/create_user.ts b/packages/api/src/services/create_user.ts index 0dbe854cc..7b9f62986 100644 --- a/packages/api/src/services/create_user.ts +++ b/packages/api/src/services/create_user.ts @@ -100,7 +100,7 @@ export const createUser = async (input: { const confirmationLink = `${env.client.url}/confirm-email/${confirmationToken}` // send email const sent = await sendEmail({ - from: env.sender.general, + from: env.sender.message, to: user.email, subject: 'Confirm your email', text: `Please confirm your email by clicking the link below:\n\n${confirmationLink}\n\n`, diff --git a/packages/api/test/resolvers/user.test.ts b/packages/api/test/resolvers/user.test.ts index ebcef7128..e905264dd 100644 --- a/packages/api/test/resolvers/user.test.ts +++ b/packages/api/test/resolvers/user.test.ts @@ -10,6 +10,9 @@ import { import { User } from '../../src/entity/user' import { hashPassword } from '../../src/utils/auth' import 'mocha' +import { MailDataRequired } from '@sendgrid/helpers/classes/mail' +import sinon from 'sinon' +import * as util from '../../src/utils/sendEmail' describe('User API', () => { const username = 'fake_user' @@ -360,30 +363,29 @@ describe('User API', () => { }) context('when inputs are valid and user not exists', () => { + let fake: (msg: MailDataRequired) => Promise + beforeEach(() => { password = correctPassword username = 'Some_username' email = `${username}@fake.com` + fake = sinon.replace(util, 'sendEmail', sinon.fake.resolves(true)) }) afterEach(async () => { await deleteTestUser(username) + sinon.restore() }) it('responds with 200', async () => { return graphqlRequest(query).expect(200) }) - it('returns the user', async () => { - const res = await graphqlRequest(query).send() - expect(res.body.data.signup.me.profile.username).to.eql(username) - }) - - it('creates user with correct username', async () => { - const res = await graphqlRequest(query).send() - - const user = await getUser(res.body.data.signup.me.id) - expect(user?.profile?.username).to.eql(username) + it('returns the user with the lowercase username', async () => { + const res = await graphqlRequest(query).expect(200) + expect(res.body.data.signup.me.profile.username).to.eql( + username.toLowerCase() + ) }) }) diff --git a/packages/api/test/services/create_user.test.ts b/packages/api/test/services/create_user.test.ts index 808aba882..eb825c9a0 100644 --- a/packages/api/test/services/create_user.test.ts +++ b/packages/api/test/services/create_user.test.ts @@ -72,10 +72,11 @@ describe('create a user with pending confirmation', () => { await deleteTestUser(name) }) - it('creates a user with pending status', async () => { + it('creates the user with pending status and correct name', async () => { const user = await createTestUser(name, undefined, undefined, true) - expect(user.status).to.equal(StatusType.Pending) + expect(user.status).to.eql(StatusType.Pending) + expect(user.name).to.eql(name) }) it('sends an email to the user', async () => {