Deconstruct the listAllContributions test.

This commit is contained in:
elweyn 2023-02-09 16:08:57 +01:00
parent bcf63ec334
commit 96feb30476

View File

@ -1075,8 +1075,7 @@ describe('ContributionResolver', () => {
describe('listAllContribution', () => {
describe('unauthenticated', () => {
it('returns an error', async () => {
await expect(
query({
const { errors: errorObjects }: { errors: [GraphQLError] } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1084,12 +1083,8 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: null,
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [new GraphQLError('401 Unauthorized')],
}),
)
})
expect(errorObjects).toMatchObject([new GraphQLError('401 Unauthorized')])
})
})
@ -1106,8 +1101,7 @@ describe('ContributionResolver', () => {
})
it('throws an error with "NOT_VALID" in statusFilter', async () => {
await expect(
query({
const { errors: errorObjects }: { errors: [GraphQLError | UserInputError] } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1115,21 +1109,16 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['NOT_VALID'],
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [
})
expect(errorObjects).toMatchObject([
new UserInputError(
'Variable "$statusFilter" got invalid value "NOT_VALID" at "statusFilter[0]"; Value "NOT_VALID" does not exist in "ContributionStatus" enum.',
),
],
}),
)
])
})
it('throws an error with a null in statusFilter', async () => {
await expect(
query({
const { errors: errorObjects }: { errors: [Error] } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1137,21 +1126,16 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: [null],
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [
})
expect(errorObjects).toMatchObject([
new UserInputError(
'Variable "$statusFilter" got invalid value null at "statusFilter[0]"; Expected non-nullable type "ContributionStatus!" not to be null.',
),
],
}),
)
])
})
it('throws an error with null and "NOT_VALID" in statusFilter', async () => {
await expect(
query({
const { errors: errorObjects }: { errors: [Error] } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1159,69 +1143,63 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: [null, 'NOT_VALID'],
},
}),
).resolves.toEqual(
expect.objectContaining({
errors: [
})
expect(errorObjects).toMatchObject([
new UserInputError(
'Variable "$statusFilter" got invalid value null at "statusFilter[0]"; Expected non-nullable type "ContributionStatus!" not to be null.',
),
new UserInputError(
'Variable "$statusFilter" got invalid value "NOT_VALID" at "statusFilter[1]"; Value "NOT_VALID" does not exist in "ContributionStatus" enum.',
),
],
}),
)
])
})
it('returns all contributions without statusFilter', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
pageSize: 25,
order: 'DESC',
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1239,15 +1217,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all contributions for statusFilter = null', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1255,45 +1231,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: null,
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1311,15 +1284,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all contributions for statusFilter = []', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1327,45 +1298,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: [],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 7,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1383,15 +1351,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all CONFIRMED contributions', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1399,45 +1365,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['CONFIRMED'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 3,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1455,15 +1418,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all PENDING contributions', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1471,45 +1432,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['PENDING'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 1,
contributionList: expect.arrayContaining([
expect.not.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1527,15 +1485,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all IN_PROGRESS Creation', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1543,45 +1499,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['IN_PROGRESS'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 1,
contributionList: expect.arrayContaining([
expect.not.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1599,15 +1552,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all DENIED Creation', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1615,45 +1566,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['DENIED'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 2,
contributionList: expect.arrayContaining([
expect.not.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1671,15 +1619,13 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
it('returns all DELETED Creation', async () => {
await expect(
query({
it('does not return any DELETED Creation', async () => {
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1687,22 +1633,17 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['DELETED'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 0,
contributionList: [],
},
},
}),
)
})
})
it('returns all CONFIRMED and PENDING Creation', async () => {
await expect(
query({
const {
data: { listAllContributions: contributionListObject },
}: { data: { listAllContributions: ContributionListResult } } = await query({
query: listAllContributions,
variables: {
currentPage: 1,
@ -1710,45 +1651,42 @@ describe('ContributionResolver', () => {
order: 'DESC',
statusFilter: ['CONFIRMED', 'PENDING'],
},
}),
).resolves.toEqual(
expect.objectContaining({
data: {
listAllContributions: {
})
expect(contributionListObject).toMatchObject({
contributionCount: 4,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
state: 'CONFIRMED',
id: expect.any(Number),
id: contributionToConfirm.data.createContribution.id,
memo: 'Test contribution to confirm',
}),
expect.objectContaining({
id: expect.any(Number),
id: pendingContribution.data.createContribution.id,
state: 'PENDING',
memo: 'Test PENDING contribution update',
amount: '10',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDeny.data.createContribution.id,
state: 'DENIED',
memo: 'Test contribution to deny',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: contributionToDelete.data.createContribution.id,
state: 'DELETED',
memo: 'Test contribution to delete',
amount: '100',
}),
expect.not.objectContaining({
id: expect.any(Number),
id: inProgressContribution.data.createContribution.id,
state: 'IN_PROGRESS',
memo: 'Test IN_PROGRESS contribution',
amount: '100',
}),
expect.objectContaining({
id: expect.any(Number),
id: bibiCreatedContribution.id,
state: 'CONFIRMED',
memo: 'Herzlich Willkommen bei Gradido!',
amount: '1000',
@ -1766,10 +1704,7 @@ describe('ContributionResolver', () => {
amount: '166',
}),
]),
},
},
}),
)
})
})
})
})