From c977719c50c9174de9b6e15228ea6b67458cd613 Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 11:05:50 +0800 Subject: [PATCH 1/8] Update IAssessmentOverview Sticking to how the backend specifies the props, since it's already camel case --- src/components/assessment/assessmentShape.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/assessment/assessmentShape.ts b/src/components/assessment/assessmentShape.ts index 0c6407837c..b634ddc4c7 100644 --- a/src/components/assessment/assessmentShape.ts +++ b/src/components/assessment/assessmentShape.ts @@ -10,13 +10,16 @@ export interface IAssessmentOverview { category: AssessmentCategory closeAt: string coverImage: string + grade: number id: number - maximumGrade: number + maxGrade: number + maxXp: number openAt: string title: string shortSummary: string status: AssessmentStatus story: string | null + xp: number } export enum AssessmentStatuses { From 8cb3c488c7952d22205a8aae9a65ae84f610b40d Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 11:06:22 +0800 Subject: [PATCH 2/8] Remove maxGrade transform (IAssessmentOverview) --- src/sagas/backend.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/sagas/backend.ts b/src/sagas/backend.ts index f33a96aba7..65781bcb6b 100644 --- a/src/sagas/backend.ts +++ b/src/sagas/backend.ts @@ -316,17 +316,9 @@ async function getAssessmentOverviews(tokens: Tokens): Promise type: 'mission' | 'sidequest' | 'path' | 'contest' * we have -> category: 'Mission' | 'Sidequest' | 'Path' | 'Contest' */ - overview.category = capitalise(overview.type) delete overview.type - /** - * backend has property maxGrade, we have property maximumGrade - */ - - overview.maximumGrade = overview.maxGrade - delete overview.maxGrade - return overview as IAssessmentOverview }) } else { From c6c41fca8da063381f2c30a3b68d1a19eeb2fa03 Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:19:36 +0800 Subject: [PATCH 3/8] Use maxGrade in assesment cards --- src/components/assessment/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/assessment/index.tsx b/src/components/assessment/index.tsx index b1973ec5ab..775a600f3f 100644 --- a/src/components/assessment/index.tsx +++ b/src/components/assessment/index.tsx @@ -288,7 +288,7 @@ const makeOverviewCard = (
{makeOverviewCardTitle(overview, index, setBetchaAssessment)}
-
{`Max Grade: ${overview.maximumGrade}`}
+
{`Max Grade: ${overview.maxGrade}`}
From 7493ca74271c16be1a837550c0e70ccc894beaee Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:19:49 +0800 Subject: [PATCH 4/8] Update mock assessment data --- src/mocks/assessmentAPI.ts | 42 +++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/src/mocks/assessmentAPI.ts b/src/mocks/assessmentAPI.ts index 753d2d2425..bb9e9b42c3 100644 --- a/src/mocks/assessmentAPI.ts +++ b/src/mocks/assessmentAPI.ts @@ -15,14 +15,17 @@ const mockUnopenedAssessmentsOverviews: IAssessmentOverview[] = [ category: AssessmentCategories.Mission, closeAt: '2048-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/300/', + grade: 1, id: 0, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2038-06-18T05:24:26.026Z', title: 'An Odessey to Runes (Duplicate)', shortSummary: 'This is a test for the UI of the unopened assessment overview. It links to the mock Mission 0', status: AssessmentStatuses.not_attempted, - story: 'mission-1' + story: 'mission-1', + xp: 0 } ] @@ -31,8 +34,10 @@ const mockOpenedAssessmentsOverviews: IAssessmentOverview[] = [ category: AssessmentCategories.Mission, closeAt: '2048-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/300/', + grade: 2, id: 0, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2018-06-18T05:24:26.026Z', title: 'An Odessey to Runes', shortSummary: ` @@ -50,33 +55,40 @@ _doloremque laudantium_, totam rem aperiam, eaque ipsa quae ab illo inventore `, status: AssessmentStatuses.attempted, - story: 'mission-1' + story: 'mission-1', + xp: 1 }, { category: AssessmentCategories.Mission, closeAt: '2048-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/350x200/?text=World&font=lobster', + grade: 3, id: 1, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2018-07-18T05:24:26.026Z', title: 'The Secret to Streams', shortSummary: 'Once upon a time, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec vulputate sapien. Fusce vel lacus fermentum, efficitur ipsum.', status: AssessmentStatuses.attempting, - story: 'mission-2' + story: 'mission-2', + xp: 2 }, { category: AssessmentCategories.Sidequest, closeAt: '2048-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/350x200/?text=Hello', + grade: 4, id: 2, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2018-07-18T05:24:26.026Z', title: 'A sample Sidequest', shortSummary: 'Once upon a time, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec vulputate sapien. Fusce vel lacus fermentum, efficitur ipsum.', status: AssessmentStatuses.not_attempted, - story: 'sidequest-2.1' + story: 'sidequest-2.1', + xp: 3 } ] @@ -85,27 +97,33 @@ const mockClosedAssessmentOverviews: IAssessmentOverview[] = [ category: AssessmentCategories.Mission, closeAt: '2008-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/350x200/ff0000/000', + grade: 5, id: 3, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2007-07-18T05:24:26.026Z', title: 'A closed Mission', shortSummary: 'Once upon a time, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec vulputate sapien. Fusce vel lacus fermentum, efficitur ipsum.', status: AssessmentStatuses.submitted, - story: 'mission-3' + story: 'mission-3', + xp: 4 }, { category: AssessmentCategories.Sidequest, closeAt: '2008-06-18T05:24:26.026Z', coverImage: 'https://fakeimg.pl/350x200/ff0000,128/000,255', + grade: 6, id: 4, - maximumGrade: 3000, + maxGrade: 3000, + maxXp: 1000, openAt: '2007-07-18T05:24:26.026Z', title: 'A closed sidequest', shortSummary: 'Once upon a time, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nec vulputate sapien. Fusce vel lacus fermentum, efficitur ipsum.', status: AssessmentStatuses.submitted, - story: null + story: null, + xp: 5 } ] From 2ebbd57e347ac9d8d5bd0fb143808d1e282a9d1e Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:33:25 +0800 Subject: [PATCH 5/8] Add grade and xp into assessment overview --- src/components/assessment/index.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/assessment/index.tsx b/src/components/assessment/index.tsx index 775a600f3f..f4ef3d310f 100644 --- a/src/components/assessment/index.tsx +++ b/src/components/assessment/index.tsx @@ -287,8 +287,11 @@ const makeOverviewCard = (
{makeOverviewCardTitle(overview, index, setBetchaAssessment)} -
-
{`Max Grade: ${overview.maxGrade}`}
+
+
{`Grade: ${overview.grade} / ${overview.maxGrade}`}
+
+
+
{`XP: ${overview.xp} / ${overview.maxXp}`}
From d814fb96b504b5d1460e28b3df1057c9dc50c4ec Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:36:34 +0800 Subject: [PATCH 6/8] Hide grade and xp for unopened assessments --- src/components/assessment/index.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/assessment/index.tsx b/src/components/assessment/index.tsx index f4ef3d310f..8cc0466755 100644 --- a/src/components/assessment/index.tsx +++ b/src/components/assessment/index.tsx @@ -288,10 +288,18 @@ const makeOverviewCard = (
{makeOverviewCardTitle(overview, index, setBetchaAssessment)}
-
{`Grade: ${overview.grade} / ${overview.maxGrade}`}
+
{ + beforeNow(overview.openAt) + ? `Grade: ${overview.grade} / ${overview.maxGrade}` + : `Max Grade: ${overview.maxGrade}` + }
-
{`XP: ${overview.xp} / ${overview.maxXp}`}
+
{ + beforeNow(overview.openAt) + ? `XP: ${overview.xp} / ${overview.maxXp}` + : `Max XP: ${overview.maxGrade}` + }
From 1d473010bb13bc5a19b65bf96f225e566a7b227e Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:38:05 +0800 Subject: [PATCH 7/8] Show open date for unopened assessments --- src/components/assessment/index.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/assessment/index.tsx b/src/components/assessment/index.tsx index 8cc0466755..1eedde7e38 100644 --- a/src/components/assessment/index.tsx +++ b/src/components/assessment/index.tsx @@ -307,7 +307,11 @@ const makeOverviewCard = (
- {`Due: ${getPrettyDate(overview.closeAt)}`} + { + beforeNow(overview.openAt) + ? `Due: ${getPrettyDate(overview.closeAt)}` + : `Opens at: ${getPrettyDate(overview.openAt)}` + } {renderAttemptButton ? makeOverviewCardButton(overview) : null}
From 822670f8b68df58a098f6d7f263a69a21f69aa87 Mon Sep 17 00:00:00 2001 From: remo5000 Date: Thu, 23 Aug 2018 19:40:02 +0800 Subject: [PATCH 8/8] Format and update tests --- .../__tests__/__snapshots__/index.tsx.snap | 104 +++++++++++++++--- src/components/assessment/index.tsx | 30 ++--- 2 files changed, 103 insertions(+), 31 deletions(-) diff --git a/src/components/assessment/__tests__/__snapshots__/index.tsx.snap b/src/components/assessment/__tests__/__snapshots__/index.tsx.snap index b5631c9349..c0793d0e8a 100644 --- a/src/components/assessment/__tests__/__snapshots__/index.tsx.snap +++ b/src/components/assessment/__tests__/__snapshots__/index.tsx.snap @@ -114,9 +114,18 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
-
+
+ Max Grade: 3000 + +
+
+
+
+ + Max XP: 3000 +
@@ -135,7 +144,7 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f - Due: 18th June, 13:24 + Opens at: 18th June, 13:24
@@ -207,9 +216,18 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
-
+
- Max Grade: 3000 + + Grade: 2 / 3000 + +
+
+
+
+ + XP: 1 / 1000 +
@@ -302,9 +320,18 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
-
+
- Max Grade: 3000 + + Grade: 3 / 3000 + +
+
+
+
+ + XP: 2 / 1000 +
@@ -397,9 +424,18 @@ exports[`Assessment page does not show attempt Button for upcoming assessments f
-
+
- Max Grade: 3000 + + Grade: 4 / 3000 + +
+
+
+
+ + XP: 3 / 1000 +
@@ -600,9 +636,18 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
-
+
+ Max Grade: 3000 + +
+
+
+
+ + Max XP: 3000 +
@@ -621,7 +666,7 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = ` - Due: 18th June, 13:24 + Opens at: 18th June, 13:24
@@ -717,9 +762,18 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
-
+
- Max Grade: 3000 + + Grade: 2 / 3000 + +
+
+
+
+ + XP: 1 / 1000 +
@@ -812,9 +866,18 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
-
+
- Max Grade: 3000 + + Grade: 3 / 3000 + +
+
+
+
+ + XP: 2 / 1000 +
@@ -907,9 +970,18 @@ exports[`Assessment page with multiple loaded missions renders correctly 1`] = `
-
+
- Max Grade: 3000 + + Grade: 4 / 3000 + +
+
+
+
+ + XP: 3 / 1000 +
diff --git a/src/components/assessment/index.tsx b/src/components/assessment/index.tsx index 1eedde7e38..11c6e2fcd4 100644 --- a/src/components/assessment/index.tsx +++ b/src/components/assessment/index.tsx @@ -288,18 +288,20 @@ const makeOverviewCard = (
{makeOverviewCardTitle(overview, index, setBetchaAssessment)}
-
{ - beforeNow(overview.openAt) - ? `Grade: ${overview.grade} / ${overview.maxGrade}` - : `Max Grade: ${overview.maxGrade}` - }
+
+ {' '} + {beforeNow(overview.openAt) + ? `Grade: ${overview.grade} / ${overview.maxGrade}` + : `Max Grade: ${overview.maxGrade}`}{' '} +
-
{ - beforeNow(overview.openAt) - ? `XP: ${overview.xp} / ${overview.maxXp}` - : `Max XP: ${overview.maxGrade}` - }
+
+ {' '} + {beforeNow(overview.openAt) + ? `XP: ${overview.xp} / ${overview.maxXp}` + : `Max XP: ${overview.maxGrade}`}{' '} +
@@ -307,11 +309,9 @@ const makeOverviewCard = (
- { - beforeNow(overview.openAt) - ? `Due: ${getPrettyDate(overview.closeAt)}` - : `Opens at: ${getPrettyDate(overview.openAt)}` - } + {beforeNow(overview.openAt) + ? `Due: ${getPrettyDate(overview.closeAt)}` + : `Opens at: ${getPrettyDate(overview.openAt)}`} {renderAttemptButton ? makeOverviewCardButton(overview) : null}