From 107dd6f360c2d2ff867b877d71924766ae4af7c1 Mon Sep 17 00:00:00 2001 From: Shahbaz Shabbir <32649010+shahbaz-arbisoft@users.noreply.github.com> Date: Wed, 12 Apr 2023 22:52:49 +0500 Subject: [PATCH] fix: Update eslint configuration and resolve linting errors and test failures (#847) --- .eslintrc.js | 1 - .../tests/Logistration.test.jsx | 21 ++++++--- .../tests/UnAuthOnlyRoute.test.jsx | 20 ++++---- .../tests/ForgotPasswordPage.test.jsx | 16 ++++--- src/login/tests/LoginFailure.test.jsx | 6 +-- src/login/tests/LoginPage.test.jsx | 18 +++---- .../tests/ProgressiveProfiling.test.jsx | 47 ++++++++++--------- .../tests/RecommendationsPage.test.jsx | 42 +++++++++-------- src/register/tests/RegistrationPage.test.jsx | 12 ++--- .../tests/ResetPasswordPage.test.jsx | 13 ++--- 10 files changed, 108 insertions(+), 88 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index af09744f..9f5faeab 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -48,7 +48,6 @@ module.exports = createConfig('eslint', { }, ], 'function-paren-newline': 'off', - 'no-import-assign': 'off', 'react/no-unstable-nested-components': 'off', }, }); diff --git a/src/common-components/tests/Logistration.test.jsx b/src/common-components/tests/Logistration.test.jsx index c7f367c0..1d027bb5 100644 --- a/src/common-components/tests/Logistration.test.jsx +++ b/src/common-components/tests/Logistration.test.jsx @@ -2,8 +2,7 @@ import React from 'react'; import { Provider } from 'react-redux'; import { getConfig, mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; -import * as auth from '@edx/frontend-platform/auth'; +import { sendPageEvent, sendTrackEvent } from '@edx/frontend-platform/analytics'; import { configure, injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { MemoryRouter } from 'react-router-dom'; @@ -15,9 +14,11 @@ import { clearThirdPartyAuthContextErrorMessage } from '../data/actions'; import { RenderInstitutionButton } from '../InstitutionLogistration'; import Logistration from '../Logistration'; -jest.mock('@edx/frontend-platform/analytics'); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendPageEvent: jest.fn(), + sendTrackEvent: jest.fn(), +})); jest.mock('@edx/frontend-platform/auth'); -analytics.sendPageEvent = jest.fn(); const mockStore = configureStore(); const IntlLogistration = injectIntl(Logistration); @@ -41,7 +42,13 @@ describe('Logistration', () => { ); beforeEach(() => { - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'test-user' })); + jest.mock('@edx/frontend-platform/auth', () => ({ + getAuthenticatedUser: jest.fn(() => ({ + userId: 3, + username: 'test-user', + })), + })); + configure({ loggingService: { logError: jest.fn() }, config: { @@ -182,8 +189,8 @@ describe('Logistration', () => { const logistration = mount(reduxWrapper()); logistration.find(RenderInstitutionButton).simulate('click', { institutionLogin: true }); - expect(analytics.sendTrackEvent).toHaveBeenCalledWith('edx.bi.institution_login_form.toggled', { category: 'user-engagement' }); - expect(analytics.sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'institution_login'); + expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.institution_login_form.toggled', { category: 'user-engagement' }); + expect(sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'institution_login'); mergeConfig({ DISABLE_ENTERPRISE_LOGIN: '', diff --git a/src/common-components/tests/UnAuthOnlyRoute.test.jsx b/src/common-components/tests/UnAuthOnlyRoute.test.jsx index 3e1f65a1..4ea33c38 100644 --- a/src/common-components/tests/UnAuthOnlyRoute.test.jsx +++ b/src/common-components/tests/UnAuthOnlyRoute.test.jsx @@ -2,7 +2,7 @@ /* eslint-disable react/function-component-definition */ import React from 'react'; -import * as auth from '@edx/frontend-platform/auth'; +import { fetchAuthenticatedUser, getAuthenticatedUser } from '@edx/frontend-platform/auth'; import { mount } from 'enzyme'; import { UnAuthOnlyRoute } from '..'; @@ -10,7 +10,10 @@ import { LOGIN_PAGE } from '../../data/constants'; import { MemoryRouter, BrowserRouter as Router, Switch } from 'react-router-dom'; -jest.mock('@edx/frontend-platform/auth'); +jest.mock('@edx/frontend-platform/auth', () => ({ + getAuthenticatedUser: jest.fn(), + fetchAuthenticatedUser: jest.fn(), +})); const RRD = require('react-router-dom'); // Just render plain div with its children @@ -44,20 +47,21 @@ describe('UnAuthOnlyRoute', () => { username: 'gonzo', other: 'data', }; - auth.getAuthenticatedUser = jest.fn(() => user); - auth.fetchAuthenticatedUser = jest.fn(() => ({ then: () => auth.getAuthenticatedUser() })); + + getAuthenticatedUser.mockReturnValue(user); + fetchAuthenticatedUser.mockReturnValueOnce(Promise.resolve(user)); mount(routerWrapper()); - expect(auth.fetchAuthenticatedUser).toBeCalledWith({ forceRefresh: true }); + expect(fetchAuthenticatedUser).toBeCalledWith({ forceRefresh: true }); }); it('should have called with forceRefresh false', () => { - auth.getAuthenticatedUser = jest.fn(() => null); - auth.fetchAuthenticatedUser = jest.fn(() => ({ then: () => auth.getAuthenticatedUser() })); + getAuthenticatedUser.mockReturnValue(null); + fetchAuthenticatedUser.mockReturnValueOnce(Promise.resolve(null)); mount(routerWrapper()); - expect(auth.fetchAuthenticatedUser).toBeCalledWith({ forceRefresh: false }); + expect(fetchAuthenticatedUser).toBeCalledWith({ forceRefresh: false }); }); }); diff --git a/src/forgot-password/tests/ForgotPasswordPage.test.jsx b/src/forgot-password/tests/ForgotPasswordPage.test.jsx index 913d696c..a24bac47 100644 --- a/src/forgot-password/tests/ForgotPasswordPage.test.jsx +++ b/src/forgot-password/tests/ForgotPasswordPage.test.jsx @@ -3,8 +3,6 @@ import { Provider } from 'react-redux'; import CookiePolicyBanner from '@edx/frontend-component-cookie-policy-banner'; import { mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; -import * as auth from '@edx/frontend-platform/auth'; import { configure, injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { createMemoryHistory } from 'history'; @@ -17,11 +15,12 @@ import { PASSWORD_RESET } from '../../reset-password/data/constants'; import { setForgotPasswordFormData } from '../data/actions'; import ForgotPasswordPage from '../ForgotPasswordPage'; -jest.mock('@edx/frontend-platform/analytics'); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendPageEvent: jest.fn(), + sendTrackEvent: jest.fn(), +})); jest.mock('@edx/frontend-platform/auth'); -analytics.sendPageEvent = jest.fn(); - const IntlForgotPasswordPage = injectIntl(ForgotPasswordPage); const mockStore = configureStore(); const history = createMemoryHistory(); @@ -51,7 +50,12 @@ describe('ForgotPasswordPage', () => { beforeEach(() => { store = mockStore(initialState); - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'test-user' })); + jest.mock('@edx/frontend-platform/auth', () => ({ + getAuthenticatedUser: jest.fn(() => ({ + userId: 3, + username: 'test-user', + })), + })); configure({ loggingService: { logError: jest.fn() }, config: { diff --git a/src/login/tests/LoginFailure.test.jsx b/src/login/tests/LoginFailure.test.jsx index d5f2eccb..3e84e339 100644 --- a/src/login/tests/LoginFailure.test.jsx +++ b/src/login/tests/LoginFailure.test.jsx @@ -1,6 +1,5 @@ import React from 'react'; -import * as auth from '@edx/frontend-platform/auth'; import { injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { MemoryRouter } from 'react-router-dom'; @@ -20,8 +19,9 @@ import { } from '../data/constants'; import LoginFailureMessage from '../LoginFailure'; -jest.mock('@edx/frontend-platform/auth'); -auth.getAuthService = jest.fn(); +jest.mock('@edx/frontend-platform/auth', () => ({ + getAuthService: jest.fn(), +})); const IntlLoginFailureMessage = injectIntl(LoginFailureMessage); diff --git a/src/login/tests/LoginPage.test.jsx b/src/login/tests/LoginPage.test.jsx index 4a1acdef..9252e649 100644 --- a/src/login/tests/LoginPage.test.jsx +++ b/src/login/tests/LoginPage.test.jsx @@ -3,8 +3,7 @@ import { Provider } from 'react-redux'; import CookiePolicyBanner from '@edx/frontend-component-cookie-policy-banner'; import { getConfig, mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; -import * as auth from '@edx/frontend-platform/auth'; +import { sendPageEvent } from '@edx/frontend-platform/analytics'; import { injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { MemoryRouter } from 'react-router-dom'; @@ -19,12 +18,13 @@ import { INTERNAL_SERVER_ERROR } from '../data/constants'; import LoginFailureMessage from '../LoginFailure'; import LoginPage from '../LoginPage'; -jest.mock('@edx/frontend-platform/analytics'); -jest.mock('@edx/frontend-platform/auth'); - -analytics.sendTrackEvent = jest.fn(); -analytics.sendPageEvent = jest.fn(); -auth.getAuthService = jest.fn(); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendPageEvent: jest.fn(), + sendTrackEvent: jest.fn(), +})); +jest.mock('@edx/frontend-platform/auth', () => ({ + getAuthService: jest.fn(), +})); const IntlLoginFailureMessage = injectIntl(LoginFailureMessage); const IntlLoginPage = injectIntl(LoginPage); @@ -682,7 +682,7 @@ describe('LoginPage', () => { it('should send page event when login page is rendered', () => { mount(reduxWrapper()); - expect(analytics.sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'login'); + expect(sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'login'); }); it('tests that form is only scrollable on form submission', () => { diff --git a/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx b/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx index 83134db0..fd6c2d58 100644 --- a/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx +++ b/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx @@ -2,10 +2,9 @@ import React from 'react'; import { Provider } from 'react-redux'; import { getConfig, mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; -import * as auth from '@edx/frontend-platform/auth'; +import { identifyAuthenticatedUser, sendTrackEvent } from '@edx/frontend-platform/analytics'; +import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import { configure, injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; -import * as logging from '@edx/frontend-platform/logging'; import { mount } from 'enzyme'; import { createMemoryHistory } from 'history'; import { act } from 'react-dom/test-utils'; @@ -21,18 +20,20 @@ import ProgressiveProfiling from '../ProgressiveProfiling'; const IntlProgressiveProfilingPage = injectIntl(ProgressiveProfiling); const mockStore = configureStore(); -jest.mock('@edx/frontend-platform/analytics'); -jest.mock('@edx/frontend-platform/auth'); -jest.mock('@edx/frontend-platform/logging'); - -analytics.sendTrackEvent = jest.fn(); -analytics.sendPageEvent = jest.fn(); -analytics.identifyAuthenticatedUser = jest.fn(); -logging.getLoggingService = jest.fn(); - -auth.configure = jest.fn(); -auth.ensureAuthenticatedUser = jest.fn().mockImplementation(() => Promise.resolve(true)); -auth.hydrateAuthenticatedUser = jest.fn().mockImplementation(() => Promise.resolve(true)); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendPageEvent: jest.fn(), + sendTrackEvent: jest.fn(), + identifyAuthenticatedUser: jest.fn(), +})); +jest.mock('@edx/frontend-platform/auth', () => ({ + configure: jest.fn(), + ensureAuthenticatedUser: jest.fn().mockImplementation(() => Promise.resolve(true)), + hydrateAuthenticatedUser: jest.fn().mockImplementation(() => Promise.resolve(true)), + getAuthenticatedUser: jest.fn(), +})); +jest.mock('@edx/frontend-platform/logging', () => ({ + getLoggingService: jest.fn(), +})); const history = createMemoryHistory(); @@ -129,14 +130,14 @@ describe('ProgressiveProfilingTests', () => { }); it('should make identify call to segment on progressive profiling page', async () => { - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'abc123' })); + getAuthenticatedUser.mockReturnValue({ userId: 3, username: 'abc123' }); await getProgressiveProfilingPage(); - expect(analytics.identifyAuthenticatedUser).toHaveBeenCalledWith(3); - expect(analytics.identifyAuthenticatedUser).toHaveBeenCalled(); + expect(identifyAuthenticatedUser).toHaveBeenCalledWith(3); + expect(identifyAuthenticatedUser).toHaveBeenCalled(); }); it('should submit user profile details on form submission', async () => { - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'abc123' })); + getAuthenticatedUser.mockReturnValue({ userId: 3, username: 'abc123' }); const formPayload = { gender: 'm', extended_profile: [{ field_name: 'company', field_value: 'test company' }], @@ -155,14 +156,14 @@ describe('ProgressiveProfilingTests', () => { progressiveProfilingPage.find('button.btn-link').simulate('click'); expect(progressiveProfilingPage.find('.pgn__modal-content-container').exists()).toBeTruthy(); - expect(analytics.sendTrackEvent).toHaveBeenCalledWith('edx.bi.welcome.page.skip.link.clicked'); + expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.welcome.page.skip.link.clicked'); }); it('should send analytic event for support link click', async () => { const progressiveProfilingPage = await getProgressiveProfilingPage(); progressiveProfilingPage.find('.progressive-profiling-support a[target="_blank"]').simulate('click'); - expect(analytics.sendTrackEvent).toHaveBeenCalledWith('edx.bi.welcome.page.support.link.clicked'); + expect(sendTrackEvent).toHaveBeenCalledWith('edx.bi.welcome.page.support.link.clicked'); }); it('should show error message when patch request fails', async () => { @@ -206,7 +207,7 @@ describe('ProgressiveProfilingTests', () => { }, }); - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'abc123' })); + getAuthenticatedUser.mockReturnValue({ userId: 3, username: 'abc123' }); const progressiveProfilingPage = await getProgressiveProfilingPage(); expect(progressiveProfilingPage.find('button.btn-brand').text()).toEqual('Next'); @@ -241,7 +242,7 @@ describe('ProgressiveProfilingTests', () => { }, }); - auth.getAuthenticatedUser = jest.fn(() => ({ userId: 3, username: 'abc123' })); + getAuthenticatedUser.mockReturnValue({ userId: 3, username: 'abc123' }); const progressiveProfilingPage = await getProgressiveProfilingPage(); expect(progressiveProfilingPage.find('button.btn-brand').text()).toEqual('Submit'); diff --git a/src/recommendations/tests/RecommendationsPage.test.jsx b/src/recommendations/tests/RecommendationsPage.test.jsx index 410d849b..c5a3494a 100644 --- a/src/recommendations/tests/RecommendationsPage.test.jsx +++ b/src/recommendations/tests/RecommendationsPage.test.jsx @@ -2,14 +2,14 @@ import React from 'react'; import { Provider } from 'react-redux'; import { getConfig, mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; +import { sendTrackEvent } from '@edx/frontend-platform/analytics'; import { injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { act } from 'react-dom/test-utils'; import configureStore from 'redux-mock-store'; import { DEFAULT_REDIRECT_URL } from '../../data/constants'; -import * as getPersonalizedRecommendations from '../data/service'; +import getPersonalizedRecommendations from '../data/service'; import { trackRecommendationCardClickOptimizely } from '../optimizelyExperiment'; import RecommendationsPage from '../RecommendationsPage'; import { mockedGeneralRecommendations, mockedResponse } from './mockedData'; @@ -17,14 +17,17 @@ import { mockedGeneralRecommendations, mockedResponse } from './mockedData'; const IntlRecommendationsPage = injectIntl(RecommendationsPage); const mockStore = configureStore(); -jest.mock('@edx/frontend-platform/analytics'); -jest.mock('../data/service'); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendTrackEvent: jest.fn(), +})); +jest.mock('../data/service', () => ({ + __esModule: true, + default: jest.fn(), +})); jest.mock('../optimizelyExperiment', () => ({ trackRecommendationCardClickOptimizely: jest.fn(), })); -analytics.sendTrackEvent = jest.fn(); - describe('RecommendationsPageTests', () => { mergeConfig({ GENERAL_RECOMMENDATIONS: '[]', @@ -72,10 +75,10 @@ describe('RecommendationsPageTests', () => { href: getConfig().BASE_URL, assign: jest.fn().mockImplementation((value) => { window.location.href = value; }), }; - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve([])); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve([])); await getRecommendationsPage({}); - expect(getPersonalizedRecommendations.default).toHaveBeenCalledTimes(0); + expect(getPersonalizedRecommendations).toHaveBeenCalledTimes(0); expect(window.location.href).toEqual(DASHBOARD_URL); }); it('redirects to dashboard if user click on skip button', async () => { @@ -92,21 +95,21 @@ describe('RecommendationsPageTests', () => { }, }, }; - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve(mockedResponse)); const recommendationsPage = await getRecommendationsPage(props); recommendationsPage.find('button').simulate('click'); expect(window.location.href).toEqual(DASHBOARD_URL); }); it('should call trackRecommendationCardClickOptimizely when card is clicked', async () => { - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve(mockedResponse)); const recommendationsPage = await getRecommendationsPage(); recommendationsPage.find('.card-box').first().simulate('click'); expect(trackRecommendationCardClickOptimizely).toHaveBeenCalledTimes(1); }); it('should show loading state to user', async () => { - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve(mockedResponse)); await act(async () => { const recommendationsPage = mount(reduxWrapper()); expect(recommendationsPage.find('.centered-align-spinner').exists()).toBeTruthy(); @@ -116,11 +119,12 @@ describe('RecommendationsPageTests', () => { it('should call getPersonalizedRecommendations', async () => { delete window.location; window.location = { assign: jest.fn() }; - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve([])); + getPersonalizedRecommendations.mockClear(); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve([])); await getRecommendationsPage(); - expect(getPersonalizedRecommendations.default).toHaveBeenCalledTimes(1); - expect(analytics.sendTrackEvent).toHaveBeenCalledWith( + expect(getPersonalizedRecommendations).toHaveBeenCalledTimes(1); + expect(sendTrackEvent).toHaveBeenCalledWith( 'edx.bi.user.recommendations.viewed', { page: 'authn_recommendations', @@ -133,14 +137,14 @@ describe('RecommendationsPageTests', () => { }); it('should display recommendations returned by Algolia', async () => { - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve(mockedResponse)); const recommendationsPage = await getRecommendationsPage(); expect(recommendationsPage.find('#course-recommendations').exists()).toBeTruthy(); }); it('should not display recommendations if error comes in while fetching the recommendations', async () => { - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.reject(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.reject(mockedResponse)); const recommendationsPage = await getRecommendationsPage(); expect(recommendationsPage.find('#recommendation-card').exists()).toBeFalsy(); @@ -149,7 +153,7 @@ describe('RecommendationsPageTests', () => { it('should redirect if recommended courses count is less than RECOMMENDATIONS_COUNT', async () => { delete window.location; window.location = { assign: jest.fn() }; - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve([mockedResponse[0]])); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve([mockedResponse[0]])); const recommendationsPage = await getRecommendationsPage(); expect(recommendationsPage.find('#course-recommendations').exists()).toBeFalsy(); @@ -160,14 +164,14 @@ describe('RecommendationsPageTests', () => { mergeConfig({ GENERAL_RECOMMENDATIONS: mockedGeneralRecommendations, }); - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve([])); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve([])); const recommendationsPage = await getRecommendationsPage(); expect(recommendationsPage.find('#course-recommendations').exists()).toBeTruthy(); }); it('should display all owners for a course', async () => { - getPersonalizedRecommendations.default = jest.fn().mockImplementation(() => Promise.resolve(mockedResponse)); + getPersonalizedRecommendations.mockImplementation(() => Promise.resolve(mockedResponse)); const recommendationsPage = await getRecommendationsPage(); expect( diff --git a/src/register/tests/RegistrationPage.test.jsx b/src/register/tests/RegistrationPage.test.jsx index cd2cc3bf..50f0b44c 100644 --- a/src/register/tests/RegistrationPage.test.jsx +++ b/src/register/tests/RegistrationPage.test.jsx @@ -3,7 +3,7 @@ import { Provider } from 'react-redux'; import CookiePolicyBanner from '@edx/frontend-component-cookie-policy-banner'; import { getConfig, mergeConfig } from '@edx/frontend-platform'; -import * as analytics from '@edx/frontend-platform/analytics'; +import { sendPageEvent } from '@edx/frontend-platform/analytics'; import { configure, getLocale, injectIntl, IntlProvider, } from '@edx/frontend-platform/i18n'; @@ -27,15 +27,15 @@ import { import RegistrationFailureMessage from '../RegistrationFailure'; import RegistrationPage from '../RegistrationPage'; -jest.mock('@edx/frontend-platform/analytics'); +jest.mock('@edx/frontend-platform/analytics', () => ({ + sendPageEvent: jest.fn(), + sendTrackEvent: jest.fn(), +})); jest.mock('@edx/frontend-platform/i18n', () => ({ ...jest.requireActual('@edx/frontend-platform/i18n'), getLocale: jest.fn(), })); -analytics.sendTrackEvent = jest.fn(); -analytics.sendPageEvent = jest.fn(); - const IntlRegistrationPage = injectIntl(RegistrationPage); const IntlRegistrationFailure = injectIntl(RegistrationFailureMessage); const mockStore = configureStore(); @@ -878,7 +878,7 @@ describe('RegistrationPage', () => { it('should send page event when register page is rendered', () => { mount(reduxWrapper()); - expect(analytics.sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'register'); + expect(sendPageEvent).toHaveBeenCalledWith('login_and_registration', 'register'); }); it('should populate form with pipeline user details', () => { diff --git a/src/reset-password/tests/ResetPasswordPage.test.jsx b/src/reset-password/tests/ResetPasswordPage.test.jsx index d0926d41..0f39dbe4 100644 --- a/src/reset-password/tests/ResetPasswordPage.test.jsx +++ b/src/reset-password/tests/ResetPasswordPage.test.jsx @@ -2,7 +2,6 @@ import React from 'react'; import { Provider } from 'react-redux'; import CookiePolicyBanner from '@edx/frontend-component-cookie-policy-banner'; -import * as auth from '@edx/frontend-platform/auth'; import { configure, injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import { mount } from 'enzyme'; import { createMemoryHistory } from 'history'; @@ -69,11 +68,13 @@ describe('ResetPasswordPage', () => { }, }); - auth.getHttpClient = jest.fn(() => ({ - post: async () => ({ - data: {}, - catch: () => {}, - }), + jest.mock('@edx/frontend-platform/auth', () => ({ + getHttpClient: jest.fn(() => ({ + post: async () => ({ + data: {}, + catch: () => {}, + }), + })), })); store.dispatch = jest.fn(store.dispatch);