summaryrefslogtreecommitdiff
path: root/spec/frontend/ide/helpers.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/ide/helpers.js')
-rw-r--r--spec/frontend/ide/helpers.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/spec/frontend/ide/helpers.js b/spec/frontend/ide/helpers.js
new file mode 100644
index 00000000000..de839fa99ca
--- /dev/null
+++ b/spec/frontend/ide/helpers.js
@@ -0,0 +1,52 @@
+import * as pathUtils from 'path';
+import { decorateData } from '~/ide/stores/utils';
+import state from '~/ide/stores/state';
+import commitState from '~/ide/stores/modules/commit/state';
+import mergeRequestsState from '~/ide/stores/modules/merge_requests/state';
+import pipelinesState from '~/ide/stores/modules/pipelines/state';
+import branchesState from '~/ide/stores/modules/branches/state';
+import fileTemplatesState from '~/ide/stores/modules/file_templates/state';
+import paneState from '~/ide/stores/modules/pane/state';
+
+export const resetStore = store => {
+ const newState = {
+ ...state(),
+ commit: commitState(),
+ mergeRequests: mergeRequestsState(),
+ pipelines: pipelinesState(),
+ branches: branchesState(),
+ fileTemplates: fileTemplatesState(),
+ rightPane: paneState(),
+ };
+ store.replaceState(newState);
+};
+
+export const file = (name = 'name', id = name, type = '', parent = null) =>
+ decorateData({
+ id,
+ type,
+ icon: 'icon',
+ url: 'url',
+ name,
+ path: parent ? `${parent.path}/${name}` : name,
+ parentPath: parent ? parent.path : '',
+ lastCommit: {},
+ });
+
+export const createEntriesFromPaths = paths =>
+ paths
+ .map(path => ({
+ name: pathUtils.basename(path),
+ dir: pathUtils.dirname(path),
+ ext: pathUtils.extname(path),
+ }))
+ .reduce((entries, path, idx) => {
+ const { name } = path;
+ const parent = path.dir ? entries[path.dir] : null;
+ const type = path.ext ? 'blob' : 'tree';
+ const entry = file(name, (idx + 1).toString(), type, parent);
+ return {
+ [entry.path]: entry,
+ ...entries,
+ };
+ }, {});