diff options
Diffstat (limited to 'spec/frontend/ide/stores')
-rw-r--r-- | spec/frontend/ide/stores/actions/file_spec.js | 14 | ||||
-rw-r--r-- | spec/frontend/ide/stores/getters_spec.js | 10 | ||||
-rw-r--r-- | spec/frontend/ide/stores/modules/commit/actions_spec.js | 82 | ||||
-rw-r--r-- | spec/frontend/ide/stores/mutations/file_spec.js | 26 | ||||
-rw-r--r-- | spec/frontend/ide/stores/utils_spec.js | 10 |
5 files changed, 82 insertions, 60 deletions
diff --git a/spec/frontend/ide/stores/actions/file_spec.js b/spec/frontend/ide/stores/actions/file_spec.js index 974c0715c06..8f7fcc25cf0 100644 --- a/spec/frontend/ide/stores/actions/file_spec.js +++ b/spec/frontend/ide/stores/actions/file_spec.js @@ -291,6 +291,20 @@ describe('IDE store file actions', () => { expect(store.state.openFiles[0].name).toBe(localFile.name); }); }); + + it('does not toggle loading if toggleLoading=false', () => { + expect(localFile.loading).toBe(false); + + return store + .dispatch('getFileData', { + path: localFile.path, + makeFileActive: false, + toggleLoading: false, + }) + .then(() => { + expect(localFile.loading).toBe(true); + }); + }); }); describe('Re-named success', () => { diff --git a/spec/frontend/ide/stores/getters_spec.js b/spec/frontend/ide/stores/getters_spec.js index e24f08fa802..5ae87f5f9cd 100644 --- a/spec/frontend/ide/stores/getters_spec.js +++ b/spec/frontend/ide/stores/getters_spec.js @@ -449,16 +449,16 @@ describe('IDE store getters', () => { describe('getAvailableFileName', () => { it.each` path | newPath - ${'foo'} | ${'foo_1'} + ${'foo'} | ${'foo-1'} ${'foo__93.png'} | ${'foo__94.png'} - ${'foo/bar.png'} | ${'foo/bar_1.png'} + ${'foo/bar.png'} | ${'foo/bar-1.png'} ${'foo/bar--34.png'} | ${'foo/bar--35.png'} ${'foo/bar 2.png'} | ${'foo/bar 3.png'} ${'foo/bar-621.png'} | ${'foo/bar-622.png'} - ${'jquery.min.js'} | ${'jquery_1.min.js'} + ${'jquery.min.js'} | ${'jquery-1.min.js'} ${'my_spec_22.js.snap'} | ${'my_spec_23.js.snap'} - ${'subtitles5.mp4.srt'} | ${'subtitles_6.mp4.srt'} - ${'sample_file.mp3'} | ${'sample_file_1.mp3'} + ${'subtitles5.mp4.srt'} | ${'subtitles-6.mp4.srt'} + ${'sample-file.mp3'} | ${'sample-file-1.mp3'} ${'Screenshot 2020-05-26 at 10.53.08 PM.png'} | ${'Screenshot 2020-05-26 at 11.53.08 PM.png'} `('suffixes the path with a number if the path already exists', ({ path, newPath }) => { localState.entries[path] = file(); diff --git a/spec/frontend/ide/stores/modules/commit/actions_spec.js b/spec/frontend/ide/stores/modules/commit/actions_spec.js index babc50e54f1..cfe2bddf76c 100644 --- a/spec/frontend/ide/stores/modules/commit/actions_spec.js +++ b/spec/frontend/ide/stores/modules/commit/actions_spec.js @@ -76,59 +76,38 @@ describe('IDE commit module actions', () => { .then(done) .catch(done.fail); }); + }); - it('sets shouldCreateMR to true if "Create new MR" option is visible', done => { - Object.assign(store.state, { - shouldHideNewMrOption: false, - }); + describe('updateBranchName', () => { + let originalGon; - testAction( - actions.updateCommitAction, - {}, - store.state, - [ - { - type: mutationTypes.UPDATE_COMMIT_ACTION, - payload: { commitAction: expect.anything() }, - }, - { type: mutationTypes.TOGGLE_SHOULD_CREATE_MR, payload: true }, - ], - [], - done, - ); + beforeEach(() => { + originalGon = window.gon; + window.gon = { current_username: 'johndoe' }; + + store.state.currentBranchId = 'master'; }); - it('sets shouldCreateMR to false if "Create new MR" option is hidden', done => { - Object.assign(store.state, { - shouldHideNewMrOption: true, - }); + afterEach(() => { + window.gon = originalGon; + }); - testAction( - actions.updateCommitAction, - {}, - store.state, - [ - { - type: mutationTypes.UPDATE_COMMIT_ACTION, - payload: { commitAction: expect.anything() }, - }, - { type: mutationTypes.TOGGLE_SHOULD_CREATE_MR, payload: false }, - ], - [], - done, - ); + it('updates store with new branch name', async () => { + await store.dispatch('commit/updateBranchName', 'branch-name'); + + expect(store.state.commit.newBranchName).toBe('branch-name'); }); }); - describe('updateBranchName', () => { - it('updates store with new branch name', done => { - store - .dispatch('commit/updateBranchName', 'branch-name') - .then(() => { - expect(store.state.commit.newBranchName).toBe('branch-name'); - }) - .then(done) - .catch(done.fail); + describe('addSuffixToBranchName', () => { + it('adds suffix to branchName', async () => { + jest.spyOn(Math, 'random').mockReturnValue(0.391352525); + + store.state.commit.newBranchName = 'branch-name'; + + await store.dispatch('commit/addSuffixToBranchName'); + + expect(store.state.commit.newBranchName).toBe('branch-name-39135'); }); }); @@ -318,13 +297,16 @@ describe('IDE commit module actions', () => { currentBranchId: 'master', projects: { abcproject: { + default_branch: 'master', web_url: 'webUrl', branches: { master: { + name: 'master', workingReference: '1', commit: { id: TEST_COMMIT_SHA, }, + can_push: true, }, }, userPermissions: { @@ -499,6 +481,16 @@ describe('IDE commit module actions', () => { .catch(done.fail); }); + it('does not redirect to merge request page if shouldCreateMR is checked, but branch is the default branch', async () => { + jest.spyOn(eventHub, '$on').mockImplementation(); + + store.state.commit.commitAction = consts.COMMIT_TO_CURRENT_BRANCH; + store.state.commit.shouldCreateMR = true; + + await store.dispatch('commit/commitChanges'); + expect(visitUrl).not.toHaveBeenCalled(); + }); + it('resets changed files before redirecting', () => { jest.spyOn(eventHub, '$on').mockImplementation(); diff --git a/spec/frontend/ide/stores/mutations/file_spec.js b/spec/frontend/ide/stores/mutations/file_spec.js index b53e40be980..d303de6e9ef 100644 --- a/spec/frontend/ide/stores/mutations/file_spec.js +++ b/spec/frontend/ide/stores/mutations/file_spec.js @@ -39,20 +39,34 @@ describe('IDE store file mutations', () => { }); describe('TOGGLE_FILE_OPEN', () => { - beforeEach(() => { + it('adds into opened files', () => { mutations.TOGGLE_FILE_OPEN(localState, localFile.path); - }); - it('adds into opened files', () => { expect(localFile.opened).toBeTruthy(); expect(localState.openFiles.length).toBe(1); }); - it('removes from opened files', () => { + describe('if already open', () => { + it('removes from opened files', () => { + mutations.TOGGLE_FILE_OPEN(localState, localFile.path); + mutations.TOGGLE_FILE_OPEN(localState, localFile.path); + + expect(localFile.opened).toBeFalsy(); + expect(localState.openFiles.length).toBe(0); + }); + }); + + it.each` + entry | loading + ${{ opened: false }} | ${true} + ${{ opened: false, tempFile: true }} | ${false} + ${{ opened: true }} | ${false} + `('for state: $entry, sets loading=$loading', ({ entry, loading }) => { + Object.assign(localFile, entry); + mutations.TOGGLE_FILE_OPEN(localState, localFile.path); - expect(localFile.opened).toBeFalsy(); - expect(localState.openFiles.length).toBe(0); + expect(localFile.loading).toBe(loading); }); }); diff --git a/spec/frontend/ide/stores/utils_spec.js b/spec/frontend/ide/stores/utils_spec.js index d1eb4304c79..b185013050e 100644 --- a/spec/frontend/ide/stores/utils_spec.js +++ b/spec/frontend/ide/stores/utils_spec.js @@ -46,7 +46,7 @@ describe('Multi-file store utils', () => { path: 'added', tempFile: true, content: 'new file content', - rawPath: 'data:image/png;base64,abc', + rawPath: 'blob:https://gitlab.com/048c7ac1-98de-4a37-ab1b-0206d0ea7e1b', lastCommitSha: '123456789', }, { ...file('deletedFile'), path: 'deletedFile', deleted: true }, @@ -77,7 +77,8 @@ describe('Multi-file store utils', () => { { action: commitActionTypes.create, file_path: 'added', - content: 'new file content', + // atob("new file content") + content: 'bmV3IGZpbGUgY29udGVudA==', encoding: 'base64', last_commit_id: '123456789', previous_path: undefined, @@ -117,7 +118,7 @@ describe('Multi-file store utils', () => { path: 'added', tempFile: true, content: 'new file content', - rawPath: 'data:image/png;base64,abc', + rawPath: 'blob:https://gitlab.com/048c7ac1-98de-4a37-ab1b-0206d0ea7e1b', lastCommitSha: '123456789', }, ], @@ -148,7 +149,8 @@ describe('Multi-file store utils', () => { { action: commitActionTypes.create, file_path: 'added', - content: 'new file content', + // atob("new file content") + content: 'bmV3IGZpbGUgY29udGVudA==', encoding: 'base64', last_commit_id: '123456789', previous_path: undefined, |