UNPKG

auth0-lock

Version:
117 lines (115 loc) 5.17 kB
"use strict"; 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); }); });