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); }); });