Fix tests for pagination buttons

- Now the buttons are disabled instead of remove from the DOM.
This commit is contained in:
Wolfgang Huß 2020-09-25 10:00:17 +02:00
parent d049ad5d3e
commit 965dc48dae
2 changed files with 25 additions and 23 deletions

View File

@ -20,67 +20,67 @@ describe('PaginationButtons.vue', () => {
} }
describe('mount', () => { describe('mount', () => {
describe('next button', () => {
beforeEach(() => { beforeEach(() => {
wrapper = Wrapper() wrapper = Wrapper()
}) })
describe('next button', () => {
it('is disabled by default', () => { it('is disabled by default', () => {
expect(wrapper.find('.next-button').exists()).toEqual(false) const nextButton = wrapper.find('[data-test="next-button"]')
expect(nextButton.attributes().disabled).toEqual('disabled')
}) })
it('is enabled if hasNext is true', async () => { it('is enabled if hasNext is true', async () => {
wrapper.setProps({ hasNext: true }) wrapper.setProps({ hasNext: true })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(wrapper.find('.next-button').exists()).toEqual(true) const nextButton = wrapper.find('[data-test="next-button"]')
expect(nextButton.attributes().disabled).toBeUndefined()
}) })
it('emits next when clicked', async () => { it('emits next when clicked', async () => {
wrapper.setProps({ hasNext: true }) wrapper.setProps({ hasNext: true })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
wrapper.find('.next-button').trigger('click') wrapper.find('[data-test="next-button"]').trigger('click')
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(wrapper.emitted().next).toHaveLength(1) expect(wrapper.emitted().next).toHaveLength(1)
}) })
}) })
describe('back button', () => { describe('back button', () => {
beforeEach(() => {
wrapper = Wrapper()
})
it('is disabled by default', () => { it('is disabled by default', () => {
expect(wrapper.find('.previous-button').exists()).toEqual(false) const backButton = wrapper.find('[data-test="previous-button"]')
expect(backButton.attributes().disabled).toEqual('disabled')
}) })
it('is enabled if hasPrevious is true', async () => { it('is enabled if hasPrevious is true', async () => {
wrapper.setProps({ hasPrevious: true }) wrapper.setProps({ hasPrevious: true })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(wrapper.find('.previous-button').exists()).toEqual(true) const backButton = wrapper.find('[data-test="previous-button"]')
// expect(wrapper.find('.previous-button').exists()).toEqual(true)
expect(backButton.attributes().disabled).toBeUndefined()
}) })
it('emits back when clicked', async () => { it('emits back when clicked', async () => {
wrapper.setProps({ hasPrevious: true }) wrapper.setProps({ hasPrevious: true })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
wrapper.find('.previous-button').trigger('click') wrapper.find('[data-test="previous-button"]').trigger('click')
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(wrapper.emitted().back).toHaveLength(1) expect(wrapper.emitted().back).toHaveLength(1)
}) })
}) })
describe('page counter', () => { describe('page counter', () => {
beforeEach(() => {
wrapper = Wrapper()
})
it('displays the page counter when showPageCount is true', () => { it('displays the page counter when showPageCount is true', () => {
expect(wrapper.find('.pagination-pageCount').text().replace(/\s+/g, ' ')).toEqual('2 / 3') const paginationPageCount = wrapper.find('[data-test="pagination-pageCount"]')
expect(paginationPageCount.text().replace(/\s+/g, ' ')).toEqual('2 / 3')
}) })
it('does not display the page counter when showPageCount is false', async () => { it('does not display the page counter when showPageCount is false', async () => {
wrapper.setProps({ showPageCounter: false }) wrapper.setProps({ showPageCounter: false })
await wrapper.vm.$nextTick() await wrapper.vm.$nextTick()
expect(wrapper.find('.pagination-pageCount').exists()).toEqual(false) const paginationPageCount = wrapper.find('[data-test="pagination-pageCount"]')
// expect(wrapper.find('.pagination-pageCount').exists()).toEqual(false)
expect(paginationPageCount.exists()).toEqual(false)
}) })
}) })
}) })

View File

@ -1,23 +1,25 @@
<template> <template>
<div class="pagination-buttons"> <div class="pagination-buttons">
<base-button <base-button
class="previous-button"
:disabled="!hasPrevious" :disabled="!hasPrevious"
icon="arrow-left" icon="arrow-left"
circle circle
class="previous-button" data-test="previous-button"
@click="$emit('back')" @click="$emit('back')"
/> />
<span v-if="showPageCounter" class="pagination-pageCount"> <span v-if="showPageCounter" class="pagination-pageCount" data-test="pagination-pageCount">
{{ $t('search.page') }} {{ activePage + 1 }} / {{ $t('search.page') }} {{ activePage + 1 }} /
{{ Math.floor((activeResourceCount - 1) / pageSize) + 1 }} {{ Math.floor((activeResourceCount - 1) / pageSize) + 1 }}
</span> </span>
<base-button <base-button
class="next-button"
:disabled="!hasNext" :disabled="!hasNext"
icon="arrow-right" icon="arrow-right"
circle circle
class="next-button" data-test="next-button"
@click="$emit('next')" @click="$emit('next')"
/> />
</div> </div>