From 320f6acc21426bcf95d4b1826753430a82a93f9b Mon Sep 17 00:00:00 2001 From: Ben Warzeski Date: Mon, 10 Apr 2023 10:07:02 -0400 Subject: [PATCH] fix: show cert for not-passing courses and hide link when missing URL (#131) --- .../CourseCardBanners/CertificateBanner.jsx | 26 +++++++++++-------- .../CertificateBanner.test.jsx | 26 +++++++++++-------- .../CertificateBanner.test.jsx.snap | 15 ++++++----- 3 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx b/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx index c5a3773..1bae25f 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.jsx @@ -40,6 +40,21 @@ export const CertificateBanner = ({ cardId }) => { ); } + if (certificate.isDownloadable) { + return ( + + {formatMessage(messages.certReady)} + {certificate.certPreviewUrl && ( + <> + {' '} + + {formatMessage(messages.viewCertificate)} + + + )} + + ); + } if (!isPassing) { if (isAudit) { return ( @@ -63,17 +78,6 @@ export const CertificateBanner = ({ cardId }) => { ); } - if (certificate.isDownloadable) { - return ( - - {formatMessage(messages.certReady)} - {' '} - - {formatMessage(messages.viewCertificate)} - - - ); - } if (certificate.isEarnedButUnavailable) { return ( diff --git a/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.test.jsx b/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.test.jsx index 44369de..cf8c20d 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.test.jsx +++ b/src/containers/CourseCard/components/CourseCardBanners/CertificateBanner.test.jsx @@ -54,6 +54,7 @@ describe('CertificateBanner', () => { reduxHooks.useCardCourseRunData.mockReturnValueOnce({ ...defaultCourseRun, ...courseRun }); return shallow(); }; + /** TODO: Update tests to validate snapshots **/ describe('snapshot', () => { test('is restricted', () => { const wrapper = createWrapper({ @@ -74,6 +75,20 @@ describe('CertificateBanner', () => { }); expect(wrapper).toMatchSnapshot(); }); + test('is passing and is downloadable', () => { + const wrapper = createWrapper({ + grade: { isPassing: true }, + certificate: { isDownloadable: true }, + }); + expect(wrapper).toMatchSnapshot(); + }); + test('not passing and is downloadable', () => { + const wrapper = createWrapper({ + grade: { isPassing: false }, + certificate: { isDownloadable: true }, + }); + expect(wrapper).toMatchSnapshot(); + }); test('not passing and audit', () => { const wrapper = createWrapper({ enrollment: { @@ -92,17 +107,6 @@ describe('CertificateBanner', () => { const wrapper = createWrapper({}); expect(wrapper).toMatchSnapshot(); }); - test('is passing and is downloadable', () => { - const wrapper = createWrapper({ - grade: { - isPassing: true, - }, - certificate: { - isDownloadable: true, - }, - }); - expect(wrapper).toMatchSnapshot(); - }); test('is passing and is earned but unavailable', () => { const wrapper = createWrapper({ grade: { diff --git a/src/containers/CourseCard/components/CourseCardBanners/__snapshots__/CertificateBanner.test.jsx.snap b/src/containers/CourseCard/components/CourseCardBanners/__snapshots__/CertificateBanner.test.jsx.snap index 0b7479e..b337532 100644 --- a/src/containers/CourseCard/components/CourseCardBanners/__snapshots__/CertificateBanner.test.jsx.snap +++ b/src/containers/CourseCard/components/CourseCardBanners/__snapshots__/CertificateBanner.test.jsx.snap @@ -6,12 +6,6 @@ exports[`CertificateBanner snapshot is passing and is downloadable 1`] = ` variant="success" > Congratulations. Your certificate is ready. - - - View Certificate. - `; @@ -113,6 +107,15 @@ exports[`CertificateBanner snapshot not passing and has finished 1`] = ` `; +exports[`CertificateBanner snapshot not passing and is downloadable 1`] = ` + + Congratulations. Your certificate is ready. + +`; + exports[`CertificateBanner snapshot not passing and not audit and not finished 1`] = `