Skip to content

Commit 6364d1a

Browse files
test: fix completely broken tests
1 parent b5a7f78 commit 6364d1a

2 files changed

Lines changed: 33 additions & 33 deletions

File tree

src/schedule-and-details/learning-outcomes-section/InstructorsSection.test.jsx

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import React from 'react';
2-
import {
3-
act, fireEvent, render, waitFor,
4-
} from '@testing-library/react';
1+
import { fireEvent, render } from '@testing-library/react';
52
import { IntlProvider } from '@edx/frontend-platform/i18n';
63

74
import { courseDetailsMock } from '../__mocks__';
@@ -29,38 +26,43 @@ describe('<LearningOutcomesSection />', () => {
2926
});
3027

3128
it('should create another learning outcome form on click Add learning outcome', async () => {
32-
const { getAllByRole, getByRole } = render(<RootWrapper {...props} />);
29+
const { getByRole } = render(<RootWrapper {...props} />);
3330
const addButton = getByRole('button', { name: messages.outcomesAdd.defaultMessage });
34-
act(() => {
35-
fireEvent.click(addButton);
36-
});
31+
expect(onChangeMock).not.toHaveBeenCalled();
32+
fireEvent.click(addButton);
33+
expect(onChangeMock).toHaveBeenCalledWith([
34+
props.learningInfo[0],
35+
'', // <-- new
36+
], 'learningInfo');
3737

38-
await waitFor(() => {
39-
const deleteButtons = getAllByRole('button', { name: messages.outcomesDelete.defaultMessage });
40-
expect(deleteButtons.length).toBe(2);
41-
});
38+
// FIXME: the following doesn't happen, because this is a controlled component and only changes
39+
// when the props change (in response to 'onChange'). This needs to be tested at a higher level,
40+
// e.g. testing the whole page together, not just this component.
41+
// await waitFor(() => {
42+
// const deleteButtons = getAllByRole('button', { name: messages.outcomesDelete.defaultMessage });
43+
// expect(deleteButtons.length).toBe(2);
44+
// });
4245
});
4346

4447
it('should delete learning outcome form on click Delete', async () => {
45-
const { getAllByRole, getByRole } = render(<RootWrapper {...props} />);
48+
const { getByRole } = render(<RootWrapper {...props} />);
4649
const deleteButton = getByRole('button', { name: messages.outcomesDelete.defaultMessage });
47-
act(() => {
48-
fireEvent.click(deleteButton);
49-
});
50+
fireEvent.click(deleteButton);
5051

5152
expect(onChangeMock).toHaveBeenCalledWith([], 'learningInfo');
52-
await waitFor(() => {
53-
const deleteButtons = getAllByRole('button', { name: messages.outcomesDelete.defaultMessage });
54-
expect(deleteButtons.length).toBe(0);
55-
});
53+
// FIXME: the following doesn't happen, because this is a controlled component and only changes
54+
// when the props change (in response to 'onChange'). This needs to be tested at a higher level,
55+
// e.g. testing the whole page together, not just this component.
56+
// await waitFor(() => {
57+
// const deleteButtons = getAllByRole('button', { name: messages.outcomesDelete.defaultMessage });
58+
// expect(deleteButtons.length).toBe(0);
59+
// });
5660
});
5761

5862
it('should call onChange if input value changed', () => {
5963
const { getByPlaceholderText } = render(<RootWrapper {...props} />);
6064
const input = getByPlaceholderText(messages.outcomesInputPlaceholder.defaultMessage);
61-
act(() => {
62-
fireEvent.change(input, { target: { value: 'abc' } });
63-
});
65+
fireEvent.change(input, { target: { value: 'abc' } });
6466

6567
expect(onChangeMock).toHaveBeenCalledWith(['abc'], 'learningInfo');
6668
});

src/schedule-and-details/license-section/license-selector/LicenseSelector.test.jsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import React from 'react';
2-
import {
3-
act, fireEvent, render, waitFor,
4-
} from '@testing-library/react';
1+
import { fireEvent, render } from '@testing-library/react';
52
import { IntlProvider } from '@edx/frontend-platform/i18n';
63

74
import { LICENSE_TYPE } from '../constants';
@@ -40,16 +37,17 @@ describe('<LicenseSelector />', () => {
4037
const { getByRole } = render(<RootWrapper {...props} />);
4138
const button = getByRole('button', { name: messages.licenseChoice2.defaultMessage });
4239
expect(button).toHaveClass('btn btn-outline-primary');
43-
act(() => {
44-
fireEvent.click(button);
45-
});
46-
await waitFor(() => {
47-
expect(button).toHaveClass('btn btn-primary');
48-
});
40+
fireEvent.click(button);
4941
expect(props.onChangeLicenseType).toHaveBeenCalledWith(
5042
LICENSE_TYPE.creativeCommons,
5143
'license',
5244
);
45+
// FIXME: the following doesn't happen, because this is a controlled component and only changes
46+
// when the props change (in response to 'onChange'). This needs to be tested at a higher level,
47+
// e.g. testing the whole page together, not just this component.
48+
// await waitFor(() => {
49+
// expect(button).toHaveClass('btn btn-primary');
50+
// });
5351
});
5452

5553
it('should show disabled buttons if license is null', () => {

0 commit comments

Comments
 (0)