gradido/frontend/src/pages/InfoStatistic.spec.js

132 lines
3.2 KiB
JavaScript

import { mount, RouterLinkStub } from '@vue/test-utils'
import InfoStatistic from './InfoStatistic'
import { toastErrorSpy } from '../../test/testSetup'
import { listContributionLinks, communityStatistics, searchAdminUsers } from '@/graphql/queries'
const localVue = global.localVue
const stubs = {
RouterLink: RouterLinkStub,
}
const apolloQueryMock = jest
.fn()
.mockResolvedValueOnce({
data: {
listContributionLinks: {
count: 2,
links: [
{
id: 1,
amount: 200,
name: 'Dokumenta 2017',
memo: 'Vielen Dank für deinen Besuch bei der Dokumenta 2017',
cycle: 'ONCE',
},
{
id: 2,
amount: 200,
name: 'Dokumenta 2022',
memo: 'Vielen Dank für deinen Besuch bei der Dokumenta 2022',
cycle: 'ONCE',
},
],
},
},
})
.mockResolvedValueOnce({
data: {
searchAdminUsers: {
userCount: 2,
userList: [
{ firstName: 'Peter', lastName: 'Lustig' },
{ firstName: 'Super', lastName: 'Admin' },
],
},
},
})
.mockResolvedValueOnce({
data: {
communityStatistics: {
totalUsers: 3113,
// activeUsers: 1057,
// deletedUsers: 35,
totalGradidoCreated: '4083774.05000000000000000000',
totalGradidoDecayed: '-1062639.13634129622923372197',
totalGradidoAvailable: '2513565.869444365732411569',
// totalGradidoUnbookedDecayed: '-500474.6738366222166261272',
},
},
})
.mockResolvedValue('default')
describe('InfoStatistic', () => {
let wrapper
const mocks = {
$i18n: {
locale: 'en',
},
$t: jest.fn((t) => t),
$apollo: {
query: apolloQueryMock,
},
}
const Wrapper = () => {
return mount(InfoStatistic, { localVue, mocks, stubs })
}
describe('mount', () => {
beforeEach(() => {
wrapper = Wrapper()
})
it('renders the info page', () => {
expect(wrapper.find('div.info-statistic').exists()).toBe(true)
})
it('calls listContributionLinks', () => {
expect(apolloQueryMock).toBeCalledWith(
expect.objectContaining({
query: listContributionLinks,
}),
)
})
it('calls searchAdminUsers', () => {
expect(apolloQueryMock).toBeCalledWith(
expect.objectContaining({
query: searchAdminUsers,
}),
)
})
it.skip('calls getCommunityStatistics', () => {
expect(apolloQueryMock).toBeCalledWith(
expect.objectContaining({
query: communityStatistics,
}),
)
})
describe('error apolloQueryMock', () => {
beforeEach(async () => {
jest.clearAllMocks()
apolloQueryMock.mockRejectedValue({
message: 'uups',
})
wrapper = Wrapper()
})
it('toasts two error messages', () => {
expect(toastErrorSpy).toBeCalledWith(
'listContributionLinks has no result, use default data',
)
expect(toastErrorSpy).toBeCalledWith('searchAdminUsers has no result, use default data')
// expect(toastErrorSpy).toBeCalledWith('communityStatistics has no result, use default data')
})
})
})
})