Commit 1f2870c3 authored by Simon Knox's avatar Simon Knox Committed by Phil Hughes

Resolve "Transient failure of related_issues_root_spec.js"

parent 3ab12f71
......@@ -140,12 +140,10 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit();
setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(0);
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(0);
done();
});
done();
});
});
......@@ -167,15 +165,13 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit();
setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(1);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(1);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
done();
});
done();
});
});
......@@ -197,16 +193,14 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit();
setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
expect(vm.state.relatedIssues[1].id).toEqual(issuable2.id);
expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
expect(vm.state.relatedIssues[1].id).toEqual(issuable2.id);
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
done();
});
done();
});
});
});
......@@ -230,63 +224,46 @@ describe('RelatedIssuesRoot', () => {
});
describe('fetchRelatedIssues', () => {
const interceptor = (request, next) => {
next(request.respondWith(JSON.stringify([issuable1, issuable2]), {
status: 200,
}));
};
beforeEach((done) => {
Vue.http.interceptors.push(interceptor);
vm = new RelatedIssuesRoot({
propsData: defaultProps,
}).$mount();
// wait for internal call to fetchRelatedIssues to resolve
setTimeout(() => Vue.nextTick(done));
setTimeout(done);
});
describe('when the network has not responded yet', () => {
it('should be fetching', (done) => {
vm.fetchRelatedIssues();
expect(vm.isFetching).toEqual(true);
setTimeout(() => Vue.nextTick(done));
});
afterEach(() => {
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
});
describe('when the network responds', () => {
const interceptor = (request, next) => {
next(request.respondWith(JSON.stringify([issuable1, issuable2]), {
status: 200,
}));
};
beforeEach(() => {
Vue.http.interceptors.push(interceptor);
});
afterEach(() => {
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
});
it('sets isFetching while fetching', (done) => {
vm.fetchRelatedIssues();
it('should be done fetching', (done) => {
vm.fetchRelatedIssues();
expect(vm.isFetching).toEqual(true);
setTimeout(() => {
Vue.nextTick(() => {
expect(vm.isFetching).toEqual(false);
setTimeout(() => {
expect(vm.isFetching).toEqual(false);
done();
});
});
done();
});
});
it('should fetch related issues', (done) => {
vm.fetchRelatedIssues();
setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
expect(vm.state.relatedIssues[1].id).toEqual(issuable2.id);
it('should fetch related issues', (done) => {
Vue.nextTick(() => {
expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
expect(vm.state.relatedIssues[1].id).toEqual(issuable2.id);
done();
});
});
done();
});
});
});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment