Commit 0e6c08f5 authored by Fatih Acet's avatar Fatih Acet

Simplify and unify Promise mocks in app_spec file

parent 69b87a97
......@@ -146,15 +146,9 @@ describe('Issuable output', () => {
it('fetches new data after update', done => {
spyOn(vm, 'updateStoreState').and.callThrough();
spyOn(vm.service, 'getData').and.callThrough();
spyOn(vm.service, 'updateIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve({
data: {
confidential: false,
web_url: window.location.pathname,
},
});
spyOn(vm.service, 'updateIssuable').and.returnValue(
Promise.resolve({
data: { web_url: window.location.pathname },
}),
);
......@@ -168,10 +162,9 @@ describe('Issuable output', () => {
});
it('correctly updates issuable data', done => {
spyOn(vm.service, 'updateIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve();
spyOn(vm.service, 'updateIssuable').and.returnValue(
Promise.resolve({
data: { web_url: window.location.pathname },
}),
);
......@@ -186,15 +179,12 @@ describe('Issuable output', () => {
it('does not redirect if issue has not moved', done => {
const visitUrl = spyOnDependency(issuableApp, 'visitUrl');
spyOn(vm.service, 'updateIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve({
spyOn(vm.service, 'updateIssuable').and.returnValue(
Promise.resolve({
data: {
web_url: window.location.pathname,
confidential: vm.isConfidential,
},
});
}),
);
......@@ -208,15 +198,12 @@ describe('Issuable output', () => {
it('redirects if returned web_url has changed', done => {
const visitUrl = spyOnDependency(issuableApp, 'visitUrl');
spyOn(vm.service, 'updateIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve({
spyOn(vm.service, 'updateIssuable').and.returnValue(
Promise.resolve({
data: {
web_url: '/testing-issue-move',
confidential: vm.isConfidential,
},
});
}),
);
......@@ -236,6 +223,7 @@ describe('Issuable output', () => {
vm.handleBeforeUnloadEvent(e);
Vue.nextTick(() => {
expect(e.returnValue).not.toBeNull();
done();
});
});
......@@ -247,6 +235,7 @@ describe('Issuable output', () => {
vm.handleBeforeUnloadEvent(e);
Vue.nextTick(() => {
expect(e.returnValue).not.toBeNull();
done();
});
});
......@@ -256,6 +245,7 @@ describe('Issuable output', () => {
vm.handleBeforeUnloadEvent(e);
Vue.nextTick(() => {
expect(e.returnValue).toBeNull();
done();
});
});
......@@ -297,7 +287,8 @@ describe('Issuable output', () => {
it('shows error mesage from backend if exists', done => {
const msg = 'Custom error message from backend';
spyOn(vm.service, 'updateIssuable').and.callFake(
() => Promise.reject({ response: { data: { errors: [msg] } } }), // eslint-disable-line prefer-promise-reject-errors
// eslint-disable-next-line prefer-promise-reject-errors
() => Promise.reject({ response: { data: { errors: [msg] } } }),
);
vm.updateIssuable();
......@@ -361,14 +352,11 @@ describe('Issuable output', () => {
describe('deleteIssuable', () => {
it('changes URL when deleted', done => {
const visitUrl = spyOnDependency(issuableApp, 'visitUrl');
spyOn(vm.service, 'deleteIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve({
spyOn(vm.service, 'deleteIssuable').and.returnValue(
Promise.resolve({
data: {
web_url: '/test',
},
});
}),
);
......@@ -376,6 +364,7 @@ describe('Issuable output', () => {
setTimeout(() => {
expect(visitUrl).toHaveBeenCalledWith('/test');
done();
});
});
......@@ -383,14 +372,11 @@ describe('Issuable output', () => {
it('stops polling when deleting', done => {
spyOnDependency(issuableApp, 'visitUrl');
spyOn(vm.poll, 'stop').and.callThrough();
spyOn(vm.service, 'deleteIssuable').and.callFake(
() =>
new Promise(resolve => {
resolve({
spyOn(vm.service, 'deleteIssuable').and.returnValue(
Promise.resolve({
data: {
web_url: '/test',
},
});
}),
);
......@@ -398,22 +384,18 @@ describe('Issuable output', () => {
setTimeout(() => {
expect(vm.poll.stop).toHaveBeenCalledWith();
done();
});
});
it('closes form on error', done => {
spyOn(vm.service, 'deleteIssuable').and.callFake(
() =>
new Promise((resolve, reject) => {
reject();
}),
);
spyOn(vm.service, 'deleteIssuable').and.returnValue(Promise.reject());
vm.deleteIssuable();
setTimeout(() => {
expect(eventHub.$emit).toHaveBeenCalledWith('close.form');
expect(eventHub.$emit).not.toHaveBeenCalledWith('close.form');
expect(document.querySelector('.flash-container .flash-text').innerText.trim()).toBe(
'Error deleting issue',
);
......
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