fix: Bug-doc fixes (#52)

Co-authored-by: Leangseu Kim <lkim@edx.org>
This commit is contained in:
Ben Warzeski
2022-10-25 15:36:33 -04:00
committed by GitHub
parent f8b181e8c9
commit 61e484af1f
27 changed files with 404 additions and 165 deletions

View File

@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`CourseCardMenu snapshot 1`] = `
exports[`CourseCardMenu enrolled, share enabled snapshot 1`] = `
<Fragment>
<Dropdown>
<Dropdown.Toggle
@@ -49,7 +49,7 @@ exports[`CourseCardMenu snapshot 1`] = `
</Fragment>
`;
exports[`CourseCardMenu snapshot: masquerading 1`] = `
exports[`CourseCardMenu masquerading snapshot 1`] = `
<Fragment>
<Dropdown>
<Dropdown.Toggle
@@ -98,7 +98,7 @@ exports[`CourseCardMenu snapshot: masquerading 1`] = `
</Fragment>
`;
exports[`CourseCardMenu twitter share disabled 1`] = `
exports[`CourseCardMenu not enrolled, share disabled snapshot 1`] = `
<Fragment>
<Dropdown>
<Dropdown.Toggle
@@ -110,13 +110,6 @@ exports[`CourseCardMenu twitter share disabled 1`] = `
variant="primary"
/>
<Dropdown.Menu>
<Dropdown.Item
data-testid="unenrollModalToggle"
disabled={false}
onClick={[MockFunction unenrollShow]}
>
Unenroll
</Dropdown.Item>
<Dropdown.Item
data-testid="emailSettingsModalToggle"
disabled={false}

View File

@@ -17,6 +17,7 @@ export const CourseCardMenu = ({ cardId }) => {
const emailSettingsModal = useEmailSettings();
const unenrollModal = useUnenrollData();
const { courseName } = appHooks.useCardCourseData(cardId);
const { isEnrolled } = appHooks.useCardEnrollmentData(cardId);
const {
// facebook,
twitter,
@@ -36,13 +37,15 @@ export const CourseCardMenu = ({ cardId }) => {
alt={formatMessage(messages.dropdownAlt)}
/>
<Dropdown.Menu>
<Dropdown.Item
disabled={isMasquerading}
onClick={unenrollModal.show}
data-testid="unenrollModalToggle"
>
{formatMessage(messages.unenroll)}
</Dropdown.Item>
{isEnrolled && (
<Dropdown.Item
disabled={isMasquerading}
onClick={unenrollModal.show}
data-testid="unenrollModalToggle"
>
{formatMessage(messages.unenroll)}
</Dropdown.Item>
)}
<Dropdown.Item
disabled={isMasquerading}
onClick={emailSettingsModal.show}

View File

@@ -11,6 +11,7 @@ jest.mock('react-share', () => ({
jest.mock('data/redux', () => ({
hooks: {
useCardCourseData: jest.fn(),
useCardEnrollmentData: jest.fn(),
useCardSocialSettingsData: jest.fn(),
useMasqueradeData: jest.fn(),
},
@@ -47,6 +48,7 @@ const defaultSocialShare = {
};
const courseName = 'test-course-name';
let wrapper;
let el;
describe('CourseCardMenu', () => {
beforeEach(() => {
@@ -54,49 +56,74 @@ describe('CourseCardMenu', () => {
useUnenrollData.mockReturnValue(defaultUnenrollModal);
appHooks.useCardSocialSettingsData.mockReturnValue(defaultSocialShare);
appHooks.useCardCourseData.mockReturnValue({ courseName });
appHooks.useCardEnrollmentData.mockReturnValue({ isEnrolled: true });
appHooks.useMasqueradeData.mockReturnValue({ isMasquerading: false });
});
test('snapshot', () => {
wrapper = shallow(<CourseCardMenu {...props} />);
expect(wrapper).toMatchSnapshot();
// expect(wrapper.find('FacebookShareButton').length).toEqual(1);
expect(wrapper.find('TwitterShareButton').length).toEqual(1);
expect(wrapper.find({
'data-testid': 'unenrollModalToggle',
}).props().disabled).toEqual(false);
expect(wrapper.find({
'data-testid': 'emailSettingsModalToggle',
}).props().disabled).toEqual(false);
});
test('snapshot: masquerading', () => {
appHooks.useMasqueradeData.mockReturnValue({ isMasquerading: true });
wrapper = shallow(<CourseCardMenu {...props} />);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find({
'data-testid': 'unenrollModalToggle',
}).props().disabled).toEqual(true);
expect(wrapper.find({
'data-testid': 'emailSettingsModalToggle',
}).props().disabled).toEqual(true);
});
/*
test('facebook share disabled', () => {
appHooks.useCardSocialSettingsData.mockReturnValueOnce({
...defaultSocialShare,
facebook: { ...defaultSocialShare.facebook, isEnabled: false },
describe('enrolled, share enabled', () => {
beforeEach(() => {
wrapper = shallow(<CourseCardMenu {...props} />);
});
wrapper = shallow(<CourseCardMenu {...props} />);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find('FacebookShareButton').length).toEqual(0);
});
*/
test('twitter share disabled', () => {
appHooks.useCardSocialSettingsData.mockReturnValueOnce({
...defaultSocialShare,
twitter: { ...defaultSocialShare.twitter, isEnabled: false },
test('snapshot', () => {
expect(wrapper).toMatchSnapshot();
});
it('renders share buttons', () => {
// expect(wrapper.find('FacebookShareButton').length).toEqual(1);
expect(wrapper.find('TwitterShareButton').length).toEqual(1);
});
it('renders enabled unenroll modal toggle', () => {
el = wrapper.find({ 'data-testid': 'unenrollModalToggle' });
expect(el.props().disabled).toEqual(false);
});
it('renders enabled email settings modal toggle', () => {
el = wrapper.find({ 'data-testid': 'emailSettingsModalToggle' });
expect(el.props().disabled).toEqual(false);
});
});
describe('not enrolled, share disabled', () => {
beforeEach(() => {
appHooks.useCardSocialSettingsData.mockReturnValueOnce({
...defaultSocialShare,
twitter: { ...defaultSocialShare.twitter, isEnabled: false },
// facebook: { ...defaultSocialShare.facebook, isEnabled: false },
});
appHooks.useCardEnrollmentData.mockReturnValueOnce({ isEnrolled: false });
wrapper = shallow(<CourseCardMenu {...props} />);
});
test('snapshot', () => {
expect(wrapper).toMatchSnapshot();
});
it('renders share buttons', () => {
// expect(wrapper.find('FacebookShareButton').length).toEqual(0);
expect(wrapper.find('TwitterShareButton').length).toEqual(0);
});
it('does not render unenroll modal toggle', () => {
el = wrapper.find({ 'data-testid': 'unenrollModalToggle' });
expect(el.length).toEqual(0);
});
it('renders enabled email settings modal toggle', () => {
el = wrapper.find({ 'data-testid': 'emailSettingsModalToggle' });
expect(el.props().disabled).toEqual(false);
});
});
describe('masquerading', () => {
beforeEach(() => {
appHooks.useMasqueradeData.mockReturnValue({ isMasquerading: true });
wrapper = shallow(<CourseCardMenu {...props} />);
});
test('snapshot', () => {
expect(wrapper).toMatchSnapshot();
});
it('renders share buttons', () => {
// expect(wrapper.find('FacebookShareButton').length).toEqual(1);
expect(wrapper.find('TwitterShareButton').length).toEqual(1);
});
it('renders disabled unenroll modal toggle', () => {
el = wrapper.find({ 'data-testid': 'unenrollModalToggle' });
expect(el.props().disabled).toEqual(true);
});
it('renders disabled email settings modal toggle', () => {
el = wrapper.find({ 'data-testid': 'emailSettingsModalToggle' });
expect(el.props().disabled).toEqual(true);
});
wrapper = shallow(<CourseCardMenu {...props} />);
expect(wrapper).toMatchSnapshot();
expect(wrapper.find('TwitterShareButton').length).toEqual(0);
});
});