diff options
Diffstat (limited to 'spec/frontend/vue_shared/components/pagination_links_spec.js')
-rw-r--r-- | spec/frontend/vue_shared/components/pagination_links_spec.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/spec/frontend/vue_shared/components/pagination_links_spec.js b/spec/frontend/vue_shared/components/pagination_links_spec.js new file mode 100644 index 00000000000..d0cb3731050 --- /dev/null +++ b/spec/frontend/vue_shared/components/pagination_links_spec.js @@ -0,0 +1,59 @@ +import Vue from 'vue'; +import PaginationLinks from '~/vue_shared/components/pagination_links.vue'; +import { s__ } from '~/locale'; +import mountComponent from '../../helpers/vue_mount_component_helper'; + +describe('Pagination links component', () => { + const paginationLinksComponent = Vue.extend(PaginationLinks); + const change = page => page; + const pageInfo = { + page: 3, + perPage: 5, + total: 30, + }; + const translations = { + firstText: s__('Pagination|« First'), + prevText: s__('Pagination|Prev'), + nextText: s__('Pagination|Next'), + lastText: s__('Pagination|Last »'), + }; + + let paginationLinks; + let glPagination; + let destinationComponent; + + beforeEach(() => { + paginationLinks = mountComponent(paginationLinksComponent, { + change, + pageInfo, + }); + [glPagination] = paginationLinks.$children; + [destinationComponent] = glPagination.$children; + }); + + afterEach(() => { + paginationLinks.$destroy(); + }); + + it('should provide translated text to GitLab UI pagination', () => { + Object.entries(translations).forEach(entry => { + expect(destinationComponent[entry[0]]).toBe(entry[1]); + }); + }); + + it('should pass change to GitLab UI pagination', () => { + expect(Object.is(glPagination.change, change)).toBe(true); + }); + + it('should pass page from pageInfo to GitLab UI pagination', () => { + expect(destinationComponent.value).toBe(pageInfo.page); + }); + + it('should pass per page from pageInfo to GitLab UI pagination', () => { + expect(destinationComponent.perPage).toBe(pageInfo.perPage); + }); + + it('should pass total items from pageInfo to GitLab UI pagination', () => { + expect(destinationComponent.totalRows).toBe(pageInfo.total); + }); +}); |