Skip to content

Commit

Permalink
refactor: added tests for the HelpSidebar component (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
PKulkoRaccoonGang authored Jul 31, 2023
1 parent e400359 commit 47d09f6
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/advanced-settings/AdvancedSettings.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -246,8 +246,9 @@ const AdvancedSettings = ({ intl, courseId }) => {
</Button>
),
<StatefulButton
key="statefulBtn"
onClick={handleUpdateAdvancedSettingsData}
state={isQueryPending && 'pending'}
state={isQueryPending ? RequestStatus.PENDING : 'default'}
{...updateSettingsButtonState}
/>,
].filter(Boolean)}
Expand Down
10 changes: 10 additions & 0 deletions src/advanced-settings/AdvancedSettings.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,14 @@ describe('<AdvancedSettings />', () => {
expect(textarea.value).toBe('[]');
});
});
it('should update the textarea value and display the updated value after clicking "Change manually"', async () => {
const { getByLabelText, getByText } = render(<RootWrapper />);
await waitFor(() => {
const textarea = getByLabelText(/Advanced Module List/i);
fireEvent.change(textarea, { target: { value: '[3, 2, 1' } });
fireEvent.click(getByText(messages.buttonSaveText.defaultMessage));
fireEvent.click(getByText(/Change manually/i));
expect(textarea.value).toBe('[3, 2, 1');
});
});
});
44 changes: 44 additions & 0 deletions src/generic/help-sidebar/HelpSidebar.test.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import React from 'react';
import { render } from '@testing-library/react';
import { IntlProvider } from '@edx/frontend-platform/i18n';

import HelpSidebar from '.';
import messages from './messages';

const mockPathname = '/foo-bar';

jest.mock('react-router-dom', () => ({
...jest.requireActual('react-router-dom'),
useLocation: () => ({
pathname: mockPathname,
}),
}));

const RootWrapper = () => (
<IntlProvider locale="en">
<HelpSidebar
courseId="course123"
showOtherSettings
proctoredExamSettingsUrl=""
>
<p>Test children</p>
</HelpSidebar>
</IntlProvider>
);

describe('HelpSidebar', () => {
it('renders children correctly', () => {
const { getByText } = render(<RootWrapper />);
expect(getByText('Test children')).toBeTruthy();
});
it('should render all sidebar links with correct text', () => {
const { getByText } = render(<RootWrapper />);
expect(getByText(messages.sidebarTitleOther.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToScheduleAndDetails.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToGrading.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToCourseTeam.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToGroupConfigurations.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToAdvancedSettings.defaultMessage)).toBeTruthy();
expect(getByText(messages.sidebarLinkToProctoredExamSettings.defaultMessage)).toBeTruthy();
});
});

0 comments on commit 47d09f6

Please sign in to comment.