![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/vreg/node_modules/bootstrap-vue/src/components/table/ |
import { mount } from '@vue/test-utils' import { BTable } from './table' const testItems = [ { a: 1, b: 2, c: 3 }, { a: 4, b: 5, c: 6 }, { a: 7, b: 8, c: 9 }, { a: 10, b: 11, c: 12 }, { a: 13, b: 14, c: 15 } ] describe('table > pagination', () => { it('default should not be paginated', async () => { const wrapper = mount(BTable, { propsData: { items: testItems } }) expect(wrapper.findAll('tbody > tr').length).toBe(5) wrapper.destroy() }) it('should have 3 rows when per-page=3', async () => { const wrapper = mount(BTable, { propsData: { items: testItems, perPage: 3, currentPage: 1 } }) expect(wrapper.findAll('tbody > tr').length).toBe(3) const $trs = wrapper.findAll('tbody > tr') expect( $trs .at(0) .find('td') .text() ).toBe('1') expect( $trs .at(1) .find('td') .text() ).toBe('4') expect( $trs .at(2) .find('td') .text() ).toBe('7') wrapper.destroy() }) it('changing pages should update rows', async () => { const wrapper = mount(BTable, { propsData: { items: testItems, perPage: 3, currentPage: 1 } }) expect(wrapper.findAll('tbody > tr').length).toBe(3) let $trs = wrapper.findAll('tbody > tr') expect( $trs .at(0) .find('td') .text() ).toBe('1') expect( $trs .at(1) .find('td') .text() ).toBe('4') expect( $trs .at(2) .find('td') .text() ).toBe('7') await wrapper.setProps({ currentPage: 2 }) expect(wrapper.findAll('tbody > tr').length).toBe(2) $trs = wrapper.findAll('tbody > tr') expect( $trs .at(0) .find('td') .text() ).toBe('10') expect( $trs .at(1) .find('td') .text() ).toBe('13') await wrapper.setProps({ currentPage: 3 }) expect(wrapper.findAll('tbody > tr').length).toBe(0) wrapper.destroy() }) it('setting current-page to more than pages shows empty row when show-empty=true', async () => { const wrapper = mount(BTable, { propsData: { items: testItems, perPage: 3, currentPage: 1, showEmpty: true } }) expect(wrapper.findAll('tbody > tr').length).toBe(3) await wrapper.setProps({ currentPage: 10 }) expect(wrapper.findAll('tbody > tr').length).toBe(1) const $tr = wrapper.find('tbody > tr') expect($tr.text()).toBe(wrapper.vm.emptyText) expect($tr.classes()).toContain('b-table-empty-row') expect($tr.attributes('role')).toBe('row') expect(wrapper.find('tbody > tr > td').attributes('role')).toBe('cell') expect(wrapper.find('tbody > tr > td > div').attributes('role')).toBe('alert') expect(wrapper.find('tbody > tr > td > div').attributes('aria-live')).toBe('polite') wrapper.destroy() }) })