diff options
author | Paul Slaughter <pslaughter@gitlab.com> | 2019-03-07 09:22:05 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2019-03-07 09:22:05 +0000 |
commit | c49d4a4985c806aa62dcd4899013143484b5d3c6 (patch) | |
tree | ad43a15e05364b9e24c3eceb9de37b8e37afb51a /spec/javascripts/ide/stores/actions | |
parent | 80fea82f3ab6afd486884020710eb01c06b048d9 (diff) | |
download | gitlab-ce-c49d4a4985c806aa62dcd4899013143484b5d3c6.tar.gz |
Improve files_decorator performance
**How?**
Previously the files_decorator inserted parent folders inefficiently.
It started at the first part and ensured each was inserted.
Since the file entries are given to use in alphabetical order, we can
start at the last part of the blob's parents. If this exists, we can
short circuit and be done inserting parents.
**What else?**
- Improve performance of decorateData. The object spread operator is
not needed because the object is brand new.
Diffstat (limited to 'spec/javascripts/ide/stores/actions')
-rw-r--r-- | spec/javascripts/ide/stores/actions/tree_spec.js | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/spec/javascripts/ide/stores/actions/tree_spec.js b/spec/javascripts/ide/stores/actions/tree_spec.js index bd41e87bf0e..fbb676aab33 100644 --- a/spec/javascripts/ide/stores/actions/tree_spec.js +++ b/spec/javascripts/ide/stores/actions/tree_spec.js @@ -20,6 +20,7 @@ describe('Multi-file store tree actions', () => { }; beforeEach(() => { + jasmine.clock().install(); spyOn(router, 'push'); mock = new MockAdapter(axios); @@ -37,6 +38,7 @@ describe('Multi-file store tree actions', () => { }); afterEach(() => { + jasmine.clock().uninstall(); mock.restore(); resetStore(store); }); @@ -70,6 +72,11 @@ describe('Multi-file store tree actions', () => { 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-ce/merge_requests/25700 + jasmine.clock().tick(1); + }) + .then(() => { projectTree = store.state.trees['abcproject/master']; expect(projectTree.tree.length).toBe(2); |