auth0-lock
Version:
Auth0 Lock
137 lines (135 loc) • 4.99 kB
JavaScript
;
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _testUtils = require("testUtils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
jest.mock('ui/button/auth_button', function () {
return (0, _testUtils.mockComponent)('auth_button');
});
var getComponent = function getComponent() {
return require('field/social/social_buttons_pane').default;
};
describe('SocialButtonsPane', function () {
var defaultProps = {
lock: {
get: function get(p) {
expect(p).toBe('id');
return 'lock-id-1';
}
},
labelFn: function labelFn() {
for (var _len = arguments.length, keys = new Array(_len), _key = 0; _key < _len; _key++) {
keys[_key] = arguments[_key];
}
return keys.join(',');
},
showLoading: false,
signUp: false,
disabled: false
};
beforeEach(function () {
jest.resetModules();
jest.mock('quick-auth/actions', function () {
return {
logIn: jest.fn()
};
});
jest.mock('connection/social/index', function () {
return {
displayName: function displayName() {
return 'displayName';
},
socialConnections: function socialConnections() {
return [{
item: 1,
get: function get(key) {
return "socialConnections1-".concat(key);
}
}, {
item: 2,
get: function get(key) {
return "socialConnections2-".concat(key);
}
}];
},
authButtonsTheme: function authButtonsTheme() {
return {
get: function get() {
return {
get: function get(key) {
return "authButtonsTheme-".concat(key);
}
};
}
};
}
};
});
jest.mock('connection/database/index', function () {
return {
termsAccepted: function termsAccepted() {
return false;
}
};
});
jest.mock('connection/database/actions', function () {
return {
signUpError: jest.fn()
};
});
jest.mock('core/index', function () {
return {
id: function id() {
return 1;
},
emitEvent: jest.fn()
};
});
});
it('renders correctly', function () {
var SocialButtonsPane = getComponent();
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, defaultProps)).toMatchSnapshot();
});
it('calls signUpError when isSignUp===true and terms were not accepted', function () {
var SocialButtonsPane = getComponent();
var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, _extends({}, defaultProps, {
signUp: true
})));
var props = (0, _testUtils.extractPropsFromWrapper)(wrapper, 2);
props.onClick();
var mock = require('connection/database/actions').signUpError.mock;
expect(mock.calls.length).toBe(1);
expect(mock.calls[0]).toMatchSnapshot();
});
it('shows loading when showLoading === true', function () {
var SocialButtonsPane = getComponent();
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, _extends({}, defaultProps, {
showLoading: true
}))).toMatchSnapshot();
});
it('shows header when instructions are available', function () {
var SocialButtonsPane = getComponent();
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, _extends({}, defaultProps, {
instructions: "instructions"
}))).toMatchSnapshot();
});
it('calls `logIn` with social connection 1 when first button is clicked', function () {
var SocialButtonsPane = getComponent();
var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, defaultProps));
var props = (0, _testUtils.extractPropsFromWrapper)(wrapper, 2);
props.onClick();
var mock = require('quick-auth/actions').logIn.mock;
expect(mock.calls.length).toBe(1);
expect(mock.calls[0]).toMatchSnapshot();
});
it('calls `logIn` with social connection 2 when second button is clicked', function () {
var SocialButtonsPane = getComponent();
var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(SocialButtonsPane, defaultProps));
var props = (0, _testUtils.extractPropsFromWrapper)(wrapper, 3);
props.onClick();
var mock = require('quick-auth/actions').logIn.mock;
expect(mock.calls.length).toBe(1);
expect(mock.calls[0]).toMatchSnapshot();
});
});