From c6ff0723ee81f13c5cea9d98c07efaa9ecfbf1f6 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Thu, 14 Jan 2021 22:34:53 +0100 Subject: [PATCH] inviteCodes: tests are working as expected, fixed factory --- backend/src/db/factories.js | 6 ++-- .../src/schema/resolvers/inviteCodes.spec.js | 33 ++++++++++++------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/backend/src/db/factories.js b/backend/src/db/factories.js index 8f1d3c718..0f2974d98 100644 --- a/backend/src/db/factories.js +++ b/backend/src/db/factories.js @@ -206,7 +206,7 @@ const emailDefaults = { } Factory.define('emailAddress') - .attr(emailDefaults) + .attrs(emailDefaults) .after((buildObject, options) => { return neode.create('EmailAddress', buildObject) }) @@ -218,13 +218,13 @@ Factory.define('unverifiedEmailAddress') }) const inviteCodeDefaults = { - code: generateInvieCode(), + code: () => generateInvieCode(), createdAt: () => new Date().toISOString(), expiresAt: () => null, } Factory.define('inviteCode') - .attr(inviteCodeDefaults) + .attrs(inviteCodeDefaults) .option('generatedById', null) .option('generatedBy', ['generatedById'], (generatedById) => { if (generatedById) return neode.find('User', generatedById) diff --git a/backend/src/schema/resolvers/inviteCodes.spec.js b/backend/src/schema/resolvers/inviteCodes.spec.js index 9fa3e188b..f3df6ebba 100644 --- a/backend/src/schema/resolvers/inviteCodes.spec.js +++ b/backend/src/schema/resolvers/inviteCodes.spec.js @@ -147,7 +147,7 @@ describe('inviteCodes', () => { expect(inviteCodes).toHaveLength(2) }) - it('does not returns the created invite codes of other users when queried', async () => { + it('does not return the created invite codes of other users when queried', async () => { await Factory.build('inviteCode') const response = await query({ query: myInviteCodesQuery }) inviteCodes = response.data.MyInviteCodes @@ -156,27 +156,36 @@ describe('inviteCodes', () => { it('validates an invite code without expiresAt', async () => { const unExpiringInviteCode = inviteCodes.filter((ic) => ic.expiresAt === null)[0].code - expect( - query({ query: isValidInviteCodeQuery, variables: { code: unExpiringInviteCode } }), - ).resolves.toBeTruthy() + const result = await query({ + query: isValidInviteCodeQuery, + variables: { code: unExpiringInviteCode }, + }) + expect(result.data.isValidInviteCode).toBeTruthy() }) it('validates an invite code with expiresAt in the future', async () => { const expiringInviteCode = inviteCodes.filter((ic) => ic.expiresAt !== null)[0].code - expect( - query({ query: isValidInviteCodeQuery, variables: { code: expiringInviteCode } }), - ).resolves.toBeTruthy() + const result = await query({ + query: isValidInviteCodeQuery, + variables: { code: expiringInviteCode }, + }) + expect(result.data.isValidInviteCode).toBeTruthy() }) - it.skip('does not validate an invite code which expired in the past', async () => { + it('does not validate an invite code which expired in the past', async () => { const lastWeek = new Date() lastWeek.setDate(lastWeek.getDate() - 7) - const code = await Factory.build('inviteCode', { + const inviteCode = await Factory.build('inviteCode', { expiresAt: lastWeek.toISOString(), }) - expect( - query({ query: isValidInviteCodeQuery, variables: { code: code.code } }), - ).resolves.toBeFalsy() + const code = inviteCode.get('code') + const result = await query({ query: isValidInviteCodeQuery, variables: { code } }) + expect(result.data.isValidInviteCode).toBeFalsy() + }) + + it('does not validate an invite code which does not exits', async () => { + const result = await query({ query: isValidInviteCodeQuery, variables: { code: 'AAA' } }) + expect(result.data.isValidInviteCode).toBeFalsy() }) }) })