fix: tests

This commit is contained in:
Ben Warzeski
2022-08-22 11:15:09 -04:00
parent c1bffe164e
commit f5ce920865
7 changed files with 33 additions and 24 deletions

View File

@@ -61,23 +61,12 @@ export const CertificateBanner = ({ cardId }) => {
);
}
if (certificate.isDownloadable) {
if (certificate.certPreviewUrl) {
return (
<Banner variant="success" icon={CheckCircle}>
{formatMessage(messages.certReady)}
{' '}
<Hyperlink destination={certificate.certPreviewUrl}>
{formatMessage(messages.viewCertificate)}
</Hyperlink>
</Banner>
);
}
return (
<Banner variant="success" icon={CheckCircle}>
{formatMessage(messages.certReady)}
{' '}
<Hyperlink destination={certificate.certDownloadUrl}>
{formatMessage(messages.downloadCertificate)}
<Hyperlink destination={certificate.certPreviewUrl}>
{formatMessage(messages.viewCertificate)}
</Hyperlink>
</Banner>
);

View File

@@ -8,6 +8,9 @@ export const useAccessMessage = ({ cardId }) => {
const { formatMessage, formatDate } = useIntl();
const enrollment = appHooks.useCardEnrollmentData(cardId);
const courseRun = appHooks.useCardCourseRunData(cardId);
if (!courseRun.isStarted) {
return formatMessage(messages.courseStarts, { startDate: courseRun.startDate });
}
if (enrollment.isEnrolled) {
if (enrollment.isAudit) {
const {

View File

@@ -80,8 +80,10 @@ describe('CourseCardDetails hooks', () => {
isAuditAccessExpired: false,
};
const courseRunData = {
isStarted: true,
isFinished: false,
endDate: '10/20/1000',
startDate: '10/10/1000',
endDate: '10/20/2000',
};
const runHook = ({ enrollment = {}, courseRun = {} }) => {
appHooks.useCardCourseRunData.mockReturnValueOnce({
@@ -101,6 +103,19 @@ describe('CourseCardDetails hooks', () => {
expect(appHooks.useCardEnrollmentData).toHaveBeenCalledWith(cardId);
});
describe('if not started yet', () => {
it('returns accessExpired message with accessExpirationDate from cardData', () => {
runHook({
enrollment: { isAudit: true, isAuditAccessExpired: true },
courseRun: { isStarted: false },
});
expect(out).toEqual(formatMessage(
messages.courseStarts,
{ startDate: dateFormatter(formatDate, courseRunData.startDate) },
));
});
});
describe('if audit, and expired', () => {
it('returns accessExpired message with accessExpirationDate from cardData', () => {
runHook({ enrollment: { isAudit: true, isAuditAccessExpired: true } });

View File

@@ -21,6 +21,11 @@ export const messages = StrictDict({
description: 'Course ending message on course card.',
defaultMessage: 'Course ends {endDate}',
},
courseStarts: {
id: 'learner-dash.courseCard.CourseCardDetails.courseStarts',
description: 'Course start date message on course card.',
defaultMessage: 'Course starts {startDate}',
},
unknownProviderName: {
id: 'learner-dash.courseCard.CourseCardDetails.unknownProviderName',
description: 'Provider name display when name is unknown',

View File

@@ -48,8 +48,6 @@ dateSixMonthsFromNow.setDate(dateSixMonthsFromNow.getDate() + 180);
export const courseCard = StrictDict({
certificates: mkCardSelector(({ certificates }) => ({
availableDate: certificates.availableDate,
certDownloadUrl: certificates.certDownloadUrl,
honorCertDownloadUrl: certificates.honorCertDownloadUrl,
certPreviewUrl: certificates.certPreviewUrl,
isDownloadable: certificates.isDownloadable,
isEarnedButUnavailable: certificates.isEarned && !certificates.isAvailable,
@@ -68,6 +66,7 @@ export const courseCard = StrictDict({
isStarted: courseRun.isStarted,
isFinished: courseRun.isFinished,
minPassingGrade: courseRun.minPassingGrade,
startDate: courseRun.startDate,
})),
enrollment: mkCardSelector(({ enrollment }) => {
if (enrollment == null) {

View File

@@ -48,8 +48,10 @@ const logos = {
science: 'https://courses.edx.org/asset-v1:HarvardX+PH525.5x+3T2020+type@thumbnail+block@course_image-375x200.jpg',
};
const farPastDate = '11/11/1900';
const pastDate = '11/11/2000';
const futureDate = '11/11/3030';
const farFutureDate = '11/11/4040';
const soonDate = new Date();
soonDate.setDate(soonDate.getDate() + 60);
const soonDateStr = soonDate.toDateString();
@@ -102,7 +104,8 @@ const globalData = {
export const genCourseRunData = (data = {}) => ({
isStarted: false,
isArchived: false,
endDate: futureDate,
startDate: data.isStarted ? farPastDate : futureDate,
endDate: farFutureDate,
minPassingGrade: 70,
homeUrl: 'edx.com/courses/my-course-url/home',
marketingUrl: 'edx.com/courses/my-course-url/marketing',
@@ -319,7 +322,6 @@ export const courseRuns = [
isAvailable: true,
isDownloadable: true,
availableDate: pastDate,
certDownloadUrl: logos.social,
certPreviewUrl: logos.edx,
},
},
@@ -339,7 +341,6 @@ export const courseRuns = [
isAvailable: true,
isDownloadable: true,
availableDate: pastDate,
certDownloadUrl: logos.social,
},
},
// verified, course archived, learner finished, cert earned, downloadable (web + link)
@@ -359,7 +360,6 @@ export const courseRuns = [
isAvailable: true,
isDownloadable: true,
availableDate: pastDate,
certDownloadUrl: logos.social,
certPreviewUrl: logos.edx,
},
},
@@ -471,7 +471,6 @@ export const courseRuns = [
isAvailable: true,
isDownloadable: true,
availableDate: pastDate,
certDownloadUrl: logos.social,
certPreviewUrl: logos.edx,
},
},
@@ -523,7 +522,6 @@ export const courseRuns = [
isAvailable: true,
isDownloadable: true,
availableDate: pastDate,
certDownloadUrl: logos.social,
certPreviewUrl: logos.edx,
},
},

View File

@@ -155,8 +155,8 @@ describe('ESG app integration tests', () => {
[
courseData.provider.name,
courseData.course.courseNumber,
appMessages.withValues.CourseCardDetails.accessExpires({
accessExpirationDate: courseData.enrollment.accessExpirationDate,
appMessages.withValues.CourseCardDetails.courseStarts({
startDate: courseData.courseRun.startDate,
}),
].forEach(value => inspector.verifyTextIncludes(cardDetails, value));
});