Last active
May 29, 2018 19:09
-
-
Save skevy/4545e57fc255c47a504e16d4b67653d9 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Stubsfields out dropPellet | |
var SignupLoginTracking = importPathFromDirWithMock('/Users/amiskiewicz/airlab-shared/repos/airbnb/spec/javascripts/signup_login_dls/actions', '../../../../app/assets/javascripts/signup_login_dls/SignupLoginTracking', { | |
'../dropPellet': function () { | |
function dropPellet() { | |
return require('../../stubs/dropPellet'); | |
} | |
return dropPellet; | |
}() | |
}); | |
var _chai = require('chai'); | |
var _airbnbTracking = require('airbnb-tracking'); | |
var _airbnbTracking2 = _interopRequireDefault(_airbnbTracking); | |
var _reduxThunk = require('redux-thunk'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { expect } from 'chai'; | |
import Tracking from 'airbnb-tracking'; | |
import thunk from 'redux-thunk'; | |
import sinon from 'sinon-sandbox'; | |
import wrap from 'mocha-wrap'; | |
import matchMedia from 'airbnb-o2/modules/matchMedia'; | |
import AirDog from ':airdog'; | |
import dropPellet from '../../stubs/dropPellet'; | |
import Airbnb from '../../stubs/airbnb'; | |
import mockHomePDPState from '../../mocks/HomePDPInitialStoreStateMock'; | |
import { mockStore } from '../constructMockData'; | |
// Stubsfields out dropPellet | |
const SignupLoginTracking = importWithMock( | |
'../../../../app/assets/javascripts/signup_login_dls/SignupLoginTracking', | |
{ | |
'../dropPellet': () => require('../../stubs/dropPellet'), | |
}, | |
); | |
import * as sharedActionCreators from '../../../../app/assets/javascripts/signup_login_dls/actions/sharedActionCreators'; | |
import * as actionCreators from '../../../../app/assets/javascripts/signup_login_dls/actions/actionCreators'; | |
import * as actionTypes from '../../../../app/assets/javascripts/signup_login_dls/actions/actionTypes'; | |
import * as constants from '../../../../app/assets/javascripts/signup_login_dls/constants'; | |
import { listingIdSelector } from '../../../../app/assets/javascripts/p3/selectors/listingSelectors'; | |
import { checkInSelector, checkOutSelector } from '../../../../app/assets/javascripts/p3/selectors/bookItSelectors'; | |
const storeWithTripDetails = mockStore({ | |
...mockHomePDPState(), | |
signup: { form: { currentValues: { } } }, | |
login: { | |
form_urls: { authenticate_form_url: 'fake' }, | |
form: { currentValues: { rememberMe: true, email: 'email', password: 'foo' } }, | |
}, | |
}); | |
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { expect } from 'chai'; | |
import Tracking from 'airbnb-tracking'; | |
import thunk from 'redux-thunk'; | |
import sinon from 'sinon-sandbox'; | |
import wrap from 'mocha-wrap'; | |
import matchMedia from 'airbnb-o2/modules/matchMedia'; | |
import AirDog from ':airdog'; | |
import dropPellet from '../../stubs/dropPellet'; | |
import Airbnb from '../../stubs/airbnb'; | |
import mockHomePDPState from '../../mocks/HomePDPInitialStoreStateMock'; | |
import { mockStore } from '../constructMockData'; | |
// Stubsfields out dropPellet | |
const SignupLoginTracking = importWithMock( | |
'../../../../app/assets/javascripts/signup_login_dls/SignupLoginTracking', | |
{ | |
'../dropPellet': dropPellet, | |
}, | |
); | |
import * as sharedActionCreators from '../../../../app/assets/javascripts/signup_login_dls/actions/sharedActionCreators'; | |
import * as actionCreators from '../../../../app/assets/javascripts/signup_login_dls/actions/actionCreators'; | |
import * as actionTypes from '../../../../app/assets/javascripts/signup_login_dls/actions/actionTypes'; | |
import * as constants from '../../../../app/assets/javascripts/signup_login_dls/constants'; | |
import { listingIdSelector } from '../../../../app/assets/javascripts/p3/selectors/listingSelectors'; | |
import { checkInSelector, checkOutSelector } from '../../../../app/assets/javascripts/p3/selectors/bookItSelectors'; | |
const storeWithTripDetails = mockStore({ | |
...mockHomePDPState(), | |
signup: { form: { currentValues: { } } }, | |
login: { | |
form_urls: { authenticate_form_url: 'fake' }, | |
form: { currentValues: { rememberMe: true, email: 'email', password: 'foo' } }, | |
}, | |
}); | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The problem:
../../../../app/assets/javascripts/signup_login_dls/actions/actionCreators
importsSignupLoginTracking
(the module mocked withimportWithMock
), and becauseimportWithMock
is not hoisted, it's not actually mocking the module because it was already imported transitively.A solution:
See
actionCreators_spec-solution.js
and the transformed versionactionCreators_spec-solution-transformed.js
.