gradido/frontend/src/components/DecayInformations/CollapseLinksList.spec.js
Ulf Gebhardt 19f2686b6e
Merge branch 'master' into 1637-generate-link-backend
# Conflicts:
#	frontend/src/components/ClipboardCopy.vue
#	frontend/src/components/GddSend/TransactionResultLink.vue
#	frontend/src/components/TransactionLinks/TransactionLink.vue
#	frontend/src/components/Transactions/TransactionLinkSummary.spec.js
2022-04-21 13:14:52 +02:00

130 lines
3.3 KiB
JavaScript

import { mount } from '@vue/test-utils'
import CollapseLinksList from './CollapseLinksList'
const localVue = global.localVue
const mocks = {
$i18n: {
locale: 'en',
},
$tc: jest.fn((tc) => tc),
$t: jest.fn((t) => t),
$d: jest.fn((d) => d),
}
const propsData = {
transactionLinks: [
{
amount: '5',
code: 'ce28664b5308c17f931c0367',
link: 'http://localhost/redeem/ce28664b5308c17f931c0367',
createdAt: '2022-03-16T14:22:40.000Z',
holdAvailableAmount: '5.13109484759482747111',
id: 87,
memo: 'Eene meene Siegerpreis, vor mir steht ein Schokoeis. Hex-hex!',
redeemedAt: null,
validUntil: '2022-03-30T14:22:40.000Z',
},
{
amount: '6',
code: 'ce28664b5308c17f931c0367',
link: 'http://localhost/redeem/ce28664b5308c17f931c0367',
createdAt: '2022-03-16T14:22:40.000Z',
holdAvailableAmount: '5.13109484759482747111',
id: 86,
memo: 'Eene meene buntes Laub, auf dem Schrank da liegt kein Staub.',
redeemedAt: null,
validUntil: '2022-03-30T14:22:40.000Z',
},
],
transactionLinkCount: 3,
value: 1,
pending: false,
pageSize: 5,
}
describe('CollapseLinksList', () => {
let wrapper
const Wrapper = () => {
return mount(CollapseLinksList, { localVue, mocks, propsData })
}
describe('mount', () => {
beforeEach(() => {
wrapper = Wrapper()
})
it('renders the component div.collapse-links-list', () => {
expect(wrapper.find('div.collapse-links-list').exists()).toBeTruthy()
})
describe('load more links', () => {
beforeEach(async () => {
await wrapper.find('button.test-button-load-more').trigger('click')
})
it('emits input', () => {
expect(wrapper.emitted('input')).toEqual([[2]])
})
})
describe('reset transaction link list', () => {
beforeEach(async () => {
await wrapper
.findComponent({ name: 'TransactionLink' })
.vm.$emit('reset-transaction-link-list')
})
it('emits input ', () => {
expect(wrapper.emitted('input')).toEqual([[0]])
})
})
describe('button text', () => {
describe('one more link to load', () => {
beforeEach(async () => {
await wrapper.setProps({
value: 1,
pending: false,
pageSize: 5,
})
})
it('renders text in singular', () => {
expect(mocks.$tc).toBeCalledWith('link-load', 0)
})
})
describe('less than pageSize links to load', () => {
beforeEach(async () => {
await wrapper.setProps({
value: 1,
pending: false,
pageSize: 5,
transactionLinkCount: 6,
})
})
it('renders text in plural and shows the correct count of links', () => {
expect(mocks.$tc).toBeCalledWith('link-load', 1, { n: 4 })
})
})
describe('more than pageSize links to load', () => {
beforeEach(async () => {
await wrapper.setProps({
value: 1,
pending: false,
pageSize: 5,
transactionLinkCount: 16,
})
})
it('renders text in plural with page size links to load', () => {
expect(mocks.$tc).toBeCalledWith('link-load', 2, { n: 5 })
})
})
})
})
})