From 52be32c3c4017d2d90bb36e5d409d710c25ac76d Mon Sep 17 00:00:00 2001
From: Yoan VALLET <ext.sopra.yvallet@grandlyon.com>
Date: Tue, 9 Mar 2021 17:44:44 +0100
Subject: [PATCH] feat: add complementary description to exploration

---
 .../Challenge/ChallengeCard.spec.tsx          |  6 +++
 .../__snapshots__/ChallengeCard.spec.tsx.snap |  3 +-
 .../__snapshots__/ChallengeView.spec.tsx.snap | 18 ++++---
 .../Exploration/ExplorationOngoing.spec.tsx   | 15 ++++--
 .../Exploration/ExplorationOngoing.tsx        |  1 +
 .../Exploration/explorationOngoing.scss       |  4 ++
 src/db/explorationEntity.json                 | 13 ++++-
 src/models/exploration.model.ts               |  1 +
 src/services/exploration.service.ts           |  1 +
 test/__mocks__/explorationData.mock.ts        | 48 ++++++++++++-------
 test/__mocks__/userChallengeData.mock.ts      |  8 +++-
 11 files changed, 86 insertions(+), 32 deletions(-)

diff --git a/src/components/Challenge/ChallengeCard.spec.tsx b/src/components/Challenge/ChallengeCard.spec.tsx
index dcfdef0cf..86f168262 100644
--- a/src/components/Challenge/ChallengeCard.spec.tsx
+++ b/src/components/Challenge/ChallengeCard.spec.tsx
@@ -16,6 +16,8 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
   }
 })
 
