Skip to content
Snippets Groups Projects
Unverified Commit 8a713b37 authored by Mike Greiling's avatar Mike Greiling
Browse files

add spyOnDependency method

parent 8166a11c
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -18,6 +18,7 @@
"sandbox": false,
"setFixtures": false,
"setStyleFixtures": false,
"spyOnDependency": false,
"spyOnEvent": false,
"ClassSpecHelper": false
},
Loading
Loading
Loading
Loading
@@ -2,7 +2,6 @@ import Vue from 'vue';
 
import axios from '~/lib/utils/axios_utils';
import stopJobsModal from '~/pages/admin/jobs/index/components/stop_jobs_modal.vue';
import * as urlUtility from '~/lib/utils/url_utility';
 
import mountComponent from 'spec/helpers/vue_mount_component_helper';
 
Loading
Loading
@@ -24,7 +23,7 @@ describe('stop_jobs_modal.vue', () => {
describe('onSubmit', () => {
it('stops jobs and redirects to overview page', (done) => {
const responseURL = `${gl.TEST_HOST}/stop_jobs_modal.vue/jobs`;
const redirectSpy = spyOn(urlUtility, 'redirectTo');
const redirectSpy = spyOnDependency(stopJobsModal, 'redirectTo');
spyOn(axios, 'post').and.callFake((url) => {
expect(url).toBe(props.url);
return Promise.resolve({
Loading
Loading
@@ -44,7 +43,7 @@ describe('stop_jobs_modal.vue', () => {
 
it('displays error if stopping jobs failed', (done) => {
const dummyError = new Error('stopping jobs failed');
const redirectSpy = spyOn(urlUtility, 'redirectTo');
const redirectSpy = spyOnDependency(stopJobsModal, 'redirectTo');
spyOn(axios, 'post').and.callFake((url) => {
expect(url).toBe(props.url);
return Promise.reject(dummyError);
Loading
Loading
Loading
Loading
@@ -3,7 +3,6 @@ import Vue from 'vue';
import axios from '~/lib/utils/axios_utils';
import deleteMilestoneModal from '~/pages/milestones/shared/components/delete_milestone_modal.vue';
import eventHub from '~/pages/milestones/shared/event_hub';
import * as urlUtility from '~/lib/utils/url_utility';
 
import mountComponent from 'spec/helpers/vue_mount_component_helper';
 
Loading
Loading
@@ -40,7 +39,7 @@ describe('delete_milestone_modal.vue', () => {
},
});
});
const redirectSpy = spyOn(urlUtility, 'redirectTo');
const redirectSpy = spyOnDependency(deleteMilestoneModal, 'redirectTo');
 
vm.onSubmit()
.then(() => {
Loading
Loading
@@ -60,7 +59,7 @@ describe('delete_milestone_modal.vue', () => {
eventHub.$emit.calls.reset();
return Promise.reject(dummyError);
});
const redirectSpy = spyOn(urlUtility, 'redirectTo');
const redirectSpy = spyOnDependency(deleteMilestoneModal, 'redirectTo');
 
vm.onSubmit()
.catch((error) => {
Loading
Loading
/* eslint-disable jasmine/no-global-setup */
/* eslint-disable jasmine/no-global-setup, jasmine/no-unsafe-spy, no-underscore-dangle */
import $ from 'jquery';
import 'vendor/jasmine-jquery';
import '~/commons';
Loading
Loading
@@ -55,6 +56,17 @@ window.addEventListener('unhandledrejection', event => {
console.error(event.reason.stack || event.reason);
});
 
// Add global function to spy on a module's dependencies via rewire
window.spyOnDependency = (module, name) => {
const dependency = module.__GetDependency__(name);
const spy = jasmine.createSpy(name, dependency);
module.__Rewire__(name, spy);
return spy;
};
// Reset any rewired modules after each test (see babel-plugin-rewire)
afterEach(__rewire_reset_all__); // eslint-disable-line
// HACK: Chrome 59 disconnects if there are too many synchronous tests in a row
// because it appears to lock up the thread that communicates to Karma's socket
// This async beforeEach gets called on every spec and releases the JS thread long
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment