add tests for hashtag

This commit is contained in:
einhorn_b 2023-08-19 09:27:12 +02:00
parent 69f400a930
commit e310d46ac9
2 changed files with 129 additions and 13 deletions

View File

@ -2718,22 +2718,40 @@ describe('ContributionResolver', () => {
mutation: login,
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
})
await mutate({
mutation: createContribution,
variables: {
amount: 100.0,
memo: '#firefighters',
creationDate: new Date().toString(),
},
})
})
afterAll(() => {
resetToken()
})
it('returns 17 creations in total', async () => {
it('returns 18 creations in total', async () => {
const {
data: { adminListContributions: contributionListObject },
} = await query({
query: adminListContributions,
})
expect(contributionListObject.contributionList).toHaveLength(17)
// console.log('17 contributions: %s', JSON.stringify(contributionListObject, null, 2))
expect(contributionListObject.contributionList).toHaveLength(18)
expect(contributionListObject).toMatchObject({
contributionCount: 17,
contributionCount: 18,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: expect.decimalEqual(100),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: '#firefighters',
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: expect.decimalEqual(50),
firstName: 'Bibi',
@ -2905,8 +2923,17 @@ describe('ContributionResolver', () => {
})
expect(contributionListObject.contributionList).toHaveLength(2)
expect(contributionListObject).toMatchObject({
contributionCount: 4,
contributionCount: 5,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: '100',
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: '#firefighters',
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: '400',
firstName: 'Peter',
@ -2916,15 +2943,6 @@ describe('ContributionResolver', () => {
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: '100',
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: 'Test env contribution',
messagesCount: 0,
status: 'PENDING',
}),
expect.not.objectContaining({
status: 'DENIED',
}),
@ -2951,6 +2969,60 @@ describe('ContributionResolver', () => {
query: 'Peter',
},
})
expect(contributionListObject.contributionList).toHaveLength(4)
expect(contributionListObject).toMatchObject({
contributionCount: 4,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: expect.decimalEqual(100),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: '#firefighters',
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: expect.decimalEqual(400),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: 'Herzlich Willkommen bei Gradido!',
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: expect.decimalEqual(100),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: 'Test env contribution',
messagesCount: 0,
status: 'PENDING',
}),
expect.objectContaining({
amount: expect.decimalEqual(200),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: 'Das war leider zu Viel!',
messagesCount: 0,
status: 'DELETED',
}),
]),
})
})
it('returns only contributions of the queried user without hashtags', async () => {
const {
data: { adminListContributions: contributionListObject },
} = await query({
query: adminListContributions,
variables: {
query: 'Peter',
noHashtag: true,
},
})
expect(contributionListObject.contributionList).toHaveLength(3)
expect(contributionListObject).toMatchObject({
contributionCount: 3,
@ -2986,6 +3058,48 @@ describe('ContributionResolver', () => {
})
})
it('returns only contributions with #firefighter', async () => {
const {
data: { adminListContributions: contributionListObject },
} = await query({
query: adminListContributions,
variables: {
query: '#firefighter',
},
})
expect(contributionListObject.contributionList).toHaveLength(1)
expect(contributionListObject).toMatchObject({
contributionCount: 1,
contributionList: expect.arrayContaining([
expect.objectContaining({
amount: expect.decimalEqual(100),
firstName: 'Peter',
id: expect.any(Number),
lastName: 'Lustig',
memo: '#firefighters',
messagesCount: 0,
status: 'PENDING',
}),
]),
})
})
it('returns no contributions with #firefighter and no hashtag', async () => {
const {
data: { adminListContributions: contributionListObject },
} = await query({
query: adminListContributions,
variables: {
query: '#firefighter',
noHashtag: true,
},
})
expect(contributionListObject.contributionList).toHaveLength(0)
expect(contributionListObject).toMatchObject({
contributionCount: 0,
})
})
// test for case sensitivity and email
it('returns only contributions of the queried user email', async () => {
const {

View File

@ -236,6 +236,7 @@ export const adminListContributions = gql`
$statusFilter: [ContributionStatus!]
$userId: Int
$query: String
$noHashtag: Boolean
) {
adminListContributions(
currentPage: $currentPage
@ -244,6 +245,7 @@ export const adminListContributions = gql`
statusFilter: $statusFilter
userId: $userId
query: $query
noHashtag: $noHashtag
) {
contributionCount
contributionList {