From c3f98b6ff15ea200059f6b13ad1955468cfbb0ef Mon Sep 17 00:00:00 2001 From: Joakim Larsson Date: Tue, 4 Jun 2024 14:26:27 +0200 Subject: [PATCH] fixed broken tests :dizzy_face: --- src/adverts/adverts.gql.schema.ts | 2 +- src/profile/e2e-test/remove-profile.spec.ts | 91 ++++++++++++--------- src/profile/e2e-test/update-profile.spec.ts | 9 +- 3 files changed, 60 insertions(+), 42 deletions(-) diff --git a/src/adverts/adverts.gql.schema.ts b/src/adverts/adverts.gql.schema.ts index 2ab62cf..26dde34 100644 --- a/src/adverts/adverts.gql.schema.ts +++ b/src/adverts/adverts.gql.schema.ts @@ -230,7 +230,7 @@ export const advertsGqlSchema = /* GraphQL */ ` isReservedBySome: Boolean! isCollectedBySome: Boolean! isPicked: Boolean! - waitlistCount: Number! + waitlistCount: Int! returnInfo: [AdvertReturnInfo]! claims: [AdvertClaim]! } diff --git a/src/profile/e2e-test/remove-profile.spec.ts b/src/profile/e2e-test/remove-profile.spec.ts index 478b8ad..aff84d9 100644 --- a/src/profile/e2e-test/remove-profile.spec.ts +++ b/src/profile/e2e-test/remove-profile.spec.ts @@ -8,48 +8,59 @@ const range = (n: number): any[] => Object.keys([...new Array(n)]) describe('removeProfile', () => { it('delete profile data and associated adverts', () => - end2endTest(null, async ({ user, profiles, adverts, gqlRequest }) => { - const addProfile = (id: string) => { - // eslint-disable-next-line no-param-reassign - profiles[id] = createEmptyProfile() - } - const addAdvert = (advert: Advert) => { - // eslint-disable-next-line no-param-reassign - adverts[advert.id] = advert - } + end2endTest( + null, + async ({ user, profiles, adverts, loginPolicies, gqlRequest }) => { + await loginPolicies.updateLoginPolicies([ + { + emailPattern: user.id, + roles: ['canManageProfile'], + }, + ]) + const addProfile = (id: string) => { + // eslint-disable-next-line no-param-reassign + profiles[id] = createEmptyProfile() + } + const addAdvert = (advert: Advert) => { + // eslint-disable-next-line no-param-reassign + adverts[advert.id] = advert + } - // setup some profiles - addProfile('keep.me') - addProfile('keep.me.too') - addProfile(user.id) + // setup some profiles + addProfile('keep.me') + addProfile('keep.me.too') + addProfile(user.id) - // setup some adverts - addAdvert(createEmptyAdvert({ id: 'keep.1', createdBy: 'keep.me' })) - addAdvert(createEmptyAdvert({ id: 'keep.2', createdBy: 'keep.me.too' })) - range(1000).forEach(i => - addAdvert(createEmptyAdvert({ id: `remove.${i}`, createdBy: user.id })) - ) - addAdvert( - createEmptyAdvert({ id: 'keep.last', createdBy: 'keep.me.too' }) - ) + // setup some adverts + addAdvert(createEmptyAdvert({ id: 'keep.1', createdBy: 'keep.me' })) + addAdvert(createEmptyAdvert({ id: 'keep.2', createdBy: 'keep.me.too' })) + range(1000).forEach(i => + addAdvert( + createEmptyAdvert({ id: `remove.${i}`, createdBy: user.id }) + ) + ) + addAdvert( + createEmptyAdvert({ id: 'keep.last', createdBy: 'keep.me.too' }) + ) - const { status, body } = await gqlRequest( - /* GraphQL */ ` - mutation Mutation($input: RemoveProfileInput!) { - removeProfile(input: $input) { - success + const { status, body } = await gqlRequest( + /* GraphQL */ ` + mutation Mutation($input: RemoveProfileInput!) { + removeProfile(input: $input) { + success + } } - } - `, - { input: { removeAdverts: true } } - ) - expect(status).toBe(StatusCodes.OK) - expect(body?.data?.removeProfile?.success).toBe(true) - expect(Object.keys(profiles)).toMatchObject(['keep.me', 'keep.me.too']) - expect(Object.keys(adverts)).toMatchObject([ - 'keep.1', - 'keep.2', - 'keep.last', - ]) - })) + `, + { input: { removeAdverts: true } } + ) + expect(status).toBe(StatusCodes.OK) + expect(body?.data?.removeProfile?.success).toBe(true) + expect(Object.keys(profiles)).toMatchObject(['keep.me', 'keep.me.too']) + expect(Object.keys(adverts)).toMatchObject([ + 'keep.1', + 'keep.2', + 'keep.last', + ]) + } + )) }) diff --git a/src/profile/e2e-test/update-profile.spec.ts b/src/profile/e2e-test/update-profile.spec.ts index 46562e1..c2fdaf6 100644 --- a/src/profile/e2e-test/update-profile.spec.ts +++ b/src/profile/e2e-test/update-profile.spec.ts @@ -4,7 +4,14 @@ import type { ProfileInput } from '../types' describe('getProfile', () => { it('returns repository content with email set to calling user', () => - end2endTest(null, async ({ user, profiles, gqlRequest }) => { + end2endTest(null, async ({ user, profiles, loginPolicies, gqlRequest }) => { + await loginPolicies.updateLoginPolicies([ + { + emailPattern: user.id, + roles: ['canManageProfile'], + }, + ]) + const input: ProfileInput = { name: 'Foo', phone: '123-45678',