diff options
author | Phil Hughes <me@iamphill.com> | 2018-05-14 16:30:52 +0100 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2018-05-22 11:11:36 +0100 |
commit | ba90742631a5e1a0d1edc546d5d49b59210642bf (patch) | |
tree | 67b8e75ae82003cf502ba7303bf6d586224949cb /spec/javascripts/ide/stores/modules/pipelines/actions_spec.js | |
parent | 50985f54baf9a4d7e840e22ce8914f0bc919f5d8 (diff) | |
download | gitlab-ce-ba90742631a5e1a0d1edc546d5d49b59210642bf.tar.gz |
group jobs into stageside-jobs-list
Diffstat (limited to 'spec/javascripts/ide/stores/modules/pipelines/actions_spec.js')
-rw-r--r-- | spec/javascripts/ide/stores/modules/pipelines/actions_spec.js | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/spec/javascripts/ide/stores/modules/pipelines/actions_spec.js b/spec/javascripts/ide/stores/modules/pipelines/actions_spec.js index b7f04642dcd..85fbcf8084b 100644 --- a/spec/javascripts/ide/stores/modules/pipelines/actions_spec.js +++ b/spec/javascripts/ide/stores/modules/pipelines/actions_spec.js @@ -182,13 +182,21 @@ describe('IDE pipelines actions', () => { }); describe('fetchJobs', () => { + let page = ''; + beforeEach(() => { mockedState.latestPipeline = pipelines[0]; }); describe('success', () => { beforeEach(() => { - mock.onGet(/\/api\/v4\/projects\/(.*)\/pipelines\/(.*)\/jobs/).replyOnce(200, jobs); + mock.onGet(/\/api\/v4\/projects\/(.*)\/pipelines\/(.*)\/jobs/).replyOnce(() => [ + 200, + jobs, + { + 'x-next-page': page, + }, + ]); }); it('dispatches request', done => { @@ -213,12 +221,51 @@ describe('IDE pipelines actions', () => { ); }); + it('dispatches twice for both pages', done => { + page = '2'; + + testAction( + fetchJobs, + null, + mockedState, + [], + [ + { type: 'requestJobs' }, + { type: 'receiveJobsSuccess', payload: jobs }, + { type: 'fetchJobs', payload: '2' }, + { type: 'requestJobs' }, + { type: 'receiveJobsSuccess', payload: jobs }, + ], + done, + ); + }); + it('calls axios with correct URL', () => { const apiSpy = spyOn(axios, 'get').and.callThrough(); fetchJobs({ dispatch() {}, state: mockedState, rootState: mockedState }); - expect(apiSpy).toHaveBeenCalledWith('/api/v4/projects/test%2Fproject/pipelines/1/jobs'); + expect(apiSpy).toHaveBeenCalledWith('/api/v4/projects/test%2Fproject/pipelines/1/jobs', { + params: { page: '1' }, + }); + }); + + it('calls axios with page next page', () => { + const apiSpy = spyOn(axios, 'get').and.callThrough(); + + fetchJobs({ dispatch() {}, state: mockedState, rootState: mockedState }); + + expect(apiSpy).toHaveBeenCalledWith('/api/v4/projects/test%2Fproject/pipelines/1/jobs', { + params: { page: '1' }, + }); + + page = '2'; + + fetchJobs({ dispatch() {}, state: mockedState, rootState: mockedState }, page); + + expect(apiSpy).toHaveBeenCalledWith('/api/v4/projects/test%2Fproject/pipelines/1/jobs', { + params: { page: '2' }, + }); }); }); |