Add test user raeuber hotzenplotz and deny already confirmed, deleted or denied contributions.

This commit is contained in:
elweyn 2023-02-06 09:25:44 +01:00
parent 0575c513c4
commit b7343fdc3e

View File

@ -49,6 +49,7 @@ import { User } from '@entity/User'
import { EventProtocolType } from '@/event/EventProtocolType'
import { logger, i18n as localization } from '@test/testSetup'
import { UserInputError } from 'apollo-server-express'
import { raeuberHotzenplotz } from '@/seeds/users/raeuber-hotzenplotz'
// mock account activation email to avoid console spam
// mock account activation email to avoid console spam
@ -94,11 +95,13 @@ afterAll(async () => {
describe('ContributionResolver', () => {
let bibi: any
let raueber: any
let peter: any
beforeAll(async () => {
bibi = await userFactory(testEnv, bibiBloxberg)
admin = peter = await userFactory(testEnv, peterLustig)
raueber = await userFactory(testEnv, raeuberHotzenplotz)
const bibisCreation = creations.find((creation) => creation.email === 'bibi@bloxberg.de')
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
await creationFactory(testEnv, bibisCreation!)
@ -697,6 +700,158 @@ describe('ContributionResolver', () => {
})
})
describe('deny contribution that is already confirmed', () => {
let contribution: any
it('throws an error', async () => {
await mutate({
mutation: login,
variables: { email: 'raeuber@hotzenplotz.de', password: 'Aa12345_' },
})
contribution = await mutate({
mutation: createContribution,
variables: {
amount: 166.0,
memo: 'Whatever contribution',
creationDate: new Date().toString(),
},
})
await mutate({
mutation: login,
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
})
await mutate({
mutation: confirmContribution,
variables: {
id: contribution.data.createContribution.id,
},
})
await expect(
mutate({
mutation: denyContribution,
variables: {
id: contribution.data.createContribution.id,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('Contribution not found for given id.')],
}),
)
})
it('logs the error found', () => {
expect(logger.error).toBeCalledWith(
`Contribution not found for given id: ${contribution.data.createContribution.id}`,
)
})
})
describe('deny contribution that is already deleted', () => {
let contribution: any
it('throws an error', async () => {
await mutate({
mutation: login,
variables: { email: 'raeuber@hotzenplotz.de', password: 'Aa12345_' },
})
contribution = await mutate({
mutation: createContribution,
variables: {
amount: 166.0,
memo: 'Whatever contribution',
creationDate: new Date().toString(),
},
})
await mutate({
mutation: deleteContribution,
variables: {
id: contribution.data.createContribution.id,
},
})
await mutate({
mutation: login,
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
})
await expect(
mutate({
mutation: denyContribution,
variables: {
id: contribution.data.createContribution.id,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('Contribution not found for given id.')],
}),
)
})
it('logs the error found', () => {
expect(logger.error).toBeCalledWith(
`Contribution not found for given id: ${contribution.data.createContribution.id}`,
)
})
})
describe('deny contribution that is already denied', () => {
let contribution: any
it('throws an error', async () => {
await mutate({
mutation: login,
variables: { email: 'raeuber@hotzenplotz.de', password: 'Aa12345_' },
})
contribution = await mutate({
mutation: createContribution,
variables: {
amount: 166.0,
memo: 'Whatever contribution',
creationDate: new Date().toString(),
},
})
await mutate({
mutation: login,
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
})
await mutate({
mutation: denyContribution,
variables: {
id: contribution.data.createContribution.id,
},
})
await expect(
mutate({
mutation: denyContribution,
variables: {
id: contribution.data.createContribution.id,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('Contribution not found for given id.')],
}),
)
})
it('logs the error found', () => {
expect(logger.error).toBeCalledWith(
`Contribution not found for given id: ${contribution.data.createContribution.id}`,
)
})
})
describe('valid input', () => {
it('deny contribution', async () => {
await mutate({
@ -1168,7 +1323,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 5,
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
@ -1206,6 +1361,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1228,7 +1395,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 5,
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
@ -1266,6 +1433,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1288,7 +1467,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 5,
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
@ -1326,6 +1505,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1348,7 +1539,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 2,
contributionCount: 3,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
@ -1386,6 +1577,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1446,6 +1649,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1506,6 +1721,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1528,7 +1755,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 1,
contributionCount: 2,
contributionList: expect.arrayContaining([
expect.not.objectContaining({
amount: '100',
@ -1566,6 +1793,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},
@ -1611,7 +1850,7 @@ describe('ContributionResolver', () => {
expect.objectContaining({
data: {
listAllContributions: {
contributionCount: 3,
contributionCount: 4,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
@ -1649,6 +1888,18 @@ describe('ContributionResolver', () => {
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
}),
expect.not.objectContaining({
id: expect.any(Number),
state: 'DENIED',
memo: 'Whatever contribution',
amount: '166',
}),
expect.objectContaining({
id: expect.any(Number),
state: 'CONFIRMED',
memo: 'Whatever contribution',
amount: '166',
}),
]),
},
},