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,14 +140,12 @@ describe('RelatedIssuesRoot', () => { ...@@ -140,14 +140,12 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit(); vm.onPendingFormSubmit();
setTimeout(() => { setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0); expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(0); expect(vm.state.relatedIssues.length).toEqual(0);
done(); done();
}); });
}); });
});
it('submit pending issue as related issue', (done) => { it('submit pending issue as related issue', (done) => {
const interceptor = (request, next) => { const interceptor = (request, next) => {
...@@ -167,7 +165,6 @@ describe('RelatedIssuesRoot', () => { ...@@ -167,7 +165,6 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit(); vm.onPendingFormSubmit();
setTimeout(() => { setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0); expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(1); expect(vm.state.relatedIssues.length).toEqual(1);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id); expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
...@@ -177,7 +174,6 @@ describe('RelatedIssuesRoot', () => { ...@@ -177,7 +174,6 @@ describe('RelatedIssuesRoot', () => {
done(); done();
}); });
}); });
});
it('submit multiple pending issues as related issues', (done) => { it('submit multiple pending issues as related issues', (done) => {
const interceptor = (request, next) => { const interceptor = (request, next) => {
...@@ -197,7 +193,6 @@ describe('RelatedIssuesRoot', () => { ...@@ -197,7 +193,6 @@ describe('RelatedIssuesRoot', () => {
vm.onPendingFormSubmit(); vm.onPendingFormSubmit();
setTimeout(() => { setTimeout(() => {
Vue.nextTick(() => {
expect(vm.state.pendingReferences.length).toEqual(0); expect(vm.state.pendingReferences.length).toEqual(0);
expect(vm.state.relatedIssues.length).toEqual(2); expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id); expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
...@@ -209,7 +204,6 @@ describe('RelatedIssuesRoot', () => { ...@@ -209,7 +204,6 @@ describe('RelatedIssuesRoot', () => {
}); });
}); });
}); });
});
describe('onPendingFormCancel', () => { describe('onPendingFormCancel', () => {
beforeEach(() => { beforeEach(() => {
...@@ -230,55 +224,40 @@ describe('RelatedIssuesRoot', () => { ...@@ -230,55 +224,40 @@ describe('RelatedIssuesRoot', () => {
}); });
describe('fetchRelatedIssues', () => { describe('fetchRelatedIssues', () => {
beforeEach((done) => {
vm = new RelatedIssuesRoot({
propsData: defaultProps,
}).$mount();
// wait for internal call to fetchRelatedIssues to resolve
setTimeout(() => Vue.nextTick(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));
});
});
describe('when the network responds', () => {
const interceptor = (request, next) => { const interceptor = (request, next) => {
next(request.respondWith(JSON.stringify([issuable1, issuable2]), { next(request.respondWith(JSON.stringify([issuable1, issuable2]), {
status: 200, status: 200,
})); }));
}; };
beforeEach(() => { beforeEach((done) => {
Vue.http.interceptors.push(interceptor); Vue.http.interceptors.push(interceptor);
vm = new RelatedIssuesRoot({
propsData: defaultProps,
}).$mount();
// wait for internal call to fetchRelatedIssues to resolve
setTimeout(done);
}); });
afterEach(() => { afterEach(() => {
Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor); Vue.http.interceptors = _.without(Vue.http.interceptors, interceptor);
}); });
it('should be done fetching', (done) => { it('sets isFetching while fetching', (done) => {
vm.fetchRelatedIssues(); vm.fetchRelatedIssues();
expect(vm.isFetching).toEqual(true);
setTimeout(() => { setTimeout(() => {
Vue.nextTick(() => {
expect(vm.isFetching).toEqual(false); expect(vm.isFetching).toEqual(false);
done(); done();
}); });
}); });
});
it('should fetch related issues', (done) => { it('should fetch related issues', (done) => {
vm.fetchRelatedIssues();
setTimeout(() => {
Vue.nextTick(() => { Vue.nextTick(() => {
expect(vm.state.relatedIssues.length).toEqual(2); expect(vm.state.relatedIssues.length).toEqual(2);
expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id); expect(vm.state.relatedIssues[0].id).toEqual(issuable1.id);
...@@ -288,8 +267,6 @@ describe('RelatedIssuesRoot', () => { ...@@ -288,8 +267,6 @@ describe('RelatedIssuesRoot', () => {
}); });
}); });
}); });
});
});
describe('onInput', () => { describe('onInput', () => {
beforeEach(() => { beforeEach(() => {
......
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