diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-16 18:08:22 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-16 18:08:22 +0000 |
commit | 123c68a7cf788ace140e57e478a12c5b7ac893ae (patch) | |
tree | b36e565ecd895ee46c1713f3734308cfce0e6ba9 /spec/frontend | |
parent | 862d225ca0d8eb452e56b8fe5a0109aac796e872 (diff) | |
download | gitlab-ce-123c68a7cf788ace140e57e478a12c5b7ac893ae.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend')
-rw-r--r-- | spec/frontend/error_tracking/components/error_tracking_list_spec.js | 82 | ||||
-rw-r--r-- | spec/frontend/error_tracking/store/list/actions_spec.js | 1 | ||||
-rw-r--r-- | spec/frontend/notes/mock_data.js | 26 |
3 files changed, 94 insertions, 15 deletions
diff --git a/spec/frontend/error_tracking/components/error_tracking_list_spec.js b/spec/frontend/error_tracking/components/error_tracking_list_spec.js index 9ec3d42f0d4..581581405b6 100644 --- a/spec/frontend/error_tracking/components/error_tracking_list_spec.js +++ b/spec/frontend/error_tracking/components/error_tracking_list_spec.js @@ -8,8 +8,8 @@ import { GlFormInput, GlDropdown, GlDropdownItem, + GlPagination, } from '@gitlab/ui'; -import createListState from '~/error_tracking/store/list/state'; import ErrorTrackingList from '~/error_tracking/components/error_tracking_list.vue'; import errorsList from './list_mock.json'; @@ -27,13 +27,16 @@ describe('ErrorTrackingList', () => { const findRecentSearchesDropdown = () => wrapper.find('.filtered-search-history-dropdown-wrapper'); const findLoadingIcon = () => wrapper.find(GlLoadingIcon); + const findPagination = () => wrapper.find(GlPagination); function mountComponent({ errorTrackingEnabled = true, userCanEnableErrorTracking = true, + sync = true, stubs = { 'gl-link': GlLink, 'gl-table': GlTable, + 'gl-pagination': GlPagination, 'gl-dropdown': GlDropdown, 'gl-dropdown-item': GlDropdownItem, }, @@ -41,6 +44,7 @@ describe('ErrorTrackingList', () => { wrapper = shallowMount(ErrorTrackingList, { localVue, store, + sync, propsData: { indexPath: '/path', enableErrorTrackingLink: '/link', @@ -69,7 +73,20 @@ describe('ErrorTrackingList', () => { sortByField: jest.fn(), }; - const state = createListState(); + const state = { + indexPath: '', + recentSearches: [], + errors: errorsList, + loading: true, + pagination: { + previous: { + cursor: 'previousCursor', + }, + next: { + cursor: 'nextCursor', + }, + }, + }; store = new Vuex.Store({ modules: { @@ -252,4 +269,65 @@ describe('ErrorTrackingList', () => { }); }); }); + + describe('When pagination is not required', () => { + beforeEach(() => { + store.state.list.pagination = {}; + mountComponent(); + }); + + it('should not render the pagination component', () => { + expect(findPagination().exists()).toBe(false); + }); + }); + + describe('When pagination is required', () => { + describe('and the user is on the first page', () => { + beforeEach(() => { + mountComponent({ sync: false }); + }); + + it('shows a disabled Prev button', () => { + expect(wrapper.find('.prev-page-item').attributes('aria-disabled')).toBe('true'); + }); + }); + + describe('and the user is not on the first page', () => { + describe('and the previous button is clicked', () => { + beforeEach(() => { + mountComponent({ sync: false }); + wrapper.setData({ pageValue: 2 }); + }); + + it('fetches the previous page of results', () => { + expect(wrapper.find('.prev-page-item').attributes('aria-disabled')).toBe(undefined); + wrapper.vm.goToPrevPage(); + expect(actions.startPolling).toHaveBeenCalledTimes(2); + expect(actions.startPolling).toHaveBeenLastCalledWith( + expect.anything(), + '/path?cursor=previousCursor', + undefined, + ); + }); + }); + + describe('and the next page button is clicked', () => { + beforeEach(() => { + mountComponent({ sync: false }); + }); + + it('fetches the next page of results', () => { + window.scrollTo = jest.fn(); + findPagination().vm.$emit('input', 2); + expect(window.scrollTo).toHaveBeenCalledWith(0, 0); + expect(actions.startPolling).toHaveBeenCalledTimes(2); + expect(actions.startPolling).toHaveBeenLastCalledWith( + expect.anything(), + '/path?cursor=nextCursor', + undefined, + ); + }); + }); + }); + }); }); diff --git a/spec/frontend/error_tracking/store/list/actions_spec.js b/spec/frontend/error_tracking/store/list/actions_spec.js index fb659db9ab5..7906738f5b0 100644 --- a/spec/frontend/error_tracking/store/list/actions_spec.js +++ b/spec/frontend/error_tracking/store/list/actions_spec.js @@ -30,6 +30,7 @@ describe('error tracking actions', () => { {}, [ { type: types.SET_LOADING, payload: true }, + { type: types.SET_PAGINATION, payload: payload.pagination }, { type: types.SET_ERRORS, payload: payload.errors }, { type: types.SET_LOADING, payload: false }, ], diff --git a/spec/frontend/notes/mock_data.js b/spec/frontend/notes/mock_data.js index 01cb70d395c..9ed79c61c22 100644 --- a/spec/frontend/notes/mock_data.js +++ b/spec/frontend/notes/mock_data.js @@ -52,7 +52,7 @@ export const noteableDataMock = { time_estimate: 0, title: '14', total_time_spent: 0, - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', updated_at: '2017-08-04T09:53:01.226Z', updated_by_id: 1, web_url: '/gitlab-org/gitlab-foss/issues/26', @@ -101,8 +101,8 @@ export const individualNote = { { name: 'art', user: { id: 1, name: 'Root', username: 'root' } }, ], toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji', - noteable_note_url: '/group/project/merge_requests/1#note_1', - note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', + note_url: '/group/project/-/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1', path: '/gitlab-org/gitlab-foss/notes/1390', @@ -161,8 +161,8 @@ export const note = { }, ], toggle_award_path: '/gitlab-org/gitlab-foss/notes/546/toggle_award_emoji', - note_url: '/group/project/merge_requests/1#note_1', - noteable_note_url: '/group/project/merge_requests/1#note_1', + note_url: '/group/project/-/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1', path: '/gitlab-org/gitlab-foss/notes/546', @@ -205,7 +205,7 @@ export const discussionMock = { discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1', emoji_awardable: true, award_emoji: [], - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', toggle_award_path: '/gitlab-org/gitlab-foss/notes/1395/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1', @@ -253,7 +253,7 @@ export const discussionMock = { emoji_awardable: true, award_emoji: [], toggle_award_path: '/gitlab-org/gitlab-foss/notes/1396/toggle_award_emoji', - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1', path: '/gitlab-org/gitlab-foss/notes/1396', @@ -299,7 +299,7 @@ export const discussionMock = { discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1', emoji_awardable: true, award_emoji: [], - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', toggle_award_path: '/gitlab-org/gitlab-foss/notes/1437/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1', @@ -349,7 +349,7 @@ export const loggedOutnoteableData = { can_create_note: false, can_update: false, }, - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', create_note_path: '/gitlab-org/gitlab-foss/notes?target_id=98&target_type=issue', preview_note_path: '/gitlab-org/gitlab-foss/preview_markdown?target_id=98&target_type=Issue', }; @@ -483,7 +483,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { }, }, ], - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', toggle_award_path: '/gitlab-org/gitlab-foss/notes/1390/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1', @@ -528,7 +528,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790', emoji_awardable: true, award_emoji: [], - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', toggle_award_path: '/gitlab-org/gitlab-foss/notes/1391/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1', @@ -583,7 +583,7 @@ export const INDIVIDUAL_NOTE_RESPONSE_MAP = { discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052', emoji_awardable: true, award_emoji: [], - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1', @@ -635,7 +635,7 @@ export const DISCUSSION_NOTE_RESPONSE_MAP = { emoji_awardable: true, award_emoji: [], toggle_award_path: '/gitlab-org/gitlab-foss/notes/1471/toggle_award_emoji', - noteable_note_url: '/group/project/merge_requests/1#note_1', + noteable_note_url: '/group/project/-/merge_requests/1#note_1', report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1', path: '/gitlab-org/gitlab-foss/notes/1471', |