Skip to content

Instantly share code, notes, and snippets.

View theKashey's full-sized avatar
🤔
what's happening?

Anton Korzunov theKashey

🤔
what's happening?
View GitHub Profile
@theKashey
theKashey / dooms-day.js
Created March 29, 2018 06:48
SkyNet rocket launch
import {theDay} from 'doom-scheduler'
import {Launch} from './rocket-silo';
theDay
.then(Launch)
.then( () => alert(' :) '),
() => alert(' :( next time, you know...');
export const theDay = Promise.resolve();
@theKashey
theKashey / dooms-day.test.js
Last active March 29, 2018 12:15
jest.mock the day
import {Launch} from './rocket-silo';
import {theDay} from 'doom-scheduler'
import 'rocket-silo';
jest.mock('./rocket-silo'); // mocking something we already imported!!!
jest.mock('doom-scheduler');
theDay.mockResolvedValue("comming!");
expect(Launch).toHaveBeenCalled();
@theKashey
theKashey / dooms-day.test.js
Last active March 29, 2018 12:16
dooms-day mockery.js
import mockery from 'mockery';
import sinon from 'sinon';
//import {Launch} from './rocket-silo'; // you cannot use imports
//import {theDay} from 'doom-scheduler'
mockery.registerMock('./rocket-silo', {
Launch: sinon.stub()
});
mockery.registerMock('doom-scheduler', {
@theKashey
theKashey / dooms-day.test.js
Last active March 29, 2018 11:46
dooms-day proxyquire
import proxyquire from 'proxyquire';
import sinon from 'sinon';
const Launch= sinon.stub()
const case = proxyquire.load('./dooms-day.js',{
'./rocket-silo', { Launch },
'doom-scheduler', { theDay: Promise.resolve()
});
@theKashey
theKashey / dooms-day.test.js
Created March 29, 2018 11:38
dooms-day TD
import td from 'testdouble';
const {Launch} = td.replace('./rocket-silo'); // automock
const scheduler = td.replace('doom-scheduler', { theDay: Promise.resolve() })
require('./dooms-day.js');
td.verify(Launch());
@theKashey
theKashey / rewiremock-jest.mock.js
Last active March 29, 2018 12:19
Rewiremock jest
import rewiremock from 'rewiremock';
import {Launch} from './rocket-silo';
import {theDay} from 'doom-scheduler'
import 'rocket-silo';
// prev jest.mock('doom-scheduler');
rewiremock('./rocket-silo').mockThrough();
rewiremock('doom-scheduler').mockThrough();
theDay.resolves("comming!"); // sinon
@theKashey
theKashey / dooms-day.test.js
Last active March 29, 2018 21:55
Rewiremock mockery
import rewiremock from 'rewiremock';
import sinon from 'sinon';
// mockery.registerMock('./rocket-silo', {
// Launch: sinon.stub()
// });
rewiremock('./rocket-silo').with({
Launch: sinon.stub()
});
@theKashey
theKashey / dooms-day.test.js
Last active March 29, 2018 21:49
Rewiremock proxyquire
import rewiremock from 'rewiremock';
import sinon from 'sinon';
const Launch = sinon.stub()
// const case = proxyquire.load('./dooms-day.js',{
const case = rewiremock.proxy('./dooms-day.js',{
'./rocket-silo': { Launch },
'doom-scheduler': { theDay: Promise.resolve()}
});
@theKashey
theKashey / dooms-day.test.js
Created March 29, 2018 11:49
Rewiremock TD.js
import rewiremock from 'rewiremock';
const {Launch} = rewiremock('./rocket-silo').mockThrough(); // automock
const scheduler = rewiremock('doom-scheduler').with({ theDay: Promise.resolve() })
rewiremock.proxy('./dooms-day.js');
expect(Launch).toHaveBeenCalled();