summaryrefslogtreecommitdiff
path: root/spec/javascripts
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2017-03-28 17:08:15 +0000
committerJacob Schatz <jschatz@gitlab.com>2017-03-28 17:08:15 +0000
commit15ca592ffbf5d36d9736dc2f42f3c2f85bf2f457 (patch)
tree59ae21d47479d6074fa329f8616e04491cc09b09 /spec/javascripts
parent387f2c43d31fe940da3b953c6e2b55b2e830d9f2 (diff)
parent81ed06cb33b7d54285285a2ce77bac7080ff7bd8 (diff)
downloadgitlab-ce-15ca592ffbf5d36d9736dc2f42f3c2f85bf2f457.tar.gz
Merge branch '5983-poll-changes' into 'master'
Adds restart method and auxiliar callback to polling class See merge request !10223
Diffstat (limited to 'spec/javascripts')
-rw-r--r--spec/javascripts/lib/utils/poll_spec.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/javascripts/lib/utils/poll_spec.js b/spec/javascripts/lib/utils/poll_spec.js
index c794a632417..e3429c2a1cb 100644
--- a/spec/javascripts/lib/utils/poll_spec.js
+++ b/spec/javascripts/lib/utils/poll_spec.js
@@ -160,4 +160,44 @@ describe('Poll', () => {
Vue.http.interceptors = _.without(Vue.http.interceptors, pollInterceptor);
});
});
+
+ describe('restart', () => {
+ it('should restart polling when its called', (done) => {
+ const pollInterceptor = (request, next) => {
+ next(request.respondWith(JSON.stringify([]), { status: 200, headers: { 'poll-interval': 2 } }));
+ };
+
+ Vue.http.interceptors.push(pollInterceptor);
+
+ const service = new ServiceMock('endpoint');
+
+ spyOn(service, 'fetch').and.callThrough();
+
+ const Polling = new Poll({
+ resource: service,
+ method: 'fetch',
+ data: { page: 1 },
+ successCallback: () => {
+ Polling.stop();
+ setTimeout(() => {
+ Polling.restart();
+ }, 0);
+ },
+ errorCallback: callbacks.error,
+ });
+
+ spyOn(Polling, 'stop').and.callThrough();
+
+ Polling.makeRequest();
+
+ setTimeout(() => {
+ expect(service.fetch.calls.count()).toEqual(2);
+ expect(service.fetch).toHaveBeenCalledWith({ page: 1 });
+ expect(Polling.stop).toHaveBeenCalled();
+ done();
+ }, 10);
+
+ Vue.http.interceptors = _.without(Vue.http.interceptors, pollInterceptor);
+ });
+ });
});