auth0-lock
Version:
Auth0 Lock
117 lines (115 loc) • 5.17 kB
JavaScript
;
var _react = _interopRequireDefault(require("react"));
var _enzyme = require("enzyme");
var _testUtils = require("testUtils");
var _login_pane = _interopRequireDefault(require("connection/database/login_pane"));
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('field/email/email_pane', function () {
return (0, _testUtils.mockComponent)('email_pane');
});
jest.mock('field/username/username_pane', function () {
return (0, _testUtils.mockComponent)('username_pane');
});
jest.mock('field/password/password_pane', function () {
return (0, _testUtils.mockComponent)('password_pane');
});
jest.mock('connection/database/index');
jest.mock('connection/database/actions');
var mockId = 1;
jest.mock('core/index', function () {
return {
id: function id() {
return mockId;
},
captcha: function captcha() {
return undefined;
},
connectionResolver: jest.fn()
};
});
describe('LoginPane', function () {
var defaultProps = {
emailInputPlaceholder: 'emailInputPlaceholder',
forgotPasswordAction: 'forgotPasswordAction',
i18n: {},
lock: {},
passwordInputPlaceholder: 'passwordInputPlaceholder',
showForgotPasswordLink: true,
showPassword: true,
usernameInputPlaceholder: 'usernameInputPlaceholder'
};
var databaseIndexMock = require('connection/database/index');
var coreMock = require('core/index');
beforeEach(function () {
databaseIndexMock.hasScreen.mockImplementation(function () {
return true;
});
databaseIndexMock.forgotPasswordLink.mockImplementation(function () {
return 'forgotPasswordLink';
});
});
afterEach(function () {
jest.resetAllMocks();
});
it('renders correctly', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, defaultProps)).toMatchSnapshot();
});
it('shows header when instructions is not empty', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
instructions: "instructions"
}))).toMatchSnapshot();
});
it('shows email pane when user usernameStyle === email', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
usernameStyle: "email"
}))).toMatchSnapshot();
});
it('shows username pane when connectionResolver is specified, even if usernameStyle is email', function () {
coreMock.connectionResolver.mockImplementation(function () {
return function () {
return true;
};
});
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
usernameStyle: "email"
}))).toMatchSnapshot();
});
it('shows username pane when user usernameStyle !== email', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
usernameStyle: "any"
}))).toMatchSnapshot();
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
usernameStyle: "username"
}))).toMatchSnapshot();
});
it('hides password pane when showPassword===false', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
showPassword: false
}))).toMatchSnapshot();
});
describe('hides password link', function () {
it('when showForgotPasswordLink === false', function () {
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, _extends({}, defaultProps, {
showForgotPasswordLink: false
}))).toMatchSnapshot();
});
it('when lock does not have the screen `forgotPassword`', function () {
databaseIndexMock.hasScreen.mockImplementation(function (l, screenName) {
return screenName === 'forgotPassword' ? false : true;
});
(0, _testUtils.expectComponent)(/*#__PURE__*/_react.default.createElement(_login_pane.default, defaultProps)).toMatchSnapshot();
});
});
it('clicking password forgot link calls showResetPasswordActivity() when forgotPasswordLink() is undefined', function () {
databaseIndexMock.forgotPasswordLink.mockImplementation(function () {
return undefined;
});
var wrapper = (0, _enzyme.mount)(/*#__PURE__*/_react.default.createElement(_login_pane.default, defaultProps));
wrapper.find('a.auth0-lock-alternative-link').simulate('click');
var actions = require('connection/database/actions');
var calls = actions.showResetPasswordActivity.mock.calls;
expect(calls.length).toBe(1);
expect(calls[0][0]).toBe(mockId);
});
});