@@ -150,13 +150,15 @@ describe('pagination', () => {
150
150
wrapper.setProps({
151
151
totalRows: 4
152
152
})
153
+
await waitNT(wrapper.vm)
153
154
154
155
expect(wrapper.is('ul')).toBe(true)
155
156
expect(wrapper.findAll('li').length).toBe(8)
156
157
157
158
wrapper.setProps({
158
159
perPage: 2
159
160
})
161
+
await waitNT(wrapper.vm)
160
162
161
163
expect(wrapper.is('ul')).toBe(true)
162
164
expect(wrapper.findAll('li').length).toBe(6)
@@ -679,8 +681,8 @@ describe('pagination', () => {
679
681
wrapper.destroy()
680
682
})
681
683
682
-
it('changing the pagesize resets to page 1', async () => {
683
-
// https://github.com/bootstrap-vue/bootstrap-vue/issues/2987
684
+
it('changing the number of pages to less than current page number resets to page 1', async () => {
685
+
// https://github.com/bootstrap-vue/bootstrap-vue/issues/3716
684
686
const wrapper = mount(BPagination, {
685
687
propsData: {
686
688
totalRows: 10,
@@ -694,16 +696,79 @@ describe('pagination', () => {
694
696
expect(wrapper.vm.currentPage).toBe(10)
695
697
expect(wrapper.emitted('input')).not.toBeDefined()
696
698
699
+
// Change total rows to larger value. Should not change page number
700
+
wrapper.setProps({
701
+
totalRows: 20
702
+
})
703
+
await waitNT(wrapper.vm)
704
+
expect(wrapper.vm.currentPage).toBe(10)
705
+
expect(wrapper.emitted('input')).not.toBeDefined()
706
+
707
+
// Change to page 20
708
+
wrapper.setProps({
709
+
value: 20
710
+
})
711
+
await waitNT(wrapper.vm)
712
+
expect(wrapper.vm.currentPage).toBe(20)
713
+
expect(wrapper.emitted('input')).toBeDefined()
714
+
expect(wrapper.emitted('input').length).toBe(1)
715
+
expect(wrapper.emitted('input')[0][0]).toBe(20)
716
+
717
+
// Decrease number of pages should reset to page 1
718
+
wrapper.setProps({
719
+
totalRows: 10
720
+
})
721
+
await waitNT(wrapper.vm)
722
+
expect(wrapper.vm.currentPage).toBe(1)
723
+
expect(wrapper.emitted('input').length).toBe(2)
724
+
expect(wrapper.emitted('input')[1][0]).toBe(1)
725
+
726
+
// Change to page 3
727
+
wrapper.setProps({
728
+
value: 3
729
+
})
730
+
await waitNT(wrapper.vm)
731
+
expect(wrapper.vm.currentPage).toBe(3)
732
+
expect(wrapper.emitted('input').length).toBe(3)
733
+
expect(wrapper.emitted('input')[2][0]).toBe(3)
734
+
735
+
// Decrease number of pages to 5 should not reset to page 1
736
+
wrapper.setProps({
737
+
totalRows: 5
738
+
})
739
+
await waitNT(wrapper.vm)
740
+
expect(wrapper.vm.currentPage).toBe(3)
741
+
expect(wrapper.emitted('input').length).toBe(3)
742
+
743
+
wrapper.destroy()
744
+
})
745
+
746
+
it('changing per-page resets to page 1', async () => {
747
+
// https://github.com/bootstrap-vue/bootstrap-vue/issues/2987
748
+
const wrapper = mount(BPagination, {
749
+
propsData: {
750
+
totalRows: 10,
751
+
perPage: 1,
752
+
value: 4,
753
+
limit: 20
754
+
}
755
+
})
756
+
expect(wrapper.isVueInstance()).toBe(true)
757
+
758
+
expect(wrapper.vm.currentPage).toBe(4)
759
+
expect(wrapper.emitted('input')).not.toBeDefined()
760
+
761
+
// Change perPage
697
762
wrapper.setProps({
698
-
perPage: 3
763
+
perPage: 2
699
764
})
700
765
await waitNT(wrapper.vm)
701
766
expect(wrapper.vm.currentPage).toBe(1)
702
767
expect(wrapper.emitted('input')).toBeDefined()
703
768
expect(wrapper.emitted('input').length).toBe(1)
704
769
expect(wrapper.emitted('input')[0][0]).toBe(1)
705
770
706
-
// Change to page 3
771
+
// Change page to 3
707
772
wrapper.setProps({
708
773
value: 3
709
774
})
@@ -712,7 +777,8 @@ describe('pagination', () => {
712
777
expect(wrapper.emitted('input').length).toBe(2)
713
778
expect(wrapper.emitted('input')[1][0]).toBe(3)
714
779
715
-
// Increasing number of pages should reset to page 1
780
+
// Change perPage. Should reset to page 1, even though
781
+
// current page is within range of numberOfPages
716
782
wrapper.setProps({
717
783
perPage: 1
718
784
})
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4