From 862ff2d0e2e142efed51ee5735d218294e955acd Mon Sep 17 00:00:00 2001 From: Ben Warzeski Date: Mon, 13 Jun 2022 11:32:14 -0400 Subject: [PATCH] feat: Unenroll tests --- jest.config.js | 2 +- .../components/ConfirmPane.test.jsx | 14 +++ .../components/FinishedPane.test.jsx | 21 ++++ .../components/ReasonPane.test.jsx | 23 ++++ .../__snapshots__/ConfirmPane.test.jsx.snap | 33 +++++ .../__snapshots__/FinishedPane.test.jsx.snap | 52 ++++++++ .../__snapshots__/ReasonPane.test.jsx.snap | 119 ++++++++++++++++++ src/{setupTest.js => setupTest.jsx} | 9 ++ 8 files changed, 272 insertions(+), 1 deletion(-) create mode 100644 src/containers/UnenrollConfirmModal/components/ConfirmPane.test.jsx create mode 100644 src/containers/UnenrollConfirmModal/components/FinishedPane.test.jsx create mode 100644 src/containers/UnenrollConfirmModal/components/ReasonPane.test.jsx create mode 100644 src/containers/UnenrollConfirmModal/components/__snapshots__/ConfirmPane.test.jsx.snap create mode 100644 src/containers/UnenrollConfirmModal/components/__snapshots__/FinishedPane.test.jsx.snap create mode 100644 src/containers/UnenrollConfirmModal/components/__snapshots__/ReasonPane.test.jsx.snap rename src/{setupTest.js => setupTest.jsx} (94%) diff --git a/jest.config.js b/jest.config.js index cd47690..e6b1116 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,7 +3,7 @@ const { createConfig } = require('@edx/frontend-build'); module.exports = createConfig('jest', { setupFilesAfterEnv: [ 'jest-expect-message', - '/src/setupTest.js', + '/src/setupTest.jsx', ], modulePaths: ['/src/'], snapshotSerializers: [ diff --git a/src/containers/UnenrollConfirmModal/components/ConfirmPane.test.jsx b/src/containers/UnenrollConfirmModal/components/ConfirmPane.test.jsx new file mode 100644 index 0000000..e9364a5 --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/ConfirmPane.test.jsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { shallow } from 'enzyme'; + +import { ConfirmPane } from './ConfirmPane'; + +describe('UnenrollConfirmModal ConfirmPane', () => { + test('snapshot', () => { + const props = { + handleClose: jest.fn().mockName('props.handleClose'), + handleConfirm: jest.fn().mockName('props.handleConfirm'), + }; + expect(shallow()).toMatchSnapshot(); + }); +}); diff --git a/src/containers/UnenrollConfirmModal/components/FinishedPane.test.jsx b/src/containers/UnenrollConfirmModal/components/FinishedPane.test.jsx new file mode 100644 index 0000000..ee74351 --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/FinishedPane.test.jsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { shallow } from 'enzyme'; + +import { FinishedPane } from './FinishedPane'; + +describe('UnenrollConfirmModal FinishedPane', () => { + test('snapshot: gave reason', () => { + const props = { + gaveReason: true, + handleClose: jest.fn().mockName('props.handleClose'), + }; + expect(shallow()).toMatchSnapshot(); + }); + test('snapshot: did not give reason', () => { + const props = { + gaveReason: false, + handleClose: jest.fn().mockName('props.handleClose'), + }; + expect(shallow()).toMatchSnapshot(); + }); +}); diff --git a/src/containers/UnenrollConfirmModal/components/ReasonPane.test.jsx b/src/containers/UnenrollConfirmModal/components/ReasonPane.test.jsx new file mode 100644 index 0000000..039974e --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/ReasonPane.test.jsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { shallow } from 'enzyme'; + +import { ReasonPane } from './ReasonPane'; + +describe('UnenrollConfirmModal ReasonPane', () => { + const props = { + reason: { + value: 'props.reason.value', + skip: jest.fn().mockName('props.reason.skip'), + selectOption: jest.fn().mockName('props.reason.selectOption'), + customOption: { + value: 'props.reason.customOption.value', + onChange: jest.fn().mockName('props.reason.customOption.onChange'), + }, + selected: 'props.reason.selected', + submit: jest.fn().mockName('props.reason.submit'), + }, + }; + test('snapshot', () => { + expect(shallow()).toMatchSnapshot(); + }); +}); diff --git a/src/containers/UnenrollConfirmModal/components/__snapshots__/ConfirmPane.test.jsx.snap b/src/containers/UnenrollConfirmModal/components/__snapshots__/ConfirmPane.test.jsx.snap new file mode 100644 index 0000000..4706b8d --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/__snapshots__/ConfirmPane.test.jsx.snap @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`UnenrollConfirmModal ConfirmPane snapshot 1`] = ` + +

+ +

+

+ +

+ + + + +
+`; diff --git a/src/containers/UnenrollConfirmModal/components/__snapshots__/FinishedPane.test.jsx.snap b/src/containers/UnenrollConfirmModal/components/__snapshots__/FinishedPane.test.jsx.snap new file mode 100644 index 0000000..8015b6a --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/__snapshots__/FinishedPane.test.jsx.snap @@ -0,0 +1,52 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`UnenrollConfirmModal FinishedPane snapshot: did not give reason 1`] = ` + +

+ +

+

+ +

+ + + +
+`; + +exports[`UnenrollConfirmModal FinishedPane snapshot: gave reason 1`] = ` + +

+ +

+

+ + +

+ + + +
+`; diff --git a/src/containers/UnenrollConfirmModal/components/__snapshots__/ReasonPane.test.jsx.snap b/src/containers/UnenrollConfirmModal/components/__snapshots__/ReasonPane.test.jsx.snap new file mode 100644 index 0000000..2490718 --- /dev/null +++ b/src/containers/UnenrollConfirmModal/components/__snapshots__/ReasonPane.test.jsx.snap @@ -0,0 +1,119 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`UnenrollConfirmModal ReasonPane snapshot 1`] = ` + +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + } + value="props.reason.customOption.value" + /> + + + + + + +
+`; diff --git a/src/setupTest.js b/src/setupTest.jsx similarity index 94% rename from src/setupTest.js rename to src/setupTest.jsx index 7c18c9b..be5d5b1 100755 --- a/src/setupTest.js +++ b/src/setupTest.jsx @@ -23,6 +23,15 @@ jest.mock('@edx/frontend-platform/i18n', () => { intlShape: PropTypes.shape({ formatMessage: PropTypes.func, }), + useIntl: () => ({ + formatMessage: (msg) => ( + + ), + formatDate: jest.fn().mockName('useIntl.formatDate'), + }), defineMessages: m => m, FormattedMessage: () => 'FormattedMessage', };