diff options
author | Tim Zallmann <tzallmann@gitlab.com> | 2017-12-06 21:12:36 +0100 |
---|---|---|
committer | Tim Zallmann <tzallmann@gitlab.com> | 2017-12-19 12:26:02 +0100 |
commit | 5e70507c28be6ed794760b8c7d9eec257fea56ab (patch) | |
tree | 64849ffed258570706be008b89f375256c9726b1 | |
parent | 549261c9c9f2b0c9cc208f6658b35fa09188223b (diff) | |
download | gitlab-ce-5e70507c28be6ed794760b8c7d9eec257fea56ab.tar.gz |
Fixed Actions Spec
-rw-r--r-- | app/assets/javascripts/ide/index.js | 13 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/actions.js | 6 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/mutation_types.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/mutations.js | 5 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/state.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/utils.js | 2 | ||||
-rw-r--r-- | spec/javascripts/repo/components/ide_side_bar_spec.js (renamed from spec/javascripts/repo/components/repo_sidebar_spec.js) | 8 | ||||
-rw-r--r-- | spec/javascripts/repo/components/ide_spec.js (renamed from spec/javascripts/repo/components/repo_spec.js) | 6 | ||||
-rw-r--r-- | spec/javascripts/repo/stores/actions_spec.js | 87 | ||||
-rw-r--r-- | spec/javascripts/repo/stores/mutations_spec.js | 8 |
10 files changed, 70 insertions, 67 deletions
diff --git a/app/assets/javascripts/ide/index.js b/app/assets/javascripts/ide/index.js index 74ee2f14599..cba9da0dd20 100644 --- a/app/assets/javascripts/ide/index.js +++ b/app/assets/javascripts/ide/index.js @@ -36,7 +36,6 @@ function initIde(el) { }, canCommit: convertPermissionToBoolean(data.canCommit), onTopOfBranch: convertPermissionToBoolean(data.onTopOfBranch), - currentRef: data.ref, path: data.currentPath, isRoot: convertPermissionToBoolean(data.root), isInitialRoot: convertPermissionToBoolean(data.root), @@ -48,6 +47,7 @@ function initIde(el) { }); } +/* function initIdeEditButton(el) { return new Vue({ el, @@ -90,17 +90,18 @@ function initNewBranchForm() { }, }); } +*/ const ide = document.getElementById('ide'); -const editButton = document.querySelector('.editable-mode'); -const newDropdownHolder = document.querySelector('.js-new-dropdown'); +// const editButton = document.querySelector('.editable-mode'); +// const newDropdownHolder = document.querySelector('.js-new-dropdown'); Vue.use(Translate); initIde(ide); -initIdeEditButton(editButton); -initNewBranchForm(); -initNewDropdown(newDropdownHolder); +// initIdeEditButton(editButton); +// initNewBranchForm(); +// initNewDropdown(newDropdownHolder); const contextualSidebar = new ContextualSidebar(); contextualSidebar.bindEvents(); diff --git a/app/assets/javascripts/ide/stores/actions.js b/app/assets/javascripts/ide/stores/actions.js index fd9a4d975cf..8a2edfdcf64 100644 --- a/app/assets/javascripts/ide/stores/actions.js +++ b/app/assets/javascripts/ide/stores/actions.js @@ -83,8 +83,9 @@ export const commitChanges = ({ commit, state, dispatch, getters }, { payload, n return; } + const selectedProject = state.projects[state.currentProjectId]; const lastCommit = { - commit_path: `${state.project.url}/commit/${data.id}`, + commit_path: `${selectedProject.web_url}/commit/${data.id}`, commit: { message: data.message, authored_date: data.committed_date, @@ -96,7 +97,7 @@ export const commitChanges = ({ commit, state, dispatch, getters }, { payload, n if (newMr) { dispatch('redirectToUrl', `${state.endpoints.newMergeRequestUrl}${branch}`); } else { - commit(types.SET_COMMIT_REF, data.id); + // commit(types.SET_COMMIT_REF, data.id); getters.changedFiles.forEach((entry) => { commit(types.SET_LAST_COMMIT_DATA, { @@ -107,7 +108,6 @@ export const commitChanges = ({ commit, state, dispatch, getters }, { payload, n dispatch('discardAllChanges'); dispatch('closeAllFiles'); - dispatch('toggleEditMode'); window.scrollTo(0, 0); } diff --git a/app/assets/javascripts/ide/stores/mutation_types.js b/app/assets/javascripts/ide/stores/mutation_types.js index b0bab6f7269..c7194060293 100644 --- a/app/assets/javascripts/ide/stores/mutation_types.js +++ b/app/assets/javascripts/ide/stores/mutation_types.js @@ -1,6 +1,5 @@ export const SET_INITIAL_DATA = 'SET_INITIAL_DATA'; export const TOGGLE_LOADING = 'TOGGLE_LOADING'; -export const SET_COMMIT_REF = 'SET_COMMIT_REF'; export const SET_PARENT_TREE_URL = 'SET_PARENT_TREE_URL'; export const SET_ROOT = 'SET_ROOT'; export const SET_LAST_COMMIT_DATA = 'SET_LAST_COMMIT_DATA'; diff --git a/app/assets/javascripts/ide/stores/mutations.js b/app/assets/javascripts/ide/stores/mutations.js index 030f3bde00c..1ceb622d49c 100644 --- a/app/assets/javascripts/ide/stores/mutations.js +++ b/app/assets/javascripts/ide/stores/mutations.js @@ -33,11 +33,6 @@ export default { discardPopupOpen, }); }, - [types.SET_COMMIT_REF](state, ref) { - Object.assign(state, { - currentRef: ref, - }); - }, [types.SET_ROOT](state, isRoot) { Object.assign(state, { isRoot, diff --git a/app/assets/javascripts/ide/stores/state.js b/app/assets/javascripts/ide/stores/state.js index 488b06e6877..664a39ad2a0 100644 --- a/app/assets/javascripts/ide/stores/state.js +++ b/app/assets/javascripts/ide/stores/state.js @@ -3,7 +3,6 @@ export default () => ({ currentProjectId: '', currentBranchId: '', currentBlobView: 'repo-editor', - currentRef: '', discardPopupOpen: false, editMode: true, endpoints: {}, diff --git a/app/assets/javascripts/ide/stores/utils.js b/app/assets/javascripts/ide/stores/utils.js index 2e1bcb3a64a..7c6ec1fa8fa 100644 --- a/app/assets/javascripts/ide/stores/utils.js +++ b/app/assets/javascripts/ide/stores/utils.js @@ -91,7 +91,7 @@ export const getTree = state => (namespace, projectId, branch) => state.trees[`$ export const getTreeEntry = (store, treeId, path) => { const fileList = store.getters.treeList(treeId); - return fileList.find(file => file.path === path); + return fileList ? fileList.find(file => file.path === path) : null; }; export const findEntry = (tree, type, name) => tree.find( diff --git a/spec/javascripts/repo/components/repo_sidebar_spec.js b/spec/javascripts/repo/components/ide_side_bar_spec.js index 421ed2e68b4..1947a6a423d 100644 --- a/spec/javascripts/repo/components/repo_sidebar_spec.js +++ b/spec/javascripts/repo/components/ide_side_bar_spec.js @@ -1,15 +1,15 @@ import Vue from 'vue'; import store from '~/ide/stores'; -import repoSidebar from '~/ide/components/repo_sidebar.vue'; +import ideSidebar from '~/ide/components/ide_side_bar.vue'; import { file, resetStore } from '../helpers'; -describe('RepoSidebar', () => { +describe('IdeSidebar', () => { let vm; beforeEach(() => { - const RepoSidebar = Vue.extend(repoSidebar); + const IdeSidebar = Vue.extend(ideSidebar); - vm = new RepoSidebar({ + vm = new IdeSidebar({ store, }); diff --git a/spec/javascripts/repo/components/repo_spec.js b/spec/javascripts/repo/components/ide_spec.js index 60d771caf7d..ead4a799a75 100644 --- a/spec/javascripts/repo/components/repo_spec.js +++ b/spec/javascripts/repo/components/ide_spec.js @@ -1,14 +1,14 @@ import Vue from 'vue'; import store from '~/ide/stores'; -import repo from '~/ide/components/repo.vue'; +import ide from '~/ide/components/ide.vue'; import { createComponentWithStore } from '../../helpers/vue_mount_component_helper'; import { file, resetStore } from '../helpers'; -describe('repo component', () => { +describe('ide component', () => { let vm; beforeEach(() => { - const Component = Vue.extend(repo); + const Component = Vue.extend(ide); vm = createComponentWithStore(Component, store).$mount(); }); diff --git a/spec/javascripts/repo/stores/actions_spec.js b/spec/javascripts/repo/stores/actions_spec.js index 75030dfe744..a826053f0a8 100644 --- a/spec/javascripts/repo/stores/actions_spec.js +++ b/spec/javascripts/repo/stores/actions_spec.js @@ -4,7 +4,7 @@ import store from '~/ide/stores'; import service from '~/ide/services'; import { resetStore, file } from '../helpers'; -describe('Multi-file store actions', () => { +fdescribe('Multi-file store actions', () => { afterEach(() => { resetStore(store); }); @@ -110,6 +110,7 @@ describe('Multi-file store actions', () => { it('can force closed if there are changed files', (done) => { store.state.editMode = true; + store.state.openFiles.push(file()); store.state.openFiles[0].changed = true; @@ -125,7 +126,6 @@ describe('Multi-file store actions', () => { it('discards file changes', (done) => { const f = file(); store.state.editMode = true; - store.state.tree.push(f); store.state.openFiles.push(f); f.changed = true; @@ -141,7 +141,6 @@ describe('Multi-file store actions', () => { describe('toggleBlobView', () => { it('sets edit mode view if in edit mode', (done) => { - store.state.editMode = true; store.dispatch('toggleBlobView') .then(() => { @@ -153,6 +152,8 @@ describe('Multi-file store actions', () => { }); it('sets preview mode view if not in edit mode', (done) => { + store.state.editMode = false; + store.dispatch('toggleBlobView') .then(() => { expect(store.state.currentBlobView).toBe('repo-preview'); @@ -165,9 +166,15 @@ describe('Multi-file store actions', () => { describe('checkCommitStatus', () => { beforeEach(() => { - store.state.project.id = 2; - store.state.currentBranch = 'master'; - store.state.currentRef = '1'; + store.state.currentProjectId = 'abcproject'; + store.state.currentBranchId = 'master'; + store.state.projects.abcproject = { + branches: { + master: { + workingReference: '1', + }, + }, + }; }); it('calls service', (done) => { @@ -177,7 +184,7 @@ describe('Multi-file store actions', () => { store.dispatch('checkCommitStatus') .then(() => { - expect(service.getBranchData).toHaveBeenCalledWith(2, 'master'); + expect(service.getBranchData).toHaveBeenCalledWith('abcproject', 'master'); done(); }) @@ -221,7 +228,16 @@ describe('Multi-file store actions', () => { document.body.innerHTML += '<div class="flash-container"></div>'; - store.state.project.id = 123; + store.state.currentProjectId = 'abcproject'; + store.state.currentBranchId = 'master'; + store.state.projects.abcproject = { + branches: { + master: { + workingReference: '1', + }, + }, + }; + payload = { branch: 'master', }; @@ -248,7 +264,7 @@ describe('Multi-file store actions', () => { it('calls service', (done) => { store.dispatch('commitChanges', { payload, newMr: false }) .then(() => { - expect(service.commit).toHaveBeenCalledWith(123, payload); + expect(service.commit).toHaveBeenCalledWith('abcproject', payload); done(); }).catch(done.fail); @@ -284,17 +300,6 @@ describe('Multi-file store actions', () => { }).catch(done.fail); }); - it('toggles edit mode', (done) => { - store.state.editMode = true; - - store.dispatch('commitChanges', { payload, newMr: false }) - .then(() => { - expect(store.state.editMode).toBeFalsy(); - - done(); - }).catch(done.fail); - }); - it('closes all files', (done) => { store.state.openFiles.push(file()); store.state.openFiles[0].opened = true; @@ -317,15 +322,6 @@ describe('Multi-file store actions', () => { }).catch(done.fail); }); - it('updates commit ref', (done) => { - store.dispatch('commitChanges', { payload, newMr: false }) - .then(() => { - expect(store.state.currentRef).toBe('123456'); - - done(); - }).catch(done.fail); - }); - it('redirects to new merge request page', (done) => { spyOn(urlUtils, 'visitUrl'); @@ -363,15 +359,30 @@ describe('Multi-file store actions', () => { }); describe('createTempEntry', () => { + beforeEach(() => { + store.state.trees['abcproject/mybranch'] = { + tree: [], + }; + store.state.projects.abcproject = { + web_url: '', + }; + }); + it('creates a temp tree', (done) => { + const projectTree = store.state.trees['abcproject/mybranch']; + store.dispatch('createTempEntry', { + projectId: 'abcproject', + branchId: 'mybranch', + parent: projectTree, name: 'test', type: 'tree', }) .then(() => { - expect(store.state.tree.length).toBe(1); - expect(store.state.tree[0].tempFile).toBeTruthy(); - expect(store.state.tree[0].type).toBe('tree'); + const baseTree = projectTree.tree; + expect(baseTree.length).toBe(1); + expect(baseTree[0].tempFile).toBeTruthy(); + expect(baseTree[0].type).toBe('tree'); done(); }) @@ -379,14 +390,20 @@ describe('Multi-file store actions', () => { }); it('creates temp file', (done) => { + const projectTree = store.state.trees['abcproject/mybranch']; + store.dispatch('createTempEntry', { + projectId: 'abcproject', + branchId: 'mybranch', + parent: projectTree, name: 'test', type: 'blob', }) .then(() => { - expect(store.state.tree.length).toBe(1); - expect(store.state.tree[0].tempFile).toBeTruthy(); - expect(store.state.tree[0].type).toBe('blob'); + const baseTree = projectTree.tree; + expect(baseTree.length).toBe(1); + expect(baseTree[0].tempFile).toBeTruthy(); + expect(baseTree[0].type).toBe('blob'); done(); }) diff --git a/spec/javascripts/repo/stores/mutations_spec.js b/spec/javascripts/repo/stores/mutations_spec.js index 63782c41f48..75f5662eb11 100644 --- a/spec/javascripts/repo/stores/mutations_spec.js +++ b/spec/javascripts/repo/stores/mutations_spec.js @@ -85,14 +85,6 @@ describe('Multi-file store mutations', () => { }); }); - describe('SET_COMMIT_REF', () => { - it('sets currentRef', () => { - mutations.SET_COMMIT_REF(localState, '123'); - - expect(localState.currentRef).toBe('123'); - }); - }); - describe('SET_ROOT', () => { it('sets isRoot & initialRoot', () => { mutations.SET_ROOT(localState, true); |