Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/javascripts/ide/stores/actions/tree_spec.js')
-rw-r--r--spec/javascripts/ide/stores/actions/tree_spec.js216
1 files changed, 0 insertions, 216 deletions
diff --git a/spec/javascripts/ide/stores/actions/tree_spec.js b/spec/javascripts/ide/stores/actions/tree_spec.js
deleted file mode 100644
index 2201a3b4b57..00000000000
--- a/spec/javascripts/ide/stores/actions/tree_spec.js
+++ /dev/null
@@ -1,216 +0,0 @@
-import MockAdapter from 'axios-mock-adapter';
-import testAction from 'spec/helpers/vuex_action_helper';
-import { showTreeEntry, getFiles, setDirectoryData } from '~/ide/stores/actions/tree';
-import * as types from '~/ide/stores/mutation_types';
-import axios from '~/lib/utils/axios_utils';
-import store from '~/ide/stores';
-import service from '~/ide/services';
-import router from '~/ide/ide_router';
-import { file, resetStore, createEntriesFromPaths } from '../../helpers';
-
-describe('Multi-file store tree actions', () => {
- let projectTree;
- let mock;
-
- const basicCallParameters = {
- endpoint: 'rootEndpoint',
- projectId: 'abcproject',
- branch: 'master',
- branchId: 'master',
- ref: '12345678',
- };
-
- beforeEach(() => {
- jasmine.clock().install();
- spyOn(router, 'push');
-
- mock = new MockAdapter(axios);
-
- store.state.currentProjectId = 'abcproject';
- store.state.currentBranchId = 'master';
- store.state.projects.abcproject = {
- web_url: '',
- path_with_namespace: 'foo/abcproject',
- };
- });
-
- afterEach(() => {
- jasmine.clock().uninstall();
- mock.restore();
- resetStore(store);
- });
-
- describe('getFiles', () => {
- describe('success', () => {
- beforeEach(() => {
- spyOn(service, 'getFiles').and.callThrough();
-
- mock
- .onGet(/(.*)/)
- .replyOnce(200, [
- 'file.txt',
- 'folder/fileinfolder.js',
- 'folder/subfolder/fileinsubfolder.js',
- ]);
- });
-
- it('calls service getFiles', done => {
- store
- .dispatch('getFiles', basicCallParameters)
- .then(() => {
- expect(service.getFiles).toHaveBeenCalledWith('foo/abcproject', '12345678');
-
- done();
- })
- .catch(done.fail);
- });
-
- it('adds data into tree', done => {
- store
- .dispatch('getFiles', basicCallParameters)
- .then(() => {
- // The populating of the tree is deferred for performance reasons.
- // See this merge request for details: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/25700
- jasmine.clock().tick(1);
- })
- .then(() => {
- projectTree = store.state.trees['abcproject/master'];
-
- expect(projectTree.tree.length).toBe(2);
- expect(projectTree.tree[0].type).toBe('tree');
- expect(projectTree.tree[0].tree[1].name).toBe('fileinfolder.js');
- expect(projectTree.tree[1].type).toBe('blob');
- expect(projectTree.tree[0].tree[0].tree[0].type).toBe('blob');
- expect(projectTree.tree[0].tree[0].tree[0].name).toBe('fileinsubfolder.js');
-
- done();
- })
- .catch(done.fail);
- });
- });
-
- describe('error', () => {
- it('dispatches error action', done => {
- const dispatch = jasmine.createSpy('dispatchSpy');
-
- store.state.projects = {
- 'abc/def': {
- web_url: `${gl.TEST_HOST}/files`,
- branches: {
- 'master-testing': {
- commit: {
- id: '12345',
- },
- },
- },
- },
- };
- const getters = {
- findBranch: () => store.state.projects['abc/def'].branches['master-testing'],
- };
-
- mock.onGet(/(.*)/).replyOnce(500);
-
- getFiles(
- {
- commit() {},
- dispatch,
- state: store.state,
- getters,
- },
- {
- projectId: 'abc/def',
- branchId: 'master-testing',
- },
- )
- .then(done.fail)
- .catch(() => {
- expect(dispatch).toHaveBeenCalledWith('setErrorMessage', {
- text: 'An error occurred while loading all the files.',
- action: jasmine.any(Function),
- actionText: 'Please try again',
- actionPayload: { projectId: 'abc/def', branchId: 'master-testing' },
- });
- done();
- });
- });
- });
- });
-
- describe('toggleTreeOpen', () => {
- let tree;
-
- beforeEach(() => {
- tree = file('testing', '1', 'tree');
- store.state.entries[tree.path] = tree;
- });
-
- it('toggles the tree open', done => {
- store
- .dispatch('toggleTreeOpen', tree.path)
- .then(() => {
- expect(tree.opened).toBeTruthy();
-
- done();
- })
- .catch(done.fail);
- });
- });
-
- describe('showTreeEntry', () => {
- beforeEach(() => {
- const paths = [
- 'grandparent',
- 'ancestor',
- 'grandparent/parent',
- 'grandparent/aunt',
- 'grandparent/parent/child.txt',
- 'grandparent/aunt/cousing.txt',
- ];
-
- Object.assign(store.state.entries, createEntriesFromPaths(paths));
- });
-
- it('opens the parents', done => {
- testAction(
- showTreeEntry,
- 'grandparent/parent/child.txt',
- store.state,
- [{ type: types.SET_TREE_OPEN, payload: 'grandparent/parent' }],
- [{ type: 'showTreeEntry', payload: 'grandparent/parent' }],
- done,
- );
- });
- });
-
- describe('setDirectoryData', () => {
- it('sets tree correctly if there are no opened files yet', done => {
- const treeFile = file({ name: 'README.md' });
- store.state.trees['abcproject/master'] = {};
-
- testAction(
- setDirectoryData,
- { projectId: 'abcproject', branchId: 'master', treeList: [treeFile] },
- store.state,
- [
- {
- type: types.SET_DIRECTORY_DATA,
- payload: {
- treePath: 'abcproject/master',
- data: [treeFile],
- },
- },
- {
- type: types.TOGGLE_LOADING,
- payload: {
- entry: {},
- forceValue: false,
- },
- },
- ],
- [],
- done,
- );
- });
- });
-});