diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2018-07-16 21:33:49 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2018-07-16 21:33:49 +0100 |
commit | cf9a0f2891e81b5142665c75ee9fd15ff7e55e69 (patch) | |
tree | b1561d68e58de07098817e615fdd706015bbc476 /spec/javascripts/performance_bar/index_spec.js | |
parent | cd1b20ae93738b61f0aa074460e2b62b03c1e938 (diff) | |
parent | 7f0431dd8550ac9d229d1383c03386c1634d015f (diff) | |
download | gitlab-ce-cf9a0f2891e81b5142665c75ee9fd15ff7e55e69.tar.gz |
[ci skip] Merge branch 'master' into 45318-FE-junit-tests
* master: (49 commits)
Add changelog entry
Fix `transform` typo
Fix archived parameter for projects API
Enable frozen string in apps/uploaders/*.rb
Fix invalid link to GitLab.com architecture.md
i18n: externalize strings from 'app/views/import'
Remove Repository#lookup and unreachable rugged code
refactor code based on feedback
Trigger rails5 tests either by variable or ref name
Fix link in help doc which was linking to old mono-repo, now in its own repo
SubmoduleHelper - Project is not always available as an instance variable
Allow Danger step to fail
update webpack to v4.16
Backport logger changes from EE
Add the CI Job trigger as the build trigger
Remove flaky and redundant expectations
use fileuploader dynamic path method in uploads manager and add spec
fix typo in uploads manager
add small comment to download method in uploads manager
refactor uploads manager
...
Diffstat (limited to 'spec/javascripts/performance_bar/index_spec.js')
-rw-r--r-- | spec/javascripts/performance_bar/index_spec.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/spec/javascripts/performance_bar/index_spec.js b/spec/javascripts/performance_bar/index_spec.js new file mode 100644 index 00000000000..1784bd64adb --- /dev/null +++ b/spec/javascripts/performance_bar/index_spec.js @@ -0,0 +1,83 @@ +import axios from '~/lib/utils/axios_utils'; +import performanceBar from '~/performance_bar'; +import PerformanceBarService from '~/performance_bar/services/performance_bar_service'; + +import MockAdapter from 'axios-mock-adapter'; + +describe('performance bar wrapper', () => { + let mock; + let vm; + + beforeEach(() => { + const peekWrapper = document.createElement('div'); + + peekWrapper.setAttribute('id', 'js-peek'); + peekWrapper.setAttribute('data-env', 'development'); + peekWrapper.setAttribute('data-request-id', '123'); + peekWrapper.setAttribute('data-peek-url', '/-/peek/results'); + peekWrapper.setAttribute('data-profile-url', '?lineprofiler=true'); + + document.body.appendChild(peekWrapper); + + mock = new MockAdapter(axios); + + mock.onGet('/-/peek/results').reply( + 200, + { + data: { + gc: { + invokes: 0, + invoke_time: '0.00', + use_size: 0, + total_size: 0, + total_object: 0, + gc_time: '0.00', + }, + host: { hostname: 'web-01' }, + }, + }, + {}, + ); + + vm = performanceBar({ container: '#js-peek' }); + }); + + afterEach(() => { + vm.$destroy(); + mock.restore(); + }); + + describe('loadRequestDetails', () => { + beforeEach(() => { + spyOn(vm.store, 'addRequest').and.callThrough(); + }); + + it('does nothing if the request cannot be tracked', () => { + spyOn(vm.store, 'canTrackRequest').and.callFake(() => false); + + vm.loadRequestDetails('123', 'https://gitlab.com/'); + + expect(vm.store.addRequest).not.toHaveBeenCalled(); + }); + + it('adds the request immediately', () => { + vm.loadRequestDetails('123', 'https://gitlab.com/'); + + expect(vm.store.addRequest).toHaveBeenCalledWith( + '123', + 'https://gitlab.com/', + ); + }); + + it('makes an HTTP request for the request details', () => { + spyOn(PerformanceBarService, 'fetchRequestDetails').and.callThrough(); + + vm.loadRequestDetails('456', 'https://gitlab.com/'); + + expect(PerformanceBarService.fetchRequestDetails).toHaveBeenCalledWith( + '/-/peek/results', + '456', + ); + }); + }); +}); |