+const mockMoveToSlide = jest.fn()
+
 describe('ChallengeCard component', () => {
   it('should be rendered correctly', () => {
     const component = shallow(
@@ -25,6 +27,7 @@ describe('ChallengeCard component', () => {
         index={0}
         cardWidth={200}
         cardHeight={400}
+        moveToSlide={mockMoveToSlide}
       />
     ).getElement()
     expect(component).toMatchSnapshot()
@@ -37,6 +40,7 @@ describe('ChallengeCard component', () => {
         index={0}
         cardWidth={200}
         cardHeight={400}
+        moveToSlide={mockMoveToSlide}
       />
     )
     expect(wrapper.find(ChallengeCardLocked).exists()).toBeTruthy()
@@ -49,6 +53,7 @@ describe('ChallengeCard component', () => {
         index={0}
         cardWidth={200}
         cardHeight={400}
+        moveToSlide={mockMoveToSlide}
       />
     )
     expect(wrapper.find(ChallengeCardUnlocked).exists()).toBeTruthy()
@@ -61,6 +66,7 @@ describe('ChallengeCard component', () => {
         index={0}
         cardWidth={200}
         cardHeight={400}
+        moveToSlide={mockMoveToSlide}
       />
     )
     expect(wrapper.find(ChallengeCardOnGoing).exists()).toBeTruthy()
diff --git a/src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap b/src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap
index a344d3599..89be0a898 100644
--- a/src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap
+++ b/src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap
@@ -34,8 +34,9 @@ exports[`ChallengeCard component should be rendered correctly 1`] = `
         },
         "endingDate": null,
         "exploration": Object {
+          "complementary_description": "Refaire un tour dans son profil si déjà fait",
           "date": null,
-          "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+          "description": "Avoir complété son profil",
           "ecogesture_id": "",
           "fluid_condition": Array [],
           "id": "EXPLORATION001",
diff --git a/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap b/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
index 9781b6581..03cae104c 100644
--- a/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
+++ b/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
@@ -57,8 +57,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
@@ -205,8 +206,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
@@ -353,8 +355,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
@@ -501,8 +504,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
@@ -649,8 +653,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
@@ -797,8 +802,9 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
               },
               "endingDate": null,
               "exploration": Object {
+                "complementary_description": "Refaire un tour dans son profil si déjà fait",
                 "date": null,
-                "description": "Avoir complété son profil / Refaire un tour dans son profil si déjà fait",
+                "description": "Avoir complété son profil",
                 "ecogesture_id": "",
                 "fluid_condition": Array [],
                 "id": "EXPLORATION001",
diff --git a/src/components/Exploration/ExplorationOngoing.spec.tsx b/src/components/Exploration/ExplorationOngoing.spec.tsx
index be9561225..406f1cc6a 100644
--- a/src/components/Exploration/ExplorationOngoing.spec.tsx
+++ b/src/components/Exploration/ExplorationOngoing.spec.tsx
@@ -51,9 +51,18 @@ describe('ExplorationOngoing component', () => {
         <ExplorationOngoing userChallenge={userChallengeData[0]} />
       </Provider>
     )
-    expect(wrapper.find('.exploration-explanation').text()).toEqual(
-      userChallengeData[1].exploration.description
-    )
+    expect(
+      wrapper
+        .find('.exploration-explanation > div')
+        .first()
+        .text()
+    ).toEqual(userChallengeData[1].exploration.description)
+    expect(
+      wrapper
+        .find('.exploration-explanation > div')
+        .last()
+        .text()
+    ).toEqual(userChallengeData[1].exploration.complementary_description)
     expect(wrapper.find('.button-start').exists()).toBeTruthy()
   })
 })
diff --git a/src/components/Exploration/ExplorationOngoing.tsx b/src/components/Exploration/ExplorationOngoing.tsx
index 6fbea941e..0ef7374e2 100644
--- a/src/components/Exploration/ExplorationOngoing.tsx
+++ b/src/components/Exploration/ExplorationOngoing.tsx
@@ -112,6 +112,7 @@ const ExplorationOngoing: React.FC<ExplorationOngoingProps> = ({
           />
           <div className="exploration-explanation text-18-bold">
             <div>{userChallenge.exploration.description}</div>
+            <div>{userChallenge.exploration.complementary_description}</div>
           </div>
           {renderButton()}
         </div>
diff --git a/src/components/Exploration/explorationOngoing.scss b/src/components/Exploration/explorationOngoing.scss
index 26f632154..8d1e55337 100644
--- a/src/components/Exploration/explorationOngoing.scss
+++ b/src/components/Exploration/explorationOngoing.scss
@@ -41,10 +41,14 @@
     line-height: 24px;
     height: 50%;
     display: flex;
+    flex-direction: column;
     margin: 2.5rem 0;
     div {
       align-self: center;
     }
+    div:first-child {
+      margin-bottom: 1rem;
+    }
   }
   .button-start {
     margin-top: 0;
diff --git a/src/db/explorationEntity.json b/src/db/explorationEntity.json
index c1f7b9da1..7261e7650 100644
--- a/src/db/explorationEntity.json
+++ b/src/db/explorationEntity.json
@@ -2,7 +2,8 @@
   {
     "_id": "EXPLORATION001",
     "state": 0,
-    "description": "Complétez votre profil depuis la partie \"Analyse\" pour remporter 5 étoiles (si c'est déjà fait, allez consulter les informations de profil déjà entrées dans la partie \"Options\" pour remporter les 5 étoiles)",
+    "description": "Complétez votre profil depuis la partie \"Analyse\" pour remporter 5 étoiles.",
+    "complementary_description": "Si c’est déjà fait, allez consulter les informations de votre profil dans la partie \"Options\".",
     "target": 1,
     "type": 1,
     "date": null,
@@ -14,6 +15,7 @@
     "_id": "EXPLORATION002",
     "state": 0,
     "description": "Consultez l'écogeste Professeur Celsius pour remporter 5 étoiles.",
+    "complementary_description": "",
     "target": 1,
     "type": 3,
     "date": null,
@@ -25,6 +27,7 @@
     "_id": "EXPLORATION003",
     "state": 0,
     "description": "Consultez vos données sur une période de 5 ans.",
+    "complementary_description": "",
     "target": 1,
     "type": 2,
     "date": null,
@@ -35,7 +38,8 @@
   {
     "_id": "EXPLORATION004",
     "state": 0,
-    "description": "Dévérouillez la consultation des données électricité à la demi-heure pour remporter 5 étoiles (si c'est déjà fait, allez consulter ces données pour remporter les 5 étoiles)",
+    "description": "Dévérouillez la consultation des données électricité à la demi-heure pour remporter 5 étoiles.",
+    "complementary_description": "Si c'est est déjà fait, allez simplement consulter ces données.",
     "target": 1,
     "type": 1,
     "date": null,
@@ -47,6 +51,7 @@
     "_id": "EXPLORATION004_0",
     "state": 0,
     "description": "Consultez l'écogestes Lord Kelvin pour remporter 5 étoiles.",
+    "complementary_description": "",
     "target": 1,
     "type": 3,
     "date": null,
@@ -58,6 +63,7 @@
     "_id": "EXPLORATION005",
     "state": 0,
     "description": "Envoyez-nous un avis sur notre service. Vous remporterez 5 étoiles, quelque soit son contenu (tant qu'il est sincère :))",
+    "complementary_description": "",
     "target": 1,
     "type": 1,
     "date": null,
@@ -69,6 +75,7 @@
     "_id": "EXPLORATION006",
     "state": 0,
     "description": "Parlez en bien d’Ecolyo à un ami (quitte à mentir)",
+    "complementary_description": "",
     "target": 1,
     "type": 0,
     "date": null,
@@ -80,6 +87,7 @@
     "_id": "EXPLORATION007",
     "state": 0,
     "description": "Consultez 3 fois Ecolyo",
+    "complementary_description": "",
     "target": 3,
     "type": 1,
     "date": null,
@@ -91,6 +99,7 @@
     "_id": "EXPLORATION008",
     "state": 0,
     "description": "Placez l'appli Ecolyo en favoris (rappel des raccourcis)",
+    "complementary_description": "",
     "target": 1,
     "type": 0,
     "date": null,
diff --git a/src/models/exploration.model.ts b/src/models/exploration.model.ts
index eb9cd8509..b07f5294c 100644
--- a/src/models/exploration.model.ts
+++ b/src/models/exploration.model.ts
@@ -9,6 +9,7 @@ export interface ExplorationEntity {
   id: string
   state: UserExplorationState
   description: string
+  complementary_description: string
   target: number
   type: UserExplorationType
   date: string | null
diff --git a/src/services/exploration.service.ts b/src/services/exploration.service.ts
index 0d0ca33dd..c14e25452 100644
--- a/src/services/exploration.service.ts
+++ b/src/services/exploration.service.ts
@@ -80,6 +80,7 @@ export default class ExplorationService {
       id: '',
       state: UserExplorationState.UNLOCKED,
       description: '',
+      complementary_description: '',
       target: 0,
       type: UserExplorationType.DECLARATIVE,
       date: null,
diff --git a/test/__mocks__/explorationData.mock.ts b/test/__mocks__/explorationData.mock.ts
index 446d72a52..faffcfda2 100644
--- a/test/__mocks__/explorationData.mock.ts
+++ b/test/__mocks__/explorationData.mock.ts
@@ -8,8 +8,8 @@ import { ExplorationEntity, UserExploration } from 'models'
 export const explorationEntity: ExplorationEntity = {
   id: 'EXPLORATION001',
   state: UserExplorationState.UNLOCKED,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -21,8 +21,9 @@ export const explorationEntity: ExplorationEntity = {
 export const explorationEntity4: ExplorationEntity = {
   id: 'EXPLORATION004',
   state: UserExplorationState.UNLOCKED,
-  description:
-    'Dévérouiller les données électricité à la demi-heure / Consulter les données à la demi-heure',
+  description: 'Dévérouiller les données électricité à la demi-heure',
+  complementary_description:
+    'Consulter les données à la demi-heure si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -35,6 +36,7 @@ export const explorationEntity4_0: ExplorationEntity = {
   id: 'EXPLORATION004_0',
   state: UserExplorationState.UNLOCKED,
   description: 'Consulter l\'écogeste "Lord Kelvin"',
+  complementary_description: '',
   target: 1,
   type: UserExplorationType.ECOGESTURE,
   date: null,
@@ -46,6 +48,7 @@ export const explorationDefault: UserExploration = {
   id: '',
   state: UserExplorationState.UNLOCKED,
   description: '',
+  complementary_description: '',
   target: 0,
   type: UserExplorationType.DECLARATIVE,
   date: null,
@@ -58,8 +61,8 @@ export const explorationDefault: UserExploration = {
 export const userExploration: UserExploration = {
   id: 'EXPLORATION001',
   state: 0,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -72,8 +75,8 @@ export const userExploration: UserExploration = {
 export const userExploration1: UserExploration = {
   id: 'EXPLORATION001',
   state: 0,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -87,6 +90,8 @@ export const userExploration4: UserExploration = {
   id: 'EXPLORATION004',
   state: 0,
   description: 'Dévérrouillez les données électricité à la demi-heure',
+  complementary_description:
+    'Consulter les données à la demi-heure si déjà fait',
   target: 1,
   type: 0,
   date: null,
@@ -100,6 +105,7 @@ export const userExploration4_0: UserExploration = {
   id: 'EXPLORATION004_0',
   state: 0,
   description: 'Consulter l\'écogeste "Lord Kelvin"',
+  complementary_description: '',
   target: 1,
   type: 0,
   date: null,
@@ -112,8 +118,8 @@ export const allExplorationEntities: ExplorationEntity[] = [
   {
     id: 'EXPLORATION001',
     state: 0,
-    description:
-      'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+    description: 'Avoir complété son profil',
+    complementary_description: 'Refaire un tour dans son profil si déjà fait',
     target: 1,
     type: UserExplorationType.ACTION,
     date: null,
@@ -126,6 +132,7 @@ export const allExplorationEntities: ExplorationEntity[] = [
     id: 'EXPLORATION002',
     state: 0,
     description: "Consultez l'écogeste Professeur Celsius",
+    complementary_description: '',
     target: 1,
     type: UserExplorationType.ECOGESTURE,
     date: null,
@@ -137,6 +144,7 @@ export const allExplorationEntities: ExplorationEntity[] = [
     id: 'EXPLORATION003',
     state: 0,
     description: 'Consulter mes données au pas de temps annuel',
+    complementary_description: '',
     target: 1,
     type: UserExplorationType.CONSUMPTION,
     date: null,
@@ -147,8 +155,9 @@ export const allExplorationEntities: ExplorationEntity[] = [
   {
     id: 'EXPLORATION004',
     state: 0,
-    description:
-      'Dévérouiller les données électricité à la demi-heure / Consulter les données à la demi-heure',
+    description: 'Dévérrouillez les données électricité à la demi-heure',
+    complementary_description:
+      'Consulter les données à la demi-heure si déjà fait',
     target: 1,
     type: UserExplorationType.ACTION,
     date: null,
@@ -161,6 +170,7 @@ export const allExplorationEntities: ExplorationEntity[] = [
     id: 'EXPLORATION005',
     state: 0,
     description: 'Envoyez nous votre avis sur le service',
+    complementary_description: '',
     target: 1,
     type: UserExplorationType.ACTION,
     date: null,
@@ -173,6 +183,7 @@ export const allExplorationEntities: ExplorationEntity[] = [
     id: 'EXPLORATION006',
     state: 0,
     description: 'Parlez en bien d’Ecolyo à un ami (quitte à mentir)',
+    complementary_description: '',
     target: 1,
     type: UserExplorationType.DECLARATIVE,
     date: null,
@@ -184,6 +195,7 @@ export const allExplorationEntities: ExplorationEntity[] = [
     id: 'EXPLORATION007',
     state: 0,
     description: 'Consultez 3 fois Ecolyo',
+    complementary_description: '',
     target: 3,
     type: UserExplorationType.ACTION,
     date: null,
@@ -196,8 +208,8 @@ export const allExplorationEntities: ExplorationEntity[] = [
 export const UserExplorationStarted: UserExploration = {
   id: 'EXPLORATION001',
   state: UserExplorationState.ONGOING,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -210,8 +222,8 @@ export const UserExplorationStarted: UserExploration = {
 export const UserExplorationDone: UserExploration = {
   id: 'EXPLORATION001',
   state: UserExplorationState.DONE,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
@@ -225,8 +237,8 @@ export const UserExplorationDone: UserExploration = {
 export const UserExplorationUnlocked: UserExploration = {
   id: 'EXPLORATION001',
   state: UserExplorationState.UNLOCKED,
-  description:
-    'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+  description: 'Avoir complété son profil',
+  complementary_description: 'Refaire un tour dans son profil si déjà fait',
   target: 1,
   type: UserExplorationType.ACTION,
   date: null,
diff --git a/test/__mocks__/userChallengeData.mock.ts b/test/__mocks__/userChallengeData.mock.ts
index 7d76229bb..aa8418c77 100644
--- a/test/__mocks__/userChallengeData.mock.ts
+++ b/test/__mocks__/userChallengeData.mock.ts
@@ -313,8 +313,8 @@ export const userChallengeExplo1OnGoing: UserChallenge = {
   exploration: {
     id: 'EXPLORATION001',
     state: 0,
-    description:
-      'Avoir complété son profil / Refaire un tour dans son profil si déjà fait',
+    description: 'Avoir complété son profil',
+    complementary_description: 'Refaire un tour dans son profil si déjà fait',
     target: 1,
     type: UserExplorationType.ACTION,
     date: null,
@@ -350,6 +350,8 @@ export const userChallengeExplo4: UserChallenge = {
     id: 'EXPLORATION004',
     state: 0,
     description: 'Dévérrouillez les données électricité à la demi-heure',
+    complementary_description:
+      'Consulter les données à la demi-heure si déjà fait',
     target: 1,
     type: 0,
     date: null,
@@ -385,6 +387,7 @@ export const userChallengeExplo4_0: UserChallenge = {
     id: 'EXPLORATION004_0',
     state: 0,
     description: 'Consulter l\'écogeste "Lord Kelvin"',
+    complementary_description: '',
     target: 1,
     type: 0,
     date: null,
@@ -420,6 +423,7 @@ export const userChallengeExplo2OnGoing: UserChallenge = {
     id: 'EXPLORATION002',
     state: 1,
     description: "Consultez l'écogeste Professeur Celsius",
+    complementary_description: '',
     target: 1,
     type: 3,
     date: null,
-- 
GitLab