Skip to content

Commit

Permalink
test: add IntlProvider
Browse files Browse the repository at this point in the history
  • Loading branch information
muhammad-ammar committed May 21, 2024
1 parent 0fc3bed commit 5367fa8
Show file tree
Hide file tree
Showing 18 changed files with 131 additions and 75 deletions.
15 changes: 13 additions & 2 deletions src/components/Admin/AdminSearchForm.test.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { mount } from 'enzyme';
import { FormControl } from '@edx/paragon';
import { IntlProvider } from '@edx/frontend-platform/i18n';

import AdminSearchForm from './AdminSearchForm';
import SearchBar from '../SearchBar';
Expand All @@ -17,9 +18,17 @@ const DEFAULT_PROPS = {
tableData: [],
};

const AdminSearchFormWrapper = props => (
<IntlProvider locale="en">
<AdminSearchForm {...props} />
</IntlProvider>
);

describe('<AdminSearchForm />', () => {
it('displays three filters', () => {
const wrapper = mount(<AdminSearchForm {...DEFAULT_PROPS} />);
const wrapper = mount(
<AdminSearchFormWrapper {...DEFAULT_PROPS} />,
);
expect(wrapper.find(FormControl)).toHaveLength(2);
expect(wrapper.find(SearchBar)).toHaveLength(1);
expect(wrapper.find(FormControl).at(1).text()).toContain('Choose a course');
Expand All @@ -32,7 +41,9 @@ describe('<AdminSearchForm />', () => {
it(`calls searchEnrollmentsList when ${Object.keys(searchParams)[0]} changes`, () => {
const spy = jest.fn();
const props = { ...DEFAULT_PROPS, searchEnrollmentsList: spy };
const wrapper = mount(<AdminSearchForm {...props} />);
const wrapper = mount(
<AdminSearchFormWrapper {...props} />,
);
wrapper.setProps({ searchParams });
expect(spy).toHaveBeenCalledTimes(1);
});
Expand Down
4 changes: 2 additions & 2 deletions src/components/Admin/EmbeddedSubscription.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ const EmbeddedSubscription = () => {
description="Heading for the embedded subscription section on lpr page."
/>
</h2>
{activeSubscriptions.length > 0
{activeSubscriptions.length > 1
? (
<>
<p className="ml-4 mt-3">
Expand Down Expand Up @@ -96,7 +96,7 @@ const EmbeddedSubscription = () => {
</Link>
),
}}
/* eslint-disable react/no-unstable-nested-components */
/* eslint-disable react/no-unstable-nested-components */a
/>
</span>
<span>
Expand Down
2 changes: 1 addition & 1 deletion src/components/Admin/SubscriptionDetails.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ const SubscriptionDetails = ({ enterpriseSlug }) => {
return (
<>
<SubscriptionExpirationBanner isSubscriptionPlanDetails />
<Row className="ml-2" style={{ border: '1px solid red' }}>
<Row className="ml-2">
<Col>
<div className="mt-3 d-flex align-items-center">
<div className="mr-5">
Expand Down
3 changes: 1 addition & 2 deletions src/components/Admin/__snapshots__/Admin.test.jsx.snap
Original file line number Diff line number Diff line change
Expand Up @@ -9860,8 +9860,7 @@ exports[`<Admin /> renders correctly with error state 1`] = `
Hey, nice to see you
</div>
<p>
Try refreshing your screen
Network Error
Try refreshing your screen Network Error
</p>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/components/Admin/licenses/LicenseAllocationDetails.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import LicenseAllocationHeader from './LicenseAllocationHeader';
import LicenseManagementTable from './LicenseManagementTable';

const LicenseAllocationDetails = ({ subscriptionUUID }) => (
<div className="row mb-3" key={subscriptionUUID} style={{ border: '1px solid green' }}>
<div className="row mb-3" key={subscriptionUUID}>
<div className="col">
<div className="mb-3">
<LicenseAllocationHeader />
Expand Down
2 changes: 1 addition & 1 deletion src/components/Admin/licenses/LicenseAllocationHeader.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const LicenseAllocationHeader = () => {
return (
<>
{isBrowseAndRequestFeatureAlertShown && <NewFeatureAlertBrowseAndRequest />}
<div className="ml-4" style={{ border: '1px solid black' }}>
<div className="ml-4">
<h4 style={{ display: 'inline-block' }}>
<FormattedMessage
id="admin.portal.lpr.embedded.subscription.licenses.header"
Expand Down
21 changes: 12 additions & 9 deletions src/components/Admin/licenses/LicenseAllocationHeader.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import { Provider } from 'react-redux';
import renderer from 'react-test-renderer';
import { MemoryRouter } from 'react-router-dom';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import configureMockStore from 'redux-mock-store';
import LicenseAllocationHeader from './LicenseAllocationHeader';
import { SubscriptionDetailContext } from '../../subscriptions/SubscriptionDetailContextProvider';
Expand Down Expand Up @@ -60,15 +61,17 @@ describe('LicenseAllocationHeader', () => {
);

const LicenseAllocationHeaderWrapper = () => (
<Provider store={mockStore({})}>
<MemoryRouter>
<SubscriptionDetailContextWrapper>
<SubsidyRequestsContextWrapper>
<LicenseAllocationHeader />
</SubsidyRequestsContextWrapper>
</SubscriptionDetailContextWrapper>
</MemoryRouter>
</Provider>
<IntlProvider locale="en">
<Provider store={mockStore({})}>
<MemoryRouter>
<SubscriptionDetailContextWrapper>
<SubsidyRequestsContextWrapper>
<LicenseAllocationHeader />
</SubsidyRequestsContextWrapper>
</SubscriptionDetailContextWrapper>
</MemoryRouter>
</Provider>
</IntlProvider>
);

it('renders without crashing', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ const userRecentAction = (user, intl) => {
case ASSIGNED: {
return intl.formatMessage({

Check warning on line 51 in src/components/Admin/licenses/LicenseManagementTable/index.jsx

View check run for this annotation

Codecov / codecov/patch

src/components/Admin/licenses/LicenseManagementTable/index.jsx#L51

Added line #L51 was not covered by tests
id: 'admin.portal.lpr.embedded.subscription.license.management.table.user.recent.action.invited',
defaultMessage: 'Invited: {revokedDate}',
defaultMessage: 'Invited: {lastRemindDate}',
description: 'Invited action date for a user in the license management table.',
}, { revokedDate: i18nFormatTimestamp({ intl, timestamp: user.lastRemindDate }) });
}, { lastRemindDate: i18nFormatTimestamp({ intl, timestamp: user.lastRemindDate }) });
}
default: {
return null;
Expand Down Expand Up @@ -226,7 +226,7 @@ const LicenseManagementTable = ({ subscriptionUUID }) => {
const showSubscriptionZeroStateMessage = subscription.licenses.total === subscription.licenses.unassigned;

return (
<div key={subscriptionUUID} style={{ border: '1px solid blue' }}>
<div key={subscriptionUUID}>
{showSubscriptionZeroStateMessage && <SubscriptionZeroStateMessage /> }
<DataTable
isSortable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,12 @@ exports[`LicenseAllocationHeader renders without crashing 1`] = `
<span
className="mr-2 ml-2 badge badge-light"
>
Unassigned:
1
of
2
total
Unassigned: 1 of 2 total
</span>
<span
className="badge badge-light"
>
Activated:
1
of
2
assigned
Activated: 1 of 2 assigned
</span>
</div>
`;
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import renderer from 'react-test-renderer';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
Expand Down Expand Up @@ -29,11 +30,13 @@ const store = mockStore({

const CompletedLearnersWrapper = props => (
<MemoryRouter>
<Provider store={store}>
<CompletedLearnersTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={store}>
<CompletedLearnersTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import renderer from 'react-test-renderer';
import configureMockStore from 'redux-mock-store';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
import { mount } from 'enzyme';
Expand Down Expand Up @@ -94,21 +95,25 @@ const enrolledLearnersForInactiveCoursesStore = mockStore({

const EnrolledLearnersForInactiveCoursesEmptyTableWrapper = props => (
<MemoryRouter>
<Provider store={enrolledLearnersForInactiveCoursesEmptyStore}>
<EnrolledLearnersForInactiveCoursesTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={enrolledLearnersForInactiveCoursesEmptyStore}>
<EnrolledLearnersForInactiveCoursesTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

const EnrolledLearnersForInactiveCoursesWrapper = props => (
<MemoryRouter>
<Provider store={enrolledLearnersForInactiveCoursesStore}>
<EnrolledLearnersForInactiveCoursesTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={enrolledLearnersForInactiveCoursesStore}>
<EnrolledLearnersForInactiveCoursesTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import renderer from 'react-test-renderer';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
Expand Down Expand Up @@ -29,11 +30,13 @@ const store = mockStore({

const EnrolledLearnersWrapper = props => (
<MemoryRouter>
<Provider store={store}>
<EnrolledLearnersTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={store}>
<EnrolledLearnersTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
25 changes: 15 additions & 10 deletions src/components/LearnerActivityTable/LearnerActivityTable.test.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import renderer from 'react-test-renderer';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
Expand Down Expand Up @@ -83,21 +84,25 @@ const learnerActivityStore = mockStore({

const LearnerActivityEmptyTableWrapper = props => (
<MemoryRouter>
<Provider store={learnerActivityEmptyStore}>
<LearnerActivityTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={learnerActivityEmptyStore}>
<LearnerActivityTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

const LearnerActivityTableWrapper = props => (
<MemoryRouter>
<Provider store={learnerActivityStore}>
<LearnerActivityTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={learnerActivityStore}>
<LearnerActivityTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
2 changes: 1 addition & 1 deletion src/components/LearnerActivityTable/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ class LearnerActivityTable extends React.Component {
user_account_creation_date: i18nFormatTimestamp({
intl: this.props.intl, timestamp: enrollment.user_account_creation_date,
}),
progress_status: i18nFormatProgressStatus({ intl: this.props.intl, timestamp: enrollment.progress_status }),
progress_status: i18nFormatProgressStatus({ intl: this.props.intl, progressStatus: enrollment.progress_status }),
course_list_price: enrollment.course_list_price ? `$${enrollment.course_list_price}` : '',
current_grade: formatPercentage({ decimal: enrollment.current_grade }),
}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import renderer from 'react-test-renderer';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import { mount } from 'enzyme';

import PastWeekPassedLearnersTable from '.';
Expand Down Expand Up @@ -50,11 +51,13 @@ const store = mockStore({

const PastWeekPassedLearnersWrapper = props => (
<MemoryRouter>
<Provider store={store}>
<PastWeekPassedLearnersTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={store}>
<PastWeekPassedLearnersTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import renderer from 'react-test-renderer';
import { IntlProvider } from '@edx/frontend-platform/i18n';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { Provider } from 'react-redux';
Expand Down Expand Up @@ -29,11 +30,13 @@ const store = mockStore({

const RegisteredLearnersWrapper = props => (
<MemoryRouter>
<Provider store={store}>
<RegisteredLearnersTable
{...props}
/>
</Provider>
<IntlProvider locale="en">
<Provider store={store}>
<RegisteredLearnersTable
{...props}
/>
</Provider>
</IntlProvider>
</MemoryRouter>
);

Expand Down
6 changes: 3 additions & 3 deletions src/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ function i18nFormatProgressStatus({ intl, progressStatus }) {
switch (progressStatus) {
case 'In Progress':
return intl.formatMessage({
id: 'admin.portal.lpr.progress.status.has.not.passed',
defaultMessage: 'Has not passed',
description: 'Text to display when the learner has not passed the course',
id: 'admin.portal.lpr.progress.status.in.progress',
defaultMessage: 'In Progress',
description: 'Text to display when the learner is in progress of the course',
});
case 'Passed':
return intl.formatMessage({
Expand Down
Loading

0 comments on commit 5367fa8

Please sign in to comment.