diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index cf2d55d94..3dfd09bb5 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -1146,13 +1146,21 @@ describe('ContributionResolver', () => { const now = new Date() beforeAll(async () => { - creation = await creationFactory(testEnv, { - email: 'peter@lustig.de', - amount: 400, - memo: 'Herzlich Willkommen bei Gradido!', - creationDate: contributionDateFormatter( - new Date(now.getFullYear(), now.getMonth() - 1, 1), - ), + await mutate({ + mutation: adminCreateContribution, + variables: { + email: 'peter@lustig.de', + amount: 400, + memo: 'Herzlich Willkommen bei Gradido!', + creationDate: contributionDateFormatter( + new Date(now.getFullYear(), now.getMonth() - 1, 1), + ), + }, + }) + creation = await Contribution.findOneOrFail({ + where: { + memo: 'Herzlich Willkommen bei Gradido!', + }, }) }) @@ -1879,6 +1887,10 @@ describe('ContributionResolver', () => { new Date(now.getFullYear(), now.getMonth() - 2, 1), ), }) + await query({ + query: login, + variables: { email: 'peter@lustig.de', password: 'Aa12345_' }, + }) }) it('returns true', async () => { @@ -1959,6 +1971,10 @@ describe('ContributionResolver', () => { new Date(now.getFullYear(), now.getMonth() - 2, 1), ), }) + await query({ + query: login, + variables: { email: 'peter@lustig.de', password: 'Aa12345_' }, + }) }) it('throws no error for the second confirmation', async () => { diff --git a/backend/src/seeds/factory/creation.ts b/backend/src/seeds/factory/creation.ts index 36e481519..09bf981bb 100644 --- a/backend/src/seeds/factory/creation.ts +++ b/backend/src/seeds/factory/creation.ts @@ -1,8 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { backendLogger as logger } from '@/server/logger' -import { login, adminCreateContribution, confirmContribution } from '@/seeds/graphql/mutations' +import { login, createContribution, confirmContribution } from '@/seeds/graphql/mutations' import { CreationInterface } from '@/seeds/creation/CreationInterface' import { ApolloServerTestClient } from 'apollo-server-testing' import { Transaction } from '@entity/Transaction' @@ -19,43 +18,27 @@ export const creationFactory = async ( creation: CreationInterface, ): Promise => { const { mutate } = client - logger.trace('creationFactory...') - await mutate({ mutation: login, variables: { email: 'peter@lustig.de', password: 'Aa12345_' } }) - logger.trace('creationFactory... after login') - // TODO it would be nice to have this mutation return the id - await mutate({ mutation: adminCreateContribution, variables: { ...creation } }) - logger.trace('creationFactory... after adminCreateContribution') + await mutate({ mutation: login, variables: { email: creation.email, password: 'Aa12345_' } }) - const user = await findUserByEmail(creation.email) // userContact.user + const { + data: { createContribution: contribution }, + } = await mutate({ mutation: createContribution, variables: { ...creation } }) - const pendingCreation = await Contribution.findOneOrFail({ - where: { userId: user.id, amount: creation.amount }, - order: { createdAt: 'DESC' }, - }) - logger.trace( - 'creationFactory... after Contribution.findOneOrFail pendingCreation=', - pendingCreation, - ) if (creation.confirmed) { - logger.trace('creationFactory... creation.confirmed=', creation.confirmed) - await mutate({ mutation: confirmContribution, variables: { id: pendingCreation.id } }) - logger.trace('creationFactory... after confirmContribution') - const confirmedCreation = await Contribution.findOneOrFail({ id: pendingCreation.id }) - logger.trace( - 'creationFactory... after Contribution.findOneOrFail confirmedCreation=', - confirmedCreation, - ) + const user = await findUserByEmail(creation.email) // userContact.user + + await mutate({ mutation: login, variables: { email: 'peter@lustig.de', password: 'Aa12345_' } }) + await mutate({ mutation: confirmContribution, variables: { id: contribution.id } }) + const confirmedContribution = await Contribution.findOneOrFail({ id: contribution.id }) if (creation.moveCreationDate) { - logger.trace('creationFactory... creation.moveCreationDate=', creation.moveCreationDate) const transaction = await Transaction.findOneOrFail({ where: { userId: user.id, creationDate: new Date(creation.creationDate) }, order: { balanceDate: 'DESC' }, }) - logger.trace('creationFactory... after Transaction.findOneOrFail transaction=', transaction) if (transaction.decay.equals(0) && transaction.creationDate) { - confirmedCreation.contributionDate = new Date( + confirmedContribution.contributionDate = new Date( nMonthsBefore(transaction.creationDate, creation.moveCreationDate), ) transaction.creationDate = new Date( @@ -64,17 +47,11 @@ export const creationFactory = async ( transaction.balanceDate = new Date( nMonthsBefore(transaction.balanceDate, creation.moveCreationDate), ) - logger.trace('creationFactory... before transaction.save transaction=', transaction) await transaction.save() - logger.trace( - 'creationFactory... before confirmedCreation.save confirmedCreation=', - confirmedCreation, - ) - await confirmedCreation.save() + await confirmedContribution.save() } } } else { - logger.trace('creationFactory... pendingCreation=', pendingCreation) - return pendingCreation + return contribution } }