diff --git a/jest.config.js b/jest.config.js
index fa3e2586f69e2a0ee6608cfffed34b95f8c210f8..cbbdcfe6bdc490310cf09c967750408436271a71 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,8 +1,10 @@
-module.exports = {
+/** @type {import('jest').Config} */
+const config = {
   testURL: 'http://localhost/',
   moduleFileExtensions: ['js', 'jsx', 'ts', 'tsx', 'json', 'styl'],
   setupFiles: ['<rootDir>/tests/jestLib/setup.js'],
-  moduleDirectories: ['src', 'node_modules'],
+  moduleDirectories: ['<rootDir>', 'node_modules'],
+  modulePaths: ['<rootDir>/src'],
   moduleNameMapper: {
     '\\.(png|gif|jpe?g|svg|hbs)$': '<rootDir>/tests/__mocks__/fileMock.js',
     // identity-obj-proxy module is installed by cozy-scripts
@@ -26,3 +28,5 @@ module.exports = {
     cozy: {},
   },
 }
+
+module.exports = config
diff --git a/src/components/Action/ActionBegin.spec.tsx b/src/components/Action/ActionBegin/ActionBegin.spec.tsx
similarity index 91%
rename from src/components/Action/ActionBegin.spec.tsx
rename to src/components/Action/ActionBegin/ActionBegin.spec.tsx
index cdc6b00e928bc1f80a8e55b89354fbaf21fb0c4d..2abec216346e68f453971e69183ad25689360883 100644
--- a/src/components/Action/ActionBegin.spec.tsx
+++ b/src/components/Action/ActionBegin/ActionBegin.spec.tsx
@@ -6,17 +6,17 @@ import { Provider } from 'react-redux'
 import {
   AllEcogestureData,
   defaultEcogestureData,
-} from '../../../tests/__mocks__/actionData.mock'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
+} from 'tests/__mocks__/actionData.mock'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import {
   createMockEcolyoStore,
   mockGlobalState,
   mockProfileState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import ActionModal from '../ActionModal/ActionModal'
 import ActionBegin from './ActionBegin'
-import ActionModal from './ActionModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Action/ActionBegin.tsx b/src/components/Action/ActionBegin/ActionBegin.tsx
similarity index 94%
rename from src/components/Action/ActionBegin.tsx
rename to src/components/Action/ActionBegin/ActionBegin.tsx
index 2fd6a04a13a17899e3ff1b7316e62196f4d34c66..f66e40a5433aba395d8c6f5d96d05510c6f9afb9 100644
--- a/src/components/Action/ActionBegin.tsx
+++ b/src/components/Action/ActionBegin/ActionBegin.tsx
@@ -1,9 +1,9 @@
 import { Button } from '@material-ui/core'
 import defaultIcon from 'assets/icons/visu/ecogesture/default.svg'
-import ActionModal from 'components/Action/ActionModal'
-import StarsContainer from 'components/Challenge/StarsContainer'
+import ActionModal from 'components/Action/ActionModal/ActionModal'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import { useClient } from 'cozy-client'
+import StarsContainer from 'components/CommonKit/StarsContainer/StarsContainer'
+import { Client, useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { Ecogesture, UserChallenge } from 'models'
 import React, { useCallback, useEffect, useState } from 'react'
@@ -23,7 +23,7 @@ const ActionBegin = ({
   setShowList,
   userChallenge,
 }: ActionBeginProps) => {
-  const client = useClient()
+  const client: Client = useClient()
   const { t } = useI18n()
   const {
     global: { fluidTypes },
diff --git a/src/components/Action/__snapshots__/ActionBegin.spec.tsx.snap b/src/components/Action/ActionBegin/__snapshots__/ActionBegin.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionBegin.spec.tsx.snap
rename to src/components/Action/ActionBegin/__snapshots__/ActionBegin.spec.tsx.snap
diff --git a/src/components/Action/actionBegin.scss b/src/components/Action/ActionBegin/actionBegin.scss
similarity index 100%
rename from src/components/Action/actionBegin.scss
rename to src/components/Action/ActionBegin/actionBegin.scss
diff --git a/src/components/Action/ActionCard.spec.tsx b/src/components/Action/ActionCard/ActionCard.spec.tsx
similarity index 83%
rename from src/components/Action/ActionCard.spec.tsx
rename to src/components/Action/ActionCard/ActionCard.spec.tsx
index b859485d95559b273ca24fece3f2f28d516e68b6..6b41863f9af0dd2b4291866b4e2589cfacdef79d 100644
--- a/src/components/Action/ActionCard.spec.tsx
+++ b/src/components/Action/ActionCard/ActionCard.spec.tsx
@@ -1,14 +1,14 @@
 import { Button } from '@material-ui/core'
 import defaultIcon from 'assets/icons/visu/duel/default.svg'
-import EcogestureModal from 'components/Ecogesture/EcogestureModal'
+import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { defaultEcogestureData } from '../../../tests/__mocks__/actionData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { defaultEcogestureData } from 'tests/__mocks__/actionData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ActionCard from './ActionCard'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Action/ActionCard.tsx b/src/components/Action/ActionCard/ActionCard.tsx
similarity index 98%
rename from src/components/Action/ActionCard.tsx
rename to src/components/Action/ActionCard/ActionCard.tsx
index 119f04b52eb57725231d8f92a6cc930f055c59e4..7c4fa8b98a06bd6182b84a2ba640c7a0be66bd96 100644
--- a/src/components/Action/ActionCard.tsx
+++ b/src/components/Action/ActionCard/ActionCard.tsx
@@ -1,7 +1,7 @@
 import { Button } from '@material-ui/core'
 import defaultIcon from 'assets/icons/visu/ecogesture/default.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import EcogestureModal from 'components/Ecogesture/EcogestureModal'
+import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
 import { useClient } from 'cozy-client'
 import { UsageEventType } from 'enums'
 import { Ecogesture } from 'models'
@@ -9,7 +9,7 @@ import React, { useCallback, useEffect, useState } from 'react'
 import UsageEventService from 'services/usageEvent.service'
 import { useAppSelector } from 'store/hooks'
 import { importIconById } from 'utils/utils'
-import './actionList.scss'
+import './actionCard.scss'
 
 interface ActionCardProps {
   action: Ecogesture
diff --git a/src/components/Action/__snapshots__/ActionCard.spec.tsx.snap b/src/components/Action/ActionCard/__snapshots__/ActionCard.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionCard.spec.tsx.snap
rename to src/components/Action/ActionCard/__snapshots__/ActionCard.spec.tsx.snap
diff --git a/src/components/Action/actionList.scss b/src/components/Action/ActionCard/actionCard.scss
similarity index 66%
rename from src/components/Action/actionList.scss
rename to src/components/Action/ActionCard/actionCard.scss
index 94faf983a47a16a4c9274fc0a59211d8e095d580..ad7e7498bdd83f5d1623e815386c432c387babae 100644
--- a/src/components/Action/actionList.scss
+++ b/src/components/Action/ActionCard/actionCard.scss
@@ -1,17 +1,5 @@
 @import 'src/styles/base/color';
 
-.action-list-container {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-  max-width: 600px;
-  margin: auto;
-  gap: 1rem;
-  width: 100%;
-  box-sizing: border-box;
-  padding: 0 1.5rem;
-}
 button.action-card {
   width: 100%;
   box-sizing: border-box;
diff --git a/src/components/Action/ActionChoose.spec.tsx b/src/components/Action/ActionChoose/ActionChoose.spec.tsx
similarity index 84%
rename from src/components/Action/ActionChoose.spec.tsx
rename to src/components/Action/ActionChoose/ActionChoose.spec.tsx
index 5964cac6e308dda9b72d6602bd22e3a99b1be8fb..ab20ba7b2e5199dc4f3704af0472f1753455ffb3 100644
--- a/src/components/Action/ActionChoose.spec.tsx
+++ b/src/components/Action/ActionChoose/ActionChoose.spec.tsx
@@ -6,10 +6,10 @@ import {
   createMockEcolyoStore,
   mockGlobalState,
   mockProfileState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import ActionBegin from './ActionBegin'
+} from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import ActionBegin from '../ActionBegin/ActionBegin'
 import ActionChoose from './ActionChoose'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Action/ActionChoose.tsx b/src/components/Action/ActionChoose/ActionChoose.tsx
similarity index 86%
rename from src/components/Action/ActionChoose.tsx
rename to src/components/Action/ActionChoose/ActionChoose.tsx
index c137680a92c4bcc5e4c320062beac5bf3d11544e..b1e7d3ad7da0a3e597a1281a0b25a2121b73d474 100644
--- a/src/components/Action/ActionChoose.tsx
+++ b/src/components/Action/ActionChoose/ActionChoose.tsx
@@ -1,7 +1,7 @@
-import ActionBegin from 'components/Action/ActionBegin'
-import ActionList from 'components/Action/ActionList'
 import { Ecogesture, UserChallenge } from 'models'
 import React, { useState } from 'react'
+import ActionBegin from '../ActionBegin/ActionBegin'
+import ActionList from '../ActionList/ActionList'
 
 const ActionChoose = ({ userChallenge }: { userChallenge: UserChallenge }) => {
   const [selectedAction, setSelectedAction] = useState<Ecogesture | null>(null)
diff --git a/src/components/Action/__snapshots__/ActionChoose.spec.tsx.snap b/src/components/Action/ActionChoose/__snapshots__/ActionChoose.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionChoose.spec.tsx.snap
rename to src/components/Action/ActionChoose/__snapshots__/ActionChoose.spec.tsx.snap
diff --git a/src/components/Action/ActionDone.spec.tsx b/src/components/Action/ActionDone/ActionDone.spec.tsx
similarity index 88%
rename from src/components/Action/ActionDone.spec.tsx
rename to src/components/Action/ActionDone/ActionDone.spec.tsx
index 49823ad467041e17bf9e1b452e90f667a555c345..b48eee51020267bd8a9c1b127cfa0c9d34640ee7 100644
--- a/src/components/Action/ActionDone.spec.tsx
+++ b/src/components/Action/ActionDone/ActionDone.spec.tsx
@@ -5,9 +5,9 @@ import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
 import * as challengeActions from 'store/challenge/challenge.slice'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ActionDone from './ActionDone'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Action/ActionDone.tsx b/src/components/Action/ActionDone/ActionDone.tsx
similarity index 100%
rename from src/components/Action/ActionDone.tsx
rename to src/components/Action/ActionDone/ActionDone.tsx
diff --git a/src/components/Action/__snapshots__/ActionDone.spec.tsx.snap b/src/components/Action/ActionDone/__snapshots__/ActionDone.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionDone.spec.tsx.snap
rename to src/components/Action/ActionDone/__snapshots__/ActionDone.spec.tsx.snap
diff --git a/src/components/Action/actionDone.scss b/src/components/Action/ActionDone/actionDone.scss
similarity index 100%
rename from src/components/Action/actionDone.scss
rename to src/components/Action/ActionDone/actionDone.scss
diff --git a/src/components/Action/ActionList.spec.tsx b/src/components/Action/ActionList/ActionList.spec.tsx
similarity index 87%
rename from src/components/Action/ActionList.spec.tsx
rename to src/components/Action/ActionList/ActionList.spec.tsx
index 3da60b4795ba17d9b0a5140ecf7666ec5a6998ef..a0237a2bc91874ffd60f4acaca18fb45aebfc9cc 100644
--- a/src/components/Action/ActionList.spec.tsx
+++ b/src/components/Action/ActionList/ActionList.spec.tsx
@@ -1,13 +1,13 @@
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { defaultEcogestureData } from '../../../tests/__mocks__/actionData.mock'
+import { defaultEcogestureData } from 'tests/__mocks__/actionData.mock'
 import {
   createMockEcolyoStore,
   mockChallengeState,
   mockProfileState,
-} from '../../../tests/__mocks__/store'
-import ActionCard from './ActionCard'
+} from 'tests/__mocks__/store'
+import ActionCard from '../ActionCard/ActionCard'
 import ActionList from './ActionList'
 
 const mockgetCustomActions = jest.fn()
diff --git a/src/components/Action/ActionList.tsx b/src/components/Action/ActionList/ActionList.tsx
similarity index 90%
rename from src/components/Action/ActionList.tsx
rename to src/components/Action/ActionList/ActionList.tsx
index 88c812afd9e5b94a86acd3fcc0f7acc742cad5e1..a9ff78bb19ceecae75a24f23cd949fcb92aef6f1 100644
--- a/src/components/Action/ActionList.tsx
+++ b/src/components/Action/ActionList/ActionList.tsx
@@ -1,10 +1,10 @@
-import ActionCard from 'components/Action/ActionCard'
-import { useClient } from 'cozy-client'
+import ActionCard from 'components/Action/ActionCard/ActionCard'
+import { Client, useClient } from 'cozy-client'
 import { Ecogesture } from 'models'
 import React, { useEffect, useState } from 'react'
 import ActionService from 'services/action.service'
 import { useAppSelector } from 'store/hooks'
-import './actionBegin.scss'
+import './actionList.scss'
 
 interface ActionListProps {
   setSelectedAction: React.Dispatch<React.SetStateAction<Ecogesture | null>>
@@ -12,7 +12,7 @@ interface ActionListProps {
 }
 
 const ActionList = ({ setSelectedAction, setShowList }: ActionListProps) => {
-  const client = useClient()
+  const client: Client = useClient()
   const {
     global: { fluidTypes },
     profile: { isProfileTypeCompleted },
diff --git a/src/components/Action/ActionList/actionList.scss b/src/components/Action/ActionList/actionList.scss
new file mode 100644
index 0000000000000000000000000000000000000000..038a216c511e134d97407763266980321ab56f58
--- /dev/null
+++ b/src/components/Action/ActionList/actionList.scss
@@ -0,0 +1,14 @@
+@import 'src/styles/base/color';
+
+.action-list-container {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  max-width: 600px;
+  margin: auto;
+  gap: 1rem;
+  width: 100%;
+  box-sizing: border-box;
+  padding: 0 1.5rem;
+}
diff --git a/src/components/Action/ActionModal.spec.tsx b/src/components/Action/ActionModal/ActionModal.spec.tsx
similarity index 86%
rename from src/components/Action/ActionModal.spec.tsx
rename to src/components/Action/ActionModal/ActionModal.spec.tsx
index f0159a064f6aab649ee6a01dcdbf1ad3ae4b63ae..64b0d920969483a1cbef908f7ca100b9ee5d2269 100644
--- a/src/components/Action/ActionModal.spec.tsx
+++ b/src/components/Action/ActionModal/ActionModal.spec.tsx
@@ -5,10 +5,10 @@ import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
 import * as challengeActions from 'store/challenge/challenge.slice'
-import { defaultEcogestureData } from '../../../tests/__mocks__/actionData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { defaultEcogestureData } from 'tests/__mocks__/actionData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ActionModal from './ActionModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Action/ActionModal.tsx b/src/components/Action/ActionModal/ActionModal.tsx
similarity index 100%
rename from src/components/Action/ActionModal.tsx
rename to src/components/Action/ActionModal/ActionModal.tsx
diff --git a/src/components/Action/__snapshots__/ActionModal.spec.tsx.snap b/src/components/Action/ActionModal/__snapshots__/ActionModal.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionModal.spec.tsx.snap
rename to src/components/Action/ActionModal/__snapshots__/ActionModal.spec.tsx.snap
diff --git a/src/components/Action/actionModal.scss b/src/components/Action/ActionModal/actionModal.scss
similarity index 100%
rename from src/components/Action/actionModal.scss
rename to src/components/Action/ActionModal/actionModal.scss
diff --git a/src/components/Action/ActionOnGoing.spec.tsx b/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
similarity index 88%
rename from src/components/Action/ActionOnGoing.spec.tsx
rename to src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
index 67d5b6a92f4ad2ce4cedb647b3a5201135eece49..3f2f8f492d68b0b091d728c3aa13a9dd2b13416f 100644
--- a/src/components/Action/ActionOnGoing.spec.tsx
+++ b/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
@@ -1,5 +1,5 @@
 import { Button } from '@material-ui/core'
-import EcogestureModal from 'components/Ecogesture/EcogestureModal'
+import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
 import { UserActionState } from 'enums'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
@@ -7,9 +7,9 @@ import { DateTime } from 'luxon'
 import { UserAction } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { defaultEcogestureData } from '../../../tests/__mocks__/actionData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { defaultEcogestureData } from 'tests/__mocks__/actionData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import ActionOnGoing from './ActionOnGoing'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Action/ActionOnGoing.tsx b/src/components/Action/ActionOnGoing/ActionOnGoing.tsx
similarity index 99%
rename from src/components/Action/ActionOnGoing.tsx
rename to src/components/Action/ActionOnGoing/ActionOnGoing.tsx
index 28d7042995cbb41288b42d0db910c883b71bf685..383616089247da9775173c395b735c8647abf91a 100644
--- a/src/components/Action/ActionOnGoing.tsx
+++ b/src/components/Action/ActionOnGoing/ActionOnGoing.tsx
@@ -1,7 +1,7 @@
 import { Button } from '@material-ui/core'
 import ClockIcon from 'assets/icons/visu/action/duration-clock.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import EcogestureModal from 'components/Ecogesture/EcogestureModal'
+import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { DateTime } from 'luxon'
 import { UserAction } from 'models'
diff --git a/src/components/Action/__snapshots__/ActionOnGoing.spec.tsx.snap b/src/components/Action/ActionOnGoing/__snapshots__/ActionOnGoing.spec.tsx.snap
similarity index 100%
rename from src/components/Action/__snapshots__/ActionOnGoing.spec.tsx.snap
rename to src/components/Action/ActionOnGoing/__snapshots__/ActionOnGoing.spec.tsx.snap
diff --git a/src/components/Action/actionOnGoing.scss b/src/components/Action/ActionOnGoing/actionOnGoing.scss
similarity index 100%
rename from src/components/Action/actionOnGoing.scss
rename to src/components/Action/ActionOnGoing/actionOnGoing.scss
diff --git a/src/components/Action/ActionView.spec.tsx b/src/components/Action/ActionView.spec.tsx
index 5bf2322c811c47518fdcdf27f84d831b8fa17ab1..e34726252580be8ce999890662cf936c5d0f000a 100644
--- a/src/components/Action/ActionView.spec.tsx
+++ b/src/components/Action/ActionView.spec.tsx
@@ -4,12 +4,12 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import ActionChoose from './ActionChoose'
-import ActionDone from './ActionDone'
-import ActionOnGoing from './ActionOnGoing'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import ActionChoose from './ActionChoose/ActionChoose'
+import ActionDone from './ActionDone/ActionDone'
+import ActionOnGoing from './ActionOnGoing/ActionOnGoing'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -24,7 +24,10 @@ jest.mock('react-router-dom', () => ({
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
 jest.mock('components/Content/Content', () => 'mock-content')
-jest.mock('components/Action/ActionBegin', () => 'mock-action-begin')
+jest.mock(
+  'components/Action/ActionBegin/ActionBegin.tsx',
+  () => 'mock-action-begin'
+)
 
 describe('ActionView component', () => {
   it('should render ActionChoose component', async () => {
diff --git a/src/components/Action/ActionView.tsx b/src/components/Action/ActionView.tsx
index cb38bbb44b88f1b6e4535cb8e53338b00da01545..44a101159b1a5cb6298eaff9157ea72974c6ddfe 100644
--- a/src/components/Action/ActionView.tsx
+++ b/src/components/Action/ActionView.tsx
@@ -1,6 +1,3 @@
-import ActionChoose from 'components/Action/ActionChoose'
-import ActionDone from 'components/Action/ActionDone'
-import ActionOnGoing from 'components/Action/ActionOnGoing'
 import Content from 'components/Content/Content'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
@@ -8,6 +5,9 @@ import { UserActionState } from 'enums'
 import { UserChallenge } from 'models'
 import React, { useState } from 'react'
 import { useAppSelector } from 'store/hooks'
+import ActionChoose from './ActionChoose/ActionChoose'
+import ActionDone from './ActionDone/ActionDone'
+import ActionOnGoing from './ActionOnGoing/ActionOnGoing'
 
 const ActionView = () => {
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
diff --git a/src/components/Analysis/AnalysisView.spec.tsx b/src/components/Analysis/AnalysisView.spec.tsx
index e112899bb8a35eef9b99eeb9f941b0689c3b602f..ed211248cc4e5702eb1b6aa160298afbccee3be6 100644
--- a/src/components/Analysis/AnalysisView.spec.tsx
+++ b/src/components/Analysis/AnalysisView.spec.tsx
@@ -10,7 +10,7 @@ import {
   mockAnalysisState,
   mockChartState,
   mockProfileState,
-} from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.spec.tsx b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.spec.tsx
index fd5718d4086c8d48fa131e754cf37bd8b3965a65..f0756b7ec8a6b237dd9abffafde7ea0f0926c6af 100644
--- a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.spec.tsx
+++ b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourChart.spec.tsx
@@ -3,8 +3,8 @@ import toJson from 'enzyme-to-json'
 import { DateTime } from 'luxon'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { dataLoadArray } from '../../../../tests/__mocks__/chartData.mock'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
+import { dataLoadArray } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ElecHalfHourChart from './ElecHalfHourChart'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourMonthlyAnalysis.spec.tsx b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourMonthlyAnalysis.spec.tsx
index ca9c022fe2fd433c008edb633586004a3bc781e6..72b8d6d0ae351f664830e8ca4f2dd25a701a92b0 100644
--- a/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourMonthlyAnalysis.spec.tsx
+++ b/src/components/Analysis/ElecHalfHourMonthlyAnalysis/ElecHalfHourMonthlyAnalysis.spec.tsx
@@ -7,10 +7,10 @@ import { Provider } from 'react-redux'
 import {
   mockDataLoadEnedisAnalysis,
   mockEnedisMonthlyAnalysisArray,
-} from '../../../../tests/__mocks__/enedisMonthlyAnalysisData.mock'
-import { allLastFluidPrices } from '../../../../tests/__mocks__/fluidPrice.mock'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../../tests/__mocks__/testUtils'
+} from 'tests/__mocks__/enedisMonthlyAnalysisData.mock'
+import { allLastFluidPrices } from 'tests/__mocks__/fluidPrice.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import ElecHalfHourMonthlyAnalysis from './ElecHalfHourMonthlyAnalysis'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.spec.tsx b/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.spec.tsx
index 74b19c9c8ef889d2faa92bcf242f4f4c75f28eb1..7b7e0363fa06afec1dca1b7e2989eed468a2137d 100644
--- a/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.spec.tsx
+++ b/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.spec.tsx
@@ -3,10 +3,10 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { graphData } from '../../../../tests/__mocks__/chartData.mock'
-import mockClient from '../../../../tests/__mocks__/client'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../../tests/__mocks__/testUtils'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import MaxConsumptionCard from './MaxConsumptionCard'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Analysis/MonthlyAnalysis.spec.tsx b/src/components/Analysis/MonthlyAnalysis.spec.tsx
index 5168b4c45fbdbd3e8b65d6302c9930581ca7ff45..b5ed125cceb3ef1a7625a20ecc497dae1cae9751 100644
--- a/src/components/Analysis/MonthlyAnalysis.spec.tsx
+++ b/src/components/Analysis/MonthlyAnalysis.spec.tsx
@@ -5,9 +5,9 @@ import { PerformanceIndicator } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
-import mockClient from '../../../tests/__mocks__/client'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import mockClient from 'tests/__mocks__/client'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
index be5f00a3b7f08261397cec8b2937947290aa9989..f8b37f9576d90ecd9062022c086654154b25015d 100644
--- a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
+++ b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
@@ -6,16 +6,13 @@ import { mount } from 'enzyme'
 import { PerformanceIndicator } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { profileData } from '../../../../tests/__mocks__/profileData.mock'
+import { profileData } from 'tests/__mocks__/profileData.mock'
 import {
   mockMonthlyForecastJanuaryTestProfile1,
   profileTypeData,
-} from '../../../../tests/__mocks__/profileType.mock'
-import {
-  createMockEcolyoStore,
-  mockAnalysisState,
-} from '../../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../../tests/__mocks__/testUtils'
+} from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore, mockAnalysisState } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import ProfileComparator from './ProfileComparator'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.spec.tsx b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.spec.tsx
index 39632fd0b4fa443b1e360d7c18cfb681a1232978..6c008806ce8a8a662be71a645850af9c4d97780a 100644
--- a/src/components/Analysis/ProfileComparator/ProfileComparatorRow.spec.tsx
+++ b/src/components/Analysis/ProfileComparator/ProfileComparatorRow.spec.tsx
@@ -2,7 +2,7 @@ import { FluidType } from 'enums'
 import { mount } from 'enzyme'
 import { MonthlyForecast } from 'models'
 import React from 'react'
-import { mockMonthlyForecastJanuaryTestProfile1 } from '../../../../tests/__mocks__/profileType.mock'
+import { mockMonthlyForecastJanuaryTestProfile1 } from 'tests/__mocks__/profileType.mock'
 import ProfileComparatorRow from './ProfileComparatorRow'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.spec.tsx b/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.spec.tsx
index f2481bfafd4e7366b624e4a6764ec62d3a642ac0..21effece2964a740f0ee06ca9229979d33ed8bb4 100644
--- a/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.spec.tsx
+++ b/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.spec.tsx
@@ -5,9 +5,9 @@ import { DateTime } from 'luxon'
 import { Datachart } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { graphMonthData } from '../../../../tests/__mocks__/chartData.mock'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../../tests/__mocks__/testUtils'
+import { graphMonthData } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import TotalAnalysisChart from './TotalAnalysisChart'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Challenge/ChallengeCard.spec.tsx b/src/components/Challenge/ChallengeCard/ChallengeCard.spec.tsx
similarity index 84%
rename from src/components/Challenge/ChallengeCard.spec.tsx
rename to src/components/Challenge/ChallengeCard/ChallengeCard.spec.tsx
index 8cd8bbc4905127b8e8b616a05260bfdf95317184..51fdf9afc8fb55da3bd36ef397e67caa433e9f52 100644
--- a/src/components/Challenge/ChallengeCard.spec.tsx
+++ b/src/components/Challenge/ChallengeCard/ChallengeCard.spec.tsx
@@ -1,10 +1,10 @@
 import { shallow } from 'enzyme'
 import React from 'react'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import ChallengeCardLocked from '../ChallengeCardLocked/ChallengeCardLocked'
+import ChallengeCardOnGoing from '../ChallengeCardOnGoing/ChallengeCardOnGoing'
+import ChallengeCardUnlocked from '../ChallengeCardUnlocked/ChallengeCardUnlocked'
 import ChallengeCard from './ChallengeCard'
-import ChallengeCardLocked from './ChallengeCardLocked'
-import ChallengeCardOnGoing from './ChallengeCardOnGoing'
-import ChallengeCardUnlocked from './ChallengeCardUnlocked'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Challenge/ChallengeCard.tsx b/src/components/Challenge/ChallengeCard/ChallengeCard.tsx
similarity index 80%
rename from src/components/Challenge/ChallengeCard.tsx
rename to src/components/Challenge/ChallengeCard/ChallengeCard.tsx
index 0f297d85e93d50f881a7dc5c45382ca5403ed29d..dc44d0da9da2d967f59135f2f4d3ab1bd356f528 100644
--- a/src/components/Challenge/ChallengeCard.tsx
+++ b/src/components/Challenge/ChallengeCard/ChallengeCard.tsx
@@ -1,11 +1,11 @@
 import { UserChallengeState } from 'enums'
 import { UserChallenge } from 'models'
 import React from 'react'
-import ChallengeCardDone from './ChallengeCardDone'
-import ChallengeCardLast from './ChallengeCardLast'
-import ChallengeCardLocked from './ChallengeCardLocked'
-import ChallengeCardOnGoing from './ChallengeCardOnGoing'
-import ChallengeCardUnlocked from './ChallengeCardUnlocked'
+import ChallengeCardDone from '../ChallengeCardDone/ChallengeCardDone'
+import ChallengeCardLast from '../ChallengeCardLast/ChallengeCardLast'
+import ChallengeCardLocked from '../ChallengeCardLocked/ChallengeCardLocked'
+import ChallengeCardOnGoing from '../ChallengeCardOnGoing/ChallengeCardOnGoing'
+import ChallengeCardUnlocked from '../ChallengeCardUnlocked/ChallengeCardUnlocked'
 import './challengeCard.scss'
 
 interface ChallengeCardProps {
diff --git a/src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap b/src/components/Challenge/ChallengeCard/__snapshots__/ChallengeCard.spec.tsx.snap
similarity index 100%
rename from src/components/Challenge/__snapshots__/ChallengeCard.spec.tsx.snap
rename to src/components/Challenge/ChallengeCard/__snapshots__/ChallengeCard.spec.tsx.snap
diff --git a/src/components/Challenge/challengeCard.scss b/src/components/Challenge/ChallengeCard/challengeCard.scss
similarity index 100%
rename from src/components/Challenge/challengeCard.scss
rename to src/components/Challenge/ChallengeCard/challengeCard.scss
diff --git a/src/components/Challenge/ChallengeCardDone.spec.tsx b/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
similarity index 93%
rename from src/components/Challenge/ChallengeCardDone.spec.tsx
rename to src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
index 7ef52440fdc20d439e287744fce3405ce06e3e29..73bf140fac49d5bb373daedb3a8d4b52fe84dd23 100644
--- a/src/components/Challenge/ChallengeCardDone.spec.tsx
+++ b/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
@@ -1,13 +1,13 @@
 import { Button } from '@material-ui/core'
-import ChallengeCardDone from 'components/Challenge/ChallengeCardDone'
+import ChallengeCardDone from 'components/Challenge/ChallengeCardDone/ChallengeCardDone'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
 import * as storeHooks from 'store/hooks'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Challenge/ChallengeCardDone.tsx b/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeCardDone.tsx
rename to src/components/Challenge/ChallengeCardDone/ChallengeCardDone.tsx
diff --git a/src/components/Challenge/__snapshots__/ChallengeCardDone.spec.tsx.snap b/src/components/Challenge/ChallengeCardDone/__snapshots__/ChallengeCardDone.spec.tsx.snap
similarity index 100%
rename from src/components/Challenge/__snapshots__/ChallengeCardDone.spec.tsx.snap
rename to src/components/Challenge/ChallengeCardDone/__snapshots__/ChallengeCardDone.spec.tsx.snap
diff --git a/src/components/Challenge/challengeCardDone.scss b/src/components/Challenge/ChallengeCardDone/challengeCardDone.scss
similarity index 100%
rename from src/components/Challenge/challengeCardDone.scss
rename to src/components/Challenge/ChallengeCardDone/challengeCardDone.scss
diff --git a/src/components/Challenge/ChallengeCardLast.spec.tsx b/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeCardLast.spec.tsx
rename to src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx
diff --git a/src/components/Challenge/ChallengeCardLast.tsx b/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeCardLast.tsx
rename to src/components/Challenge/ChallengeCardLast/ChallengeCardLast.tsx
diff --git a/src/components/Challenge/__snapshots__/ChallengeCardLast.spec.tsx.snap b/src/components/Challenge/ChallengeCardLast/__snapshots__/ChallengeCardLast.spec.tsx.snap
similarity index 100%
rename from src/components/Challenge/__snapshots__/ChallengeCardLast.spec.tsx.snap
rename to src/components/Challenge/ChallengeCardLast/__snapshots__/ChallengeCardLast.spec.tsx.snap
diff --git a/src/components/Challenge/challengeCardLast.scss b/src/components/Challenge/ChallengeCardLast/challengeCardLast.scss
similarity index 100%
rename from src/components/Challenge/challengeCardLast.scss
rename to src/components/Challenge/ChallengeCardLast/challengeCardLast.scss
diff --git a/src/components/Challenge/ChallengeCardLocked.spec.tsx b/src/components/Challenge/ChallengeCardLocked/ChallengeCardLocked.spec.tsx
similarity index 82%
rename from src/components/Challenge/ChallengeCardLocked.spec.tsx
rename to src/components/Challenge/ChallengeCardLocked/ChallengeCardLocked.spec.tsx
index ca7f554f949cb623ab4cb965abaf2690225eb76e..08dfd9aa58dc937e1aacc769da0c058d41a1d070 100644
--- a/src/components/Challenge/ChallengeCardLocked.spec.tsx
+++ b/src/components/Challenge/ChallengeCardLocked/ChallengeCardLocked.spec.tsx
@@ -1,6 +1,6 @@
 import { shallow } from 'enzyme'
 import React from 'react'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ChallengeCardLocked from './ChallengeCardLocked'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Challenge/ChallengeCardLocked.tsx b/src/components/Challenge/ChallengeCardLocked/ChallengeCardLocked.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeCardLocked.tsx
rename to src/components/Challenge/ChallengeCardLocked/ChallengeCardLocked.tsx
diff --git a/src/components/Challenge/__snapshots__/ChallengeCardLocked.spec.tsx.snap b/src/components/Challenge/ChallengeCardLocked/__snapshots__/ChallengeCardLocked.spec.tsx.snap
similarity index 100%
rename from src/components/Challenge/__snapshots__/ChallengeCardLocked.spec.tsx.snap
rename to src/components/Challenge/ChallengeCardLocked/__snapshots__/ChallengeCardLocked.spec.tsx.snap
diff --git a/src/components/Challenge/challengeCardLocked.scss b/src/components/Challenge/ChallengeCardLocked/challengeCardLocked.scss
similarity index 100%
rename from src/components/Challenge/challengeCardLocked.scss
rename to src/components/Challenge/ChallengeCardLocked/challengeCardLocked.scss
diff --git a/src/components/Challenge/ChallengeCardOnGoing.tsx b/src/components/Challenge/ChallengeCardOnGoing/ChallengeCardOnGoing.tsx
similarity index 98%
rename from src/components/Challenge/ChallengeCardOnGoing.tsx
rename to src/components/Challenge/ChallengeCardOnGoing/ChallengeCardOnGoing.tsx
index 44620c2d6cbfd2900479fa15db0e63fae4d32a30..000df33b954b07a5a32d66e97a1898f194820d7c 100644
--- a/src/components/Challenge/ChallengeCardOnGoing.tsx
+++ b/src/components/Challenge/ChallengeCardOnGoing/ChallengeCardOnGoing.tsx
@@ -7,6 +7,7 @@ import defaultIcon from 'assets/icons/visu/duel/default.svg'
 import lockedDuel from 'assets/icons/visu/duel/locked.svg'
 import classNames from 'classnames'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
+import StarsContainer from 'components/CommonKit/StarsContainer/StarsContainer'
 import Loader from 'components/Loader/Loader'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
@@ -24,8 +25,7 @@ import ChallengeService from 'services/challenge.service'
 import { updateUserChallengeList } from 'store/challenge/challenge.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { getChallengeTitleWithLineReturn, importIconById } from 'utils/utils'
-import ChallengeNoFluidModal from './ChallengeNoFluidModal'
-import StarsContainer from './StarsContainer'
+import ChallengeNoFluidModal from '../ChallengeNoFluidModal/ChallengeNoFluidModal'
 import './challengeCardOnGoing.scss'
 
 const ChallengeCardOnGoing = ({
diff --git a/src/components/Challenge/challengeCardOnGoing.scss b/src/components/Challenge/ChallengeCardOnGoing/challengeCardOnGoing.scss
similarity index 100%
rename from src/components/Challenge/challengeCardOnGoing.scss
rename to src/components/Challenge/ChallengeCardOnGoing/challengeCardOnGoing.scss
diff --git a/src/components/Challenge/ChallengeCardUnlocked.spec.tsx b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
similarity index 93%
rename from src/components/Challenge/ChallengeCardUnlocked.spec.tsx
rename to src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
index c65af921d0984a22b6e4d9895da131e8d2585897..6fadd106ab70c6682efa1efc2d433a737f2af515 100644
--- a/src/components/Challenge/ChallengeCardUnlocked.spec.tsx
+++ b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
@@ -9,11 +9,11 @@ import {
   createMockEcolyoStore,
   mockChallengeState,
   mockGlobalState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import ChallengeNoFluidModal from '../ChallengeNoFluidModal/ChallengeNoFluidModal'
 import ChallengeCardUnlocked from './ChallengeCardUnlocked'
-import ChallengeNoFluidModal from './ChallengeNoFluidModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Challenge/ChallengeCardUnlocked.tsx b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.tsx
similarity index 97%
rename from src/components/Challenge/ChallengeCardUnlocked.tsx
rename to src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.tsx
index c273f169189a70e5b42213de276a5cde4899ff07..97aad463f6ff9bdea280ea1e81ab68f3144b027e 100644
--- a/src/components/Challenge/ChallengeCardUnlocked.tsx
+++ b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.tsx
@@ -11,7 +11,7 @@ import UsageEventService from 'services/usageEvent.service'
 import { updateUserChallengeList } from 'store/challenge/challenge.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { getChallengeTitleWithLineReturn, importIconById } from 'utils/utils'
-import ChallengeNoFluidModal from './ChallengeNoFluidModal'
+import ChallengeNoFluidModal from '../ChallengeNoFluidModal/ChallengeNoFluidModal'
 import './challengeCardUnlocked.scss'
 
 const ChallengeCardUnlocked = ({
diff --git a/src/components/Challenge/challengeCardUnlocked.scss b/src/components/Challenge/ChallengeCardUnlocked/challengeCardUnlocked.scss
similarity index 100%
rename from src/components/Challenge/challengeCardUnlocked.scss
rename to src/components/Challenge/ChallengeCardUnlocked/challengeCardUnlocked.scss
diff --git a/src/components/Challenge/ChallengeNoFluidModal.spec.tsx b/src/components/Challenge/ChallengeNoFluidModal/ChallengeNoFluidModal.spec.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeNoFluidModal.spec.tsx
rename to src/components/Challenge/ChallengeNoFluidModal/ChallengeNoFluidModal.spec.tsx
diff --git a/src/components/Challenge/ChallengeNoFluidModal.tsx b/src/components/Challenge/ChallengeNoFluidModal/ChallengeNoFluidModal.tsx
similarity index 100%
rename from src/components/Challenge/ChallengeNoFluidModal.tsx
rename to src/components/Challenge/ChallengeNoFluidModal/ChallengeNoFluidModal.tsx
diff --git a/src/components/Challenge/__snapshots__/ChallengeNoFluidModal.spec.tsx.snap b/src/components/Challenge/ChallengeNoFluidModal/__snapshots__/ChallengeNoFluidModal.spec.tsx.snap
similarity index 100%
rename from src/components/Challenge/__snapshots__/ChallengeNoFluidModal.spec.tsx.snap
rename to src/components/Challenge/ChallengeNoFluidModal/__snapshots__/ChallengeNoFluidModal.spec.tsx.snap
diff --git a/src/components/Challenge/challengeNoFluidModal.scss b/src/components/Challenge/ChallengeNoFluidModal/challengeNoFluidModal.scss
similarity index 100%
rename from src/components/Challenge/challengeNoFluidModal.scss
rename to src/components/Challenge/ChallengeNoFluidModal/challengeNoFluidModal.scss
diff --git a/src/components/Challenge/ChallengeView.spec.tsx b/src/components/Challenge/ChallengeView.spec.tsx
index b713fc23256203d05322f00be711d6e5bcfaf707..a28970ae9f5f0c699366229fc959519f27262654 100644
--- a/src/components/Challenge/ChallengeView.spec.tsx
+++ b/src/components/Challenge/ChallengeView.spec.tsx
@@ -3,8 +3,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { challengeStateDataFull } from '../../../tests/__mocks__/challengeStateData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { challengeStateDataFull } from 'tests/__mocks__/challengeStateData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -15,7 +15,10 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => ({
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
 jest.mock('components/Content/Content', () => 'mock-content')
-jest.mock('components/Challenge/ChallengeCard', () => 'mock-challengecard')
+jest.mock(
+  'components/Challenge/ChallengeCard/ChallengeCard',
+  () => 'mock-challengecard'
+)
 
 describe('ChallengeView component', () => {
   const store = createMockEcolyoStore({
diff --git a/src/components/Challenge/ChallengeView.tsx b/src/components/Challenge/ChallengeView.tsx
index bf2652648226d1c5c98e9472bcfaf91033f641e5..df8ad1daf332710343bb146feb4ef8cfff51502a 100644
--- a/src/components/Challenge/ChallengeView.tsx
+++ b/src/components/Challenge/ChallengeView.tsx
@@ -8,7 +8,7 @@ import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { UserChallengeState } from 'enums'
 import React, { useCallback, useEffect, useState } from 'react'
 import { useAppSelector } from 'store/hooks'
-import ChallengeCard from './ChallengeCard'
+import ChallengeCard from './ChallengeCard/ChallengeCard'
 import './challengeView.scss'
 
 const ChallengeView = () => {
diff --git a/src/components/Charts/AxisBottom.spec.tsx b/src/components/Charts/AxisBottom.spec.tsx
index 8bde1184420acb73c93e2e0cdf036f52abbb079f..da25e6dc0c2c8707dad491c65ae6fe9a62d83964 100644
--- a/src/components/Charts/AxisBottom.spec.tsx
+++ b/src/components/Charts/AxisBottom.spec.tsx
@@ -4,8 +4,8 @@ import { mount } from 'enzyme'
 import { DateTime } from 'luxon'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { graphData } from '../../../tests/__mocks__/chartData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import AxisBottom from './AxisBottom'
 
 const mockXScale: ScaleBand<string> = scaleBand()
diff --git a/src/components/Charts/Bar.spec.tsx b/src/components/Charts/Bar.spec.tsx
index 0e7def2e9d788c16b8a67e725bbcd9a00661ab5d..83f0718f5ebeb49f8e761b57954e80bc6e80d3e0 100644
--- a/src/components/Charts/Bar.spec.tsx
+++ b/src/components/Charts/Bar.spec.tsx
@@ -5,8 +5,8 @@ import { DateTime } from 'luxon'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as chartActions from 'store/chart/chart.slice'
-import { graphData } from '../../../tests/__mocks__/chartData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import Bar from './Bar'
 
 const mockXScale: ScaleBand<string> = scaleBand()
diff --git a/src/components/FormGlobal/FormNavigation.spec.tsx b/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
similarity index 95%
rename from src/components/FormGlobal/FormNavigation.spec.tsx
rename to src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
index fedd1a5ece2b36b50d39d95231c6219957e83b77..8703cfe9d26aae3f4a0ac6312de2543d2d6fb02a 100644
--- a/src/components/FormGlobal/FormNavigation.spec.tsx
+++ b/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
@@ -3,7 +3,7 @@ import { ProfileTypeStepForm } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import FormNavigation from './FormNavigation'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/FormGlobal/FormNavigation.tsx b/src/components/CommonKit/FormNavigation/FormNavigation.tsx
similarity index 98%
rename from src/components/FormGlobal/FormNavigation.tsx
rename to src/components/CommonKit/FormNavigation/FormNavigation.tsx
index edc2b844285d8e02d07036c6527922594224accd..626efbd846ae75000307002bd270d9b8d15af06c 100644
--- a/src/components/FormGlobal/FormNavigation.tsx
+++ b/src/components/CommonKit/FormNavigation/FormNavigation.tsx
@@ -1,10 +1,10 @@
 import Button from '@material-ui/core/Button'
 import classNames from 'classnames'
-import 'components/FormGlobal/formNavigation.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { EcogestureStepForm, ProfileTypeStepForm, SgeStep } from 'enums'
 import React, { useCallback } from 'react'
 import { useNavigate } from 'react-router-dom'
+import './formNavigation.scss'
 
 interface FormNavigationProps {
   step: ProfileTypeStepForm | EcogestureStepForm | SgeStep
diff --git a/src/components/FormGlobal/formNavigation.scss b/src/components/CommonKit/FormNavigation/formNavigation.scss
similarity index 100%
rename from src/components/FormGlobal/formNavigation.scss
rename to src/components/CommonKit/FormNavigation/formNavigation.scss
diff --git a/src/components/FormGlobal/FormProgress.tsx b/src/components/CommonKit/FormProgress/FormProgress.tsx
similarity index 94%
rename from src/components/FormGlobal/FormProgress.tsx
rename to src/components/CommonKit/FormProgress/FormProgress.tsx
index 74249dcc5c7e1c2b97291673ca83fd844a258b33..255f52b4e68746325c58dd5d74a9438a7dd0879f 100644
--- a/src/components/FormGlobal/FormProgress.tsx
+++ b/src/components/CommonKit/FormProgress/FormProgress.tsx
@@ -1,6 +1,6 @@
-import 'components/FormGlobal/formProgress.scss'
 import { ProfileTypeStepForm, SgeStep } from 'enums'
 import React from 'react'
+import './formProgress.scss'
 
 interface FormProgressProps {
   step: ProfileTypeStepForm | SgeStep
diff --git a/src/components/FormGlobal/formProgress.scss b/src/components/CommonKit/FormProgress/formProgress.scss
similarity index 100%
rename from src/components/FormGlobal/formProgress.scss
rename to src/components/CommonKit/FormProgress/formProgress.scss
diff --git a/src/components/Challenge/StarsContainer.tsx b/src/components/CommonKit/StarsContainer/StarsContainer.tsx
similarity index 100%
rename from src/components/Challenge/StarsContainer.tsx
rename to src/components/CommonKit/StarsContainer/StarsContainer.tsx
diff --git a/src/components/Connection/Connection.spec.tsx b/src/components/Connection/Connection.spec.tsx
index 51cf0a26426928887f225058ce68541145e7ed24..c1fd7f53cb99ecbc22b2185f3a802532a43b3448 100644
--- a/src/components/Connection/Connection.spec.tsx
+++ b/src/components/Connection/Connection.spec.tsx
@@ -3,8 +3,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { fluidStatusConnectedData } from '../../../tests/__mocks__/fluidStatusData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { fluidStatusConnectedData } from 'tests/__mocks__/fluidStatusData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 jest.mock('components/Connection/EPGLConnect/EpglInit', () => {
   return jest.fn(() => {
diff --git a/src/components/Connection/EPGLConnect/EpglForm.tsx b/src/components/Connection/EPGLConnect/EpglForm.tsx
index 670f7f222a9baa4fcc7e132783c8d83d9244fa1e..3ff6e8792bf7e2df7c55cf8b14d89dab42056070 100644
--- a/src/components/Connection/EPGLConnect/EpglForm.tsx
+++ b/src/components/Connection/EPGLConnect/EpglForm.tsx
@@ -1,8 +1,8 @@
-import FormLogin from 'components/Connection/FormLogin'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { FluidStatus } from 'models'
 import React from 'react'
 import '../connection.scss'
+import FormLogin from './FormLogin/FormLogin'
 
 interface EpglFormProps {
   fluidStatus: FluidStatus
diff --git a/src/components/Connection/FormLogin.tsx b/src/components/Connection/EPGLConnect/FormLogin/FormLogin.tsx
similarity index 100%
rename from src/components/Connection/FormLogin.tsx
rename to src/components/Connection/EPGLConnect/FormLogin/FormLogin.tsx
diff --git a/src/components/Connection/formLogin.scss b/src/components/Connection/EPGLConnect/FormLogin/formLogin.scss
similarity index 100%
rename from src/components/Connection/formLogin.scss
rename to src/components/Connection/EPGLConnect/FormLogin/formLogin.scss
diff --git a/src/components/Connection/ExpiredConsentModal.spec.tsx b/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
similarity index 94%
rename from src/components/Connection/ExpiredConsentModal.spec.tsx
rename to src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
index 18f57c69eaed910ec847612becd5a5f64a639daa..b03a29c2ac3ccdb4ec7d4cebaf7b8194d1e0270a 100644
--- a/src/components/Connection/ExpiredConsentModal.spec.tsx
+++ b/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
@@ -5,8 +5,8 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import { fluidStatusConnectedData } from '../../../tests/__mocks__/fluidStatusData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { fluidStatusConnectedData } from 'tests/__mocks__/fluidStatusData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ExpiredConsentModal from './ExpiredConsentModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/ExpiredConsentModal.tsx b/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.tsx
similarity index 100%
rename from src/components/Connection/ExpiredConsentModal.tsx
rename to src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.tsx
diff --git a/src/components/Connection/__snapshots__/ExpiredConsentModal.spec.tsx.snap b/src/components/Connection/ExpiredConsentModal/__snapshots__/ExpiredConsentModal.spec.tsx.snap
similarity index 100%
rename from src/components/Connection/__snapshots__/ExpiredConsentModal.spec.tsx.snap
rename to src/components/Connection/ExpiredConsentModal/__snapshots__/ExpiredConsentModal.spec.tsx.snap
diff --git a/src/components/Connection/expiredConsentModal.scss b/src/components/Connection/ExpiredConsentModal/expiredConsentModal.scss
similarity index 100%
rename from src/components/Connection/expiredConsentModal.scss
rename to src/components/Connection/ExpiredConsentModal/expiredConsentModal.scss
diff --git a/src/components/Connection/DeleteGRDFAccountModal.spec.tsx b/src/components/Connection/GRDFDeleteAccountModal/DeleteGRDFAccountModal.spec.tsx
similarity index 100%
rename from src/components/Connection/DeleteGRDFAccountModal.spec.tsx
rename to src/components/Connection/GRDFDeleteAccountModal/DeleteGRDFAccountModal.spec.tsx
diff --git a/src/components/Connection/DeleteGRDFAccountModal.tsx b/src/components/Connection/GRDFDeleteAccountModal/DeleteGRDFAccountModal.tsx
similarity index 100%
rename from src/components/Connection/DeleteGRDFAccountModal.tsx
rename to src/components/Connection/GRDFDeleteAccountModal/DeleteGRDFAccountModal.tsx
diff --git a/src/components/Connection/__snapshots__/DeleteGRDFAccountModal.spec.tsx.snap b/src/components/Connection/GRDFDeleteAccountModal/__snapshots__/DeleteGRDFAccountModal.spec.tsx.snap
similarity index 100%
rename from src/components/Connection/__snapshots__/DeleteGRDFAccountModal.spec.tsx.snap
rename to src/components/Connection/GRDFDeleteAccountModal/__snapshots__/DeleteGRDFAccountModal.spec.tsx.snap
diff --git a/src/components/Connection/deleteGRDFAccountModal.scss b/src/components/Connection/GRDFDeleteAccountModal/deleteGRDFAccountModal.scss
similarity index 100%
rename from src/components/Connection/deleteGRDFAccountModal.scss
rename to src/components/Connection/GRDFDeleteAccountModal/deleteGRDFAccountModal.scss
diff --git a/src/components/Connection/PartnerConnectModal/GrdfConnectModal.tsx b/src/components/Connection/PartnerConnectModal/GrdfConnectModal.tsx
index 267225cf9fce9dc591911e070c9fe957c88573d2..4521904582745b56b22f34d8a648c89fe87260c8 100644
--- a/src/components/Connection/PartnerConnectModal/GrdfConnectModal.tsx
+++ b/src/components/Connection/PartnerConnectModal/GrdfConnectModal.tsx
@@ -1,14 +1,14 @@
 import { Button, Dialog, IconButton } from '@material-ui/core'
 import CloseIcon from 'assets/icons/ico/close.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import FormOAuth from 'components/Connection/FormOAuth'
+import GrdfFormOAuth from 'components/Connection/PartnerConnectModal/Steps/GrdfFormOAuth'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { FluidStatus, Konnector } from 'models'
 import React, { useEffect, useState } from 'react'
 import './PartnerConnectModal.scss'
 import GrdfCreateAccount from './Steps/GrdfCreateAccount'
 import GrdfDoYouHaveAccount from './Steps/GrdfDoYouHaveAccount'
-import GiveConsent from './Steps/GrdfGiveConsent'
+import GrdfGiveConsent from './Steps/GrdfGiveConsent'
 import { StepContent } from './stepContent.interface'
 
 enum StepEnum {
@@ -109,7 +109,7 @@ const GrdfConnectModal = ({
       ),
     },
     [StepEnum.GiveConsent]: {
-      content: <GiveConsent />,
+      content: <GrdfGiveConsent />,
       leftButton: (
         <Button
           onClick={handleGiveConsentPrevious}
@@ -122,7 +122,7 @@ const GrdfConnectModal = ({
         </Button>
       ),
       rightButton: (
-        <FormOAuth
+        <GrdfFormOAuth
           konnector={konnector}
           onSuccess={handleSuccess}
           fluidStatus={fluidStatus}
diff --git a/src/components/Connection/FormOAuth.tsx b/src/components/Connection/PartnerConnectModal/Steps/GrdfFormOAuth.tsx
similarity index 94%
rename from src/components/Connection/FormOAuth.tsx
rename to src/components/Connection/PartnerConnectModal/Steps/GrdfFormOAuth.tsx
index 5bfd9245e6f44de0cdfa5dccdb5830943dcd9e41..7b962fd1c06dc68dea4741add9e1cb3dc1a2578b 100644
--- a/src/components/Connection/FormOAuth.tsx
+++ b/src/components/Connection/PartnerConnectModal/Steps/GrdfFormOAuth.tsx
@@ -9,13 +9,17 @@ import UsageEventService from 'services/usageEvent.service'
 import { setShouldRefreshConsent } from 'store/global/global.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 
-interface FormOAuthProps {
+interface GrdfFormOAuthProps {
   konnector: Konnector | null
   onSuccess: (accountId: string) => Promise<void>
   fluidStatus: FluidStatus
 }
 
-const FormOAuth = ({ konnector, onSuccess, fluidStatus }: FormOAuthProps) => {
+const GrdfFormOAuth = ({
+  konnector,
+  onSuccess,
+  fluidStatus,
+}: GrdfFormOAuthProps) => {
   const IDLE = 'idle'
   const WAITING = 'waiting'
 
@@ -92,4 +96,4 @@ const FormOAuth = ({ konnector, onSuccess, fluidStatus }: FormOAuthProps) => {
   )
 }
 
-export default FormOAuth
+export default GrdfFormOAuth
diff --git a/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx b/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
index 9b478d18b2a414426f1bf69f5356b7210110f2c7..0c577af1b4dfcea6ceb16e86946e4e9e08357960 100644
--- a/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
+++ b/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
@@ -4,10 +4,7 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../../tests/__mocks__/store'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
 import SgeConnectView from './SgeConnectView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -21,7 +18,6 @@ jest.mock('react-router-dom', () => ({
   useNavigate: () => mockedNavigate,
 }))
 jest.mock('components/Content/Content', () => 'mock-content')
-jest.mock('components/FormGlobal/FormProgress', () => 'mock-formprogress')
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 
 const mockAppDispatch = jest.spyOn(storeHooks, 'useAppDispatch')
diff --git a/src/components/Connection/SGEConnect/SgeConnectView.tsx b/src/components/Connection/SGEConnect/SgeConnectView.tsx
index 4b2363e3bd6aea422e2cc8f7ddba467a2dd56f34..436de2a235cff0bfb4b1c39e50052787b2ff851d 100644
--- a/src/components/Connection/SGEConnect/SgeConnectView.tsx
+++ b/src/components/Connection/SGEConnect/SgeConnectView.tsx
@@ -1,6 +1,6 @@
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import Content from 'components/Content/Content'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { SgeStep } from 'enums'
diff --git a/src/components/Connection/SGEConnect/SgeInit.spec.tsx b/src/components/Connection/SGEConnect/SgeInit.spec.tsx
index e2e28ffb33f3d71b0e266a3c8ac8349818165a7f..3f1b2bc7d506b2a7e4b23660225209763785a4d4 100644
--- a/src/components/Connection/SGEConnect/SgeInit.spec.tsx
+++ b/src/components/Connection/SGEConnect/SgeInit.spec.tsx
@@ -6,12 +6,9 @@ import { Provider } from 'react-redux'
 import {
   fluidStatusData,
   SgeStatusWithAccount,
-} from '../../../../tests/__mocks__/fluidStatusData.mock'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../../tests/__mocks__/testUtils'
+} from 'tests/__mocks__/fluidStatusData.mock'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import SgeInit from './SgeInit'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/SGEConnect/SgeModalHint.spec.tsx b/src/components/Connection/SGEConnect/SgeModalHint.spec.tsx
index b4099e1f69ea70e8db4edb598ae0806465a1085b..316d9e0f3dbcb45eb804fc9a6a0d45395f049235 100644
--- a/src/components/Connection/SGEConnect/SgeModalHint.spec.tsx
+++ b/src/components/Connection/SGEConnect/SgeModalHint.spec.tsx
@@ -2,7 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import SgeModalHint from './SgeModalHint'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/SGEConnect/StepAddress.spec.tsx b/src/components/Connection/SGEConnect/StepAddress.spec.tsx
index 9cc71083d3e83fd51feec75fde33a97ffbd06b2a..500aa61c3d1f980e32a7d7b7f35880b0a6c38f1e 100644
--- a/src/components/Connection/SGEConnect/StepAddress.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepAddress.spec.tsx
@@ -2,10 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../../tests/__mocks__/store'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
 import StepAddress from './StepAddress'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/SGEConnect/StepConsent.spec.tsx b/src/components/Connection/SGEConnect/StepConsent.spec.tsx
index 392b56f33fd510361056ff2b1262aea2b3acdb59..f1e6c713688e9f909bfbedb066133b74f63ce445 100644
--- a/src/components/Connection/SGEConnect/StepConsent.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepConsent.spec.tsx
@@ -2,10 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../../tests/__mocks__/store'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
 import StepConsent from './StepConsent'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
index 722ba9054a495d88cd74ef11168b39e49c530fba..9e92e02056782b3109b42a205c757d22355d5bb1 100644
--- a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
@@ -2,10 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../../tests/__mocks__/store'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
 import StepIdentityAndPdl from './StepIdentityAndPdl'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap b/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
index bb15318abb0f109f78635f41beaacffceda9c42d..7d7e809cf6dcae84cdda6e96df7c7a7c53340240 100644
--- a/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
+++ b/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
@@ -309,10 +309,33 @@ exports[`SgeConnectView component should be rendered correctly 1`] = `
         <div
           className="sge-container"
         >
-          <mock-formprogress
+          <FormProgress
             formType="sge"
             step={0}
-          />
+          >
+            <div
+              className="profile-type-progress"
+            >
+              <div
+                className="profile-type-progress-label"
+              >
+                1
+                %
+              </div>
+              <div
+                className="profile-type-progress-bar-container"
+              >
+                <div
+                  className="profile-type-progress-bar-content"
+                  style={
+                    Object {
+                      "width": "1%",
+                    }
+                  }
+                />
+              </div>
+            </div>
+          </FormProgress>
           <StepIdentityAndPdl
             onChange={[Function]}
             sgeState={
diff --git a/src/components/Home/ConsumptionDetails.spec.tsx b/src/components/Consumption/ConsumptionDetails/ConsumptionDetails.spec.tsx
similarity index 88%
rename from src/components/Home/ConsumptionDetails.spec.tsx
rename to src/components/Consumption/ConsumptionDetails/ConsumptionDetails.spec.tsx
index af41672238a23f2c76591a11bb11b5322e272fa4..b711a57693d2b35f1c4c605cc96a703f70f8cbc1 100644
--- a/src/components/Home/ConsumptionDetails.spec.tsx
+++ b/src/components/Consumption/ConsumptionDetails/ConsumptionDetails.spec.tsx
@@ -3,8 +3,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import ConsumptionDetails from './ConsumptionDetails'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Home/ConsumptionDetails.tsx b/src/components/Consumption/ConsumptionDetails/ConsumptionDetails.tsx
similarity index 100%
rename from src/components/Home/ConsumptionDetails.tsx
rename to src/components/Consumption/ConsumptionDetails/ConsumptionDetails.tsx
diff --git a/src/components/Home/__snapshots__/ConsumptionDetails.spec.tsx.snap b/src/components/Consumption/ConsumptionDetails/__snapshots__/ConsumptionDetails.spec.tsx.snap
similarity index 100%
rename from src/components/Home/__snapshots__/ConsumptionDetails.spec.tsx.snap
rename to src/components/Consumption/ConsumptionDetails/__snapshots__/ConsumptionDetails.spec.tsx.snap
diff --git a/src/components/Home/consumptionDetails.scss b/src/components/Consumption/ConsumptionDetails/consumptionDetails.scss
similarity index 100%
rename from src/components/Home/consumptionDetails.scss
rename to src/components/Consumption/ConsumptionDetails/consumptionDetails.scss
diff --git a/src/components/Home/ConsumptionView.spec.tsx b/src/components/Consumption/ConsumptionView.spec.tsx
similarity index 85%
rename from src/components/Home/ConsumptionView.spec.tsx
rename to src/components/Consumption/ConsumptionView.spec.tsx
index f02b52e4a3c055ce83329dd9538059bbe347e7f3..7c2a6f0cb73e53bdec614ffdd269b6565e6b2177 100644
--- a/src/components/Home/ConsumptionView.spec.tsx
+++ b/src/components/Consumption/ConsumptionView.spec.tsx
@@ -4,18 +4,18 @@ import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as chartActions from 'store/chart/chart.slice'
-import { mockCustomPopup } from '../../../tests/__mocks__/customPopup.mock'
+import { mockCustomPopup } from 'tests/__mocks__/customPopup.mock'
 import {
   mockExpiredElec,
   mockExpiredGas,
-} from '../../../tests/__mocks__/fluidStatusData.mock'
-import { mockTestProfile1 } from '../../../tests/__mocks__/profileType.mock'
+} from 'tests/__mocks__/fluidStatusData.mock'
+import { mockTestProfile1 } from 'tests/__mocks__/profileType.mock'
 import {
   createMockEcolyoStore,
   mockChartState,
   mockInitialEcolyoState,
   mockModalState,
-} from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/store'
 import ConsumptionView from './ConsumptionView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -39,22 +39,31 @@ jest.mock('react-router-dom', () => ({
 
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
-jest.mock('components/DateNavigator/DateNavigator', () => 'mock-datenavigator')
+jest.mock('components/DateNavigator/DateNavigator', () => 'mock-dateNavigator')
 jest.mock('components/Content/Content', () => 'mock-content')
-jest.mock('components/Home/FluidButtons', () => 'mock-fluidbuttons')
+jest.mock(
+  'components/Consumption/FluidButtons/FluidButtons',
+  () => 'mock-fluidButtons'
+)
 jest.mock('components/FluidChart/FluidChart', () => 'mock-fluidchart')
-jest.mock('components/Home/ConsumptionDetails', () => 'mock-consumptiondetails')
+jest.mock(
+  'components/Consumption/ConsumptionDetails/ConsumptionDetails',
+  () => 'mock-consumptionDetails'
+)
 jest.mock('components/Connection/Connection', () => 'mock-connection')
 jest.mock(
   'components/Konnector/KonnectorViewerCard',
-  () => 'mock-konnectorviewercard'
+  () => 'mock-konnectorViewerCard'
 )
 jest.mock(
   'components/PartnerIssue/PartnerIssueModal',
-  () => 'mock-partnerissuemodal'
+  () => 'mock-partnerIssueModal'
+)
+jest.mock('components/CustomPopup/CustomPopupModal', () => 'mock-customPopup')
+jest.mock(
+  'components/ReleaseNotesModal/ReleaseNotesModal',
+  () => 'mock-releaseNotes'
 )
-jest.mock('components/CustomPopup/CustomPopupModal', () => 'mock-custompopup')
-jest.mock('components/Home/ReleaseNotesModal', () => 'mock-releasenotes')
 jest.mock(
   'components/Connection/SGEConnect/SgeConnectView',
   () => 'mock-SgeConnectView'
@@ -94,10 +103,10 @@ describe('ConsumptionView component', () => {
     )
     expect(wrapper.find('mock-cozybar').exists()).toBeTruthy()
     expect(wrapper.find('mock-header').exists()).toBeTruthy()
-    expect(wrapper.find('mock-datenavigator').exists()).toBeTruthy()
-    expect(wrapper.find('mock-fluidbuttons').exists()).toBeTruthy()
+    expect(wrapper.find('mock-dateNavigator').exists()).toBeTruthy()
+    expect(wrapper.find('mock-fluidButtons').exists()).toBeTruthy()
     expect(wrapper.find('mock-fluidchart').exists()).toBeTruthy()
-    expect(wrapper.find('mock-consumptiondetails').exists()).toBeTruthy()
+    expect(wrapper.find('mock-consumptionDetails').exists()).toBeTruthy()
   })
 
   it('should display a spinner when fluid connected and is loading', () => {
@@ -120,7 +129,7 @@ describe('ConsumptionView component', () => {
     )
     expect(wrapper.find('mock-cozybar').exists()).toBeTruthy()
     expect(wrapper.find('mock-header').exists()).toBeTruthy()
-    expect(wrapper.find('mock-datenavigator').exists()).toBeTruthy()
+    expect(wrapper.find('mock-dateNavigator').exists()).toBeTruthy()
     expect(wrapper.find(Loader).exists()).toBeTruthy()
   })
 
@@ -159,7 +168,7 @@ describe('ConsumptionView component', () => {
         <ConsumptionView fluidType={FluidType.MULTIFLUID} />
       </Provider>
     )
-    expect(wrapper.find('mock-consumptiondetails').exists()).toBeTruthy()
+    expect(wrapper.find('mock-consumptionDetails').exists()).toBeTruthy()
   })
 
   it('should render mutlifluid consumption if at least one fluid is connected', () => {
@@ -194,7 +203,7 @@ describe('ConsumptionView component', () => {
       </Provider>
     )
     expect(wrapper.find('.consumptionview-content').exists()).toBeTruthy()
-    expect(wrapper.find('mock-consumptiondetails').exists()).toBeTruthy()
+    expect(wrapper.find('mock-consumptionDetails').exists()).toBeTruthy()
   })
 
   // todo describe and add multiple fluids ?
@@ -215,7 +224,7 @@ describe('ConsumptionView component', () => {
         <ConsumptionView fluidType={FluidType.ELECTRICITY} />
       </Provider>
     )
-    expect(wrapper.find('mock-partnerissuemodal').exists()).toBeTruthy()
+    expect(wrapper.find('mock-partnerIssueModal').exists()).toBeTruthy()
   })
   it('should show expired modal when a GRDF consent is expired', () => {
     const updatedStatus = mockInitialEcolyoState.global.fluidStatus
@@ -272,7 +281,7 @@ describe('ConsumptionView component', () => {
         <ConsumptionView fluidType={FluidType.ELECTRICITY} />
       </Provider>
     )
-    expect(wrapper.find('mock-custompopup').exists()).toBeTruthy()
+    expect(wrapper.find('mock-customPopup').exists()).toBeTruthy()
   })
   it('should render releaseNotesModal if releaseNotes.show is true', async () => {
     const store = createMockEcolyoStore({
@@ -292,6 +301,6 @@ describe('ConsumptionView component', () => {
         <ConsumptionView fluidType={FluidType.ELECTRICITY} />
       </Provider>
     )
-    expect(wrapper.find('mock-releasenotes').exists()).toBeTruthy()
+    expect(wrapper.find('mock-releaseNotes').exists()).toBeTruthy()
   })
 })
diff --git a/src/components/Home/ConsumptionView.tsx b/src/components/Consumption/ConsumptionView.tsx
similarity index 97%
rename from src/components/Home/ConsumptionView.tsx
rename to src/components/Consumption/ConsumptionView.tsx
index 10d217683d85ebdd8d87753e0328acf856960839..a8814841b243bf68e64750d6e93248e144fba0fc 100644
--- a/src/components/Home/ConsumptionView.tsx
+++ b/src/components/Consumption/ConsumptionView.tsx
@@ -1,17 +1,16 @@
 import classNames from 'classnames'
-import ExpiredConsentModal from 'components/Connection/ExpiredConsentModal'
+import ExpiredConsentModal from 'components/Connection/ExpiredConsentModal/ExpiredConsentModal'
 import Content from 'components/Content/Content'
 import CustomPopupModal from 'components/CustomPopup/CustomPopupModal'
 import DateNavigator from 'components/DateNavigator/DateNavigator'
 import FluidChart from 'components/FluidChart/FluidChart'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
-import ConsumptionDetails from 'components/Home/ConsumptionDetails'
-import FluidButtons from 'components/Home/FluidButtons'
 import KonnectorViewerCard from 'components/Konnector/KonnectorViewerCard'
 import KonnectorViewerList from 'components/Konnector/KonnectorViewerList'
 import Loader from 'components/Loader/Loader'
 import PartnerIssueModal from 'components/PartnerIssue/PartnerIssueModal'
+import ReleaseNotesModal from 'components/ReleaseNotesModal/ReleaseNotesModal'
 import { useClient } from 'cozy-client'
 import { FluidType, TimeStep } from 'enums'
 import { DateTime } from 'luxon'
@@ -34,7 +33,8 @@ import {
   getTodayDate,
   isKonnectorActive,
 } from 'utils/utils'
-import ReleaseNotesModal from './ReleaseNotesModal'
+import ConsumptionDetails from './ConsumptionDetails/ConsumptionDetails'
+import FluidButtons from './FluidButtons/FluidButtons'
 import './consumptionView.scss'
 
 const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => {
diff --git a/src/components/Home/FluidButton.spec.tsx b/src/components/Consumption/FluidButtons/FluidButton.spec.tsx
similarity index 93%
rename from src/components/Home/FluidButton.spec.tsx
rename to src/components/Consumption/FluidButtons/FluidButton.spec.tsx
index 5b2a1c7b58b4b079080c8672fd57fe78eccca795..04ed871e42595e0ea9de17f8f85851e15f8151fe 100644
--- a/src/components/Home/FluidButton.spec.tsx
+++ b/src/components/Consumption/FluidButtons/FluidButton.spec.tsx
@@ -5,11 +5,8 @@ import { GlobalState } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import FluidButton from './FluidButton'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Home/FluidButton.tsx b/src/components/Consumption/FluidButtons/FluidButton.tsx
similarity index 100%
rename from src/components/Home/FluidButton.tsx
rename to src/components/Consumption/FluidButtons/FluidButton.tsx
diff --git a/src/components/Home/FluidButtons.spec.tsx b/src/components/Consumption/FluidButtons/FluidButtons.spec.tsx
similarity index 86%
rename from src/components/Home/FluidButtons.spec.tsx
rename to src/components/Consumption/FluidButtons/FluidButtons.spec.tsx
index a5b28715733fd9769ef5bdcc702b1394e9e035bf..50cf24a07dfafd8dc9f13def060af367ae308451 100644
--- a/src/components/Home/FluidButtons.spec.tsx
+++ b/src/components/Consumption/FluidButtons/FluidButtons.spec.tsx
@@ -3,8 +3,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import FluidButtons from './FluidButtons'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Home/FluidButtons.tsx b/src/components/Consumption/FluidButtons/FluidButtons.tsx
similarity index 100%
rename from src/components/Home/FluidButtons.tsx
rename to src/components/Consumption/FluidButtons/FluidButtons.tsx
diff --git a/src/components/Home/__snapshots__/FluidButton.spec.tsx.snap b/src/components/Consumption/FluidButtons/__snapshots__/FluidButton.spec.tsx.snap
similarity index 100%
rename from src/components/Home/__snapshots__/FluidButton.spec.tsx.snap
rename to src/components/Consumption/FluidButtons/__snapshots__/FluidButton.spec.tsx.snap
diff --git a/src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap b/src/components/Consumption/FluidButtons/__snapshots__/FluidButtons.spec.tsx.snap
similarity index 100%
rename from src/components/Home/__snapshots__/FluidButtons.spec.tsx.snap
rename to src/components/Consumption/FluidButtons/__snapshots__/FluidButtons.spec.tsx.snap
diff --git a/src/components/Home/fluidButtons.scss b/src/components/Consumption/FluidButtons/fluidButtons.scss
similarity index 100%
rename from src/components/Home/fluidButtons.scss
rename to src/components/Consumption/FluidButtons/fluidButtons.scss
diff --git a/src/components/Home/consumptionView.scss b/src/components/Consumption/consumptionView.scss
similarity index 100%
rename from src/components/Home/consumptionView.scss
rename to src/components/Consumption/consumptionView.scss
diff --git a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
index 74d7a4c07b04ee6b295aadcb41bcc3dbe651e73e..55db7ace88c67ceedcbd1dce897870f9c336842a 100644
--- a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
@@ -6,12 +6,9 @@ import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
 import UsageEventService from 'services/usageEvent.service'
-import { baseDataLoad } from '../../../tests/__mocks__/chartData.mock'
-import {
-  createMockEcolyoStore,
-  mockChartState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { baseDataLoad } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore, mockChartState } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import DataloadConsumptionVisualizer from './DataloadConsumptionVisualizer'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx b/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
index 7a332e4dc7239a3730b44684e68e1d2a09823225..2b0e5ab969f196d15e92e0b64c1c90b580806b89 100644
--- a/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
@@ -3,7 +3,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import { Dataload } from 'models'
 import React from 'react'
-import { baseDataLoad } from '../../../tests/__mocks__/chartData.mock'
+import { baseDataLoad } from 'tests/__mocks__/chartData.mock'
 import DataloadNoValue from './DataloadNoValue'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ConsumptionVisualizer/DataloadSection.spec.tsx b/src/components/ConsumptionVisualizer/DataloadSection.spec.tsx
index 7a679918a0a334b933fda136af4bdf8c3e30b573..84ab4e32d036923f598054c2c56538f8a455b9e4 100644
--- a/src/components/ConsumptionVisualizer/DataloadSection.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadSection.spec.tsx
@@ -3,7 +3,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import { Dataload } from 'models'
 import React from 'react'
-import { baseDataLoad } from '../../../tests/__mocks__/chartData.mock'
+import { baseDataLoad } from 'tests/__mocks__/chartData.mock'
 import DataloadSection from './DataloadSection'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ConsumptionVisualizer/DataloadSectionDetail.spec.tsx b/src/components/ConsumptionVisualizer/DataloadSectionDetail.spec.tsx
index 6cd870e43ba8bd1d0b8f9757e1c87f995a640fb0..fd38a9ca2c013560658cea971831c7cd262f5fda 100644
--- a/src/components/ConsumptionVisualizer/DataloadSectionDetail.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadSectionDetail.spec.tsx
@@ -3,7 +3,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import { Dataload } from 'models'
 import React from 'react'
-import { baseDataLoad } from '../../../tests/__mocks__/chartData.mock'
+import { baseDataLoad } from 'tests/__mocks__/chartData.mock'
 import DataloadSectionDetail from './DataloadSectionDetail'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ConsumptionVisualizer/DataloadSectionValue.spec.tsx b/src/components/ConsumptionVisualizer/DataloadSectionValue.spec.tsx
index c2ea56db03c7ba91d4794c5452220063889ea12b..c2032052700da9cc5aac03ac28bdbdf5805a9eb3 100644
--- a/src/components/ConsumptionVisualizer/DataloadSectionValue.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadSectionValue.spec.tsx
@@ -6,7 +6,7 @@ import React from 'react'
 import {
   baseDataLoad,
   baseMultiFluidDataLoad,
-} from '../../../tests/__mocks__/chartData.mock'
+} from 'tests/__mocks__/chartData.mock'
 import DataloadSectionValue from './DataloadSectionValue'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
index 8f6f4755b88cd5bdb1b92ab785d9d0f75ee1b999..6f230b8b3517f80e1f92015982747f9c7ab54114 100644
--- a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
+++ b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
@@ -6,8 +6,8 @@ import { Dataload } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import { baseDataLoad } from '../../../tests/__mocks__/chartData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { baseDataLoad } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import InfoDataConsumptionVisualizer from './InfoDataConsumptionVisualizer'
 import NoDataModal from './NoDataModal'
 
diff --git a/src/components/CustomPopup/CustomPopupModal.spec.tsx b/src/components/CustomPopup/CustomPopupModal.spec.tsx
index 9b7c41f59035b16acb3efa9271af858f175581aa..b16023eb1f40f12b959c0af893e4d5da755881b6 100644
--- a/src/components/CustomPopup/CustomPopupModal.spec.tsx
+++ b/src/components/CustomPopup/CustomPopupModal.spec.tsx
@@ -6,7 +6,7 @@ import {
   mockCustomPopup,
   mockCustomPopupOff,
   mockCustomPopupOutdated,
-} from '../../../tests/__mocks__/customPopup.mock'
+} from 'tests/__mocks__/customPopup.mock'
 import CustomPopupModal from './CustomPopupModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/DateNavigator/DateNavigator.spec.tsx b/src/components/DateNavigator/DateNavigator.spec.tsx
index a624d8907cc4cef3852f69ee1f47abbc24820760..b9dedb9d253cd5310c4aeef0766858df1c0462c9 100644
--- a/src/components/DateNavigator/DateNavigator.spec.tsx
+++ b/src/components/DateNavigator/DateNavigator.spec.tsx
@@ -4,7 +4,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import { DateTime } from 'luxon'
 import React from 'react'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import DateNavigator from './DateNavigator'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Duel/DuelBar.tsx b/src/components/Duel/DuelChart/DuelBar.tsx
similarity index 100%
rename from src/components/Duel/DuelBar.tsx
rename to src/components/Duel/DuelChart/DuelBar.tsx
diff --git a/src/components/Duel/DuelChart.tsx b/src/components/Duel/DuelChart/DuelChart.tsx
similarity index 94%
rename from src/components/Duel/DuelChart.tsx
rename to src/components/Duel/DuelChart/DuelChart.tsx
index 538398c5c04ee9a3860c5dde7902d6d8f9cda30f..993328d4911ba67af59cc6318e38ef791c96301a 100644
--- a/src/components/Duel/DuelChart.tsx
+++ b/src/components/Duel/DuelChart/DuelChart.tsx
@@ -1,4 +1,4 @@
-import DuelBar from 'components/Duel/DuelBar'
+import DuelBar from 'components/Duel/DuelChart/DuelBar'
 import { TimeStep } from 'enums'
 import { Dataload, UserChallenge } from 'models'
 import React, { useEffect, useState } from 'react'
diff --git a/src/components/Duel/duelChart.scss b/src/components/Duel/DuelChart/duelChart.scss
similarity index 100%
rename from src/components/Duel/duelChart.scss
rename to src/components/Duel/DuelChart/duelChart.scss
diff --git a/src/components/Duel/DuelEmptyValueModal.tsx b/src/components/Duel/DuelEmptyValueModal/DuelEmptyValueModal.tsx
similarity index 100%
rename from src/components/Duel/DuelEmptyValueModal.tsx
rename to src/components/Duel/DuelEmptyValueModal/DuelEmptyValueModal.tsx
diff --git a/src/components/Duel/duelEmptyValueModal.scss b/src/components/Duel/DuelEmptyValueModal/duelEmptyValueModal.scss
similarity index 100%
rename from src/components/Duel/duelEmptyValueModal.scss
rename to src/components/Duel/DuelEmptyValueModal/duelEmptyValueModal.scss
diff --git a/src/components/Duel/DuelError.spec.tsx b/src/components/Duel/DuelError/DuelError.spec.tsx
similarity index 91%
rename from src/components/Duel/DuelError.spec.tsx
rename to src/components/Duel/DuelError/DuelError.spec.tsx
index 775b744bb5d77fb36c26277b584dfb34689ac82d..38538b7fcc09408328481152c597f49cf382b118 100644
--- a/src/components/Duel/DuelError.spec.tsx
+++ b/src/components/Duel/DuelError/DuelError.spec.tsx
@@ -1,6 +1,6 @@
-import DuelError from 'components/Duel/DuelError'
 import { shallow } from 'enzyme'
 import React from 'react'
+import DuelError from './DuelError'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Duel/DuelError.tsx b/src/components/Duel/DuelError/DuelError.tsx
similarity index 100%
rename from src/components/Duel/DuelError.tsx
rename to src/components/Duel/DuelError/DuelError.tsx
diff --git a/src/components/Duel/__snapshots__/DuelError.spec.tsx.snap b/src/components/Duel/DuelError/__snapshots__/DuelError.spec.tsx.snap
similarity index 100%
rename from src/components/Duel/__snapshots__/DuelError.spec.tsx.snap
rename to src/components/Duel/DuelError/__snapshots__/DuelError.spec.tsx.snap
diff --git a/src/components/Duel/duelError.scss b/src/components/Duel/DuelError/duelError.scss
similarity index 100%
rename from src/components/Duel/duelError.scss
rename to src/components/Duel/DuelError/duelError.scss
diff --git a/src/components/Duel/DuelOngoing.spec.tsx b/src/components/Duel/DuelOngoing/DuelOngoing.spec.tsx
similarity index 82%
rename from src/components/Duel/DuelOngoing.spec.tsx
rename to src/components/Duel/DuelOngoing/DuelOngoing.spec.tsx
index 2b1af71386dc4d6588f695fa022c1272803232c5..7345593c2b4661b86bf8bbce18e10815d131fbf7 100644
--- a/src/components/Duel/DuelOngoing.spec.tsx
+++ b/src/components/Duel/DuelOngoing/DuelOngoing.spec.tsx
@@ -1,14 +1,14 @@
-import DuelOngoing from 'components/Duel/DuelOngoing'
 import { UserChallengeState } from 'enums'
 import { mount } from 'enzyme'
 import { DateTime } from 'luxon'
 import { UserChallenge } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import DuelResultModal from './DuelResultModal'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import DuelResultModal from '../DuelResultModal/DuelResultModal'
+import DuelOngoing from './DuelOngoing'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -46,8 +46,11 @@ jest.mock('utils/utils', () => {
     }),
   }
 })
-jest.mock('components/Duel/DuelChart', () => 'mock-duelchart')
-jest.mock('components/Duel/DuelResultModal', () => 'mock-duelModal')
+jest.mock('components/Duel/DuelChart/DuelChart', () => 'mock-duelchart')
+jest.mock(
+  'components/Duel/DuelResultModal/DuelResultModal',
+  () => 'mock-duelModal'
+)
 
 describe('DuelOngoing component', () => {
   const store = createMockEcolyoStore()
diff --git a/src/components/Duel/DuelOngoing.tsx b/src/components/Duel/DuelOngoing/DuelOngoing.tsx
similarity index 97%
rename from src/components/Duel/DuelOngoing.tsx
rename to src/components/Duel/DuelOngoing/DuelOngoing.tsx
index b57e15b5443eb55461494eb5f6fefb54e34f8585..a80cc5a2bab25cfc4116a587b15e975073af550d 100644
--- a/src/components/Duel/DuelOngoing.tsx
+++ b/src/components/Duel/DuelOngoing/DuelOngoing.tsx
@@ -2,9 +2,6 @@ import CaptionAverageIcon from 'assets/icons/visu/duel/captionAverage.svg'
 import CaptionConsumptionIcon from 'assets/icons/visu/duel/captionConsumption.svg'
 import CaptionIncomingIcon from 'assets/icons/visu/duel/captionIncoming.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import DuelChart from 'components/Duel/DuelChart'
-import DuelResultModal from 'components/Duel/DuelResultModal'
-import LastDuelModal from 'components/Duel/lastDuelModal'
 import { useChartResize } from 'components/Hooks/useChartResize'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
@@ -26,6 +23,9 @@ import {
 import { toggleChallengeDuelNotification } from 'store/global/global.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { formatNumberValues } from 'utils/utils'
+import DuelChart from '../DuelChart/DuelChart'
+import DuelResultModal from '../DuelResultModal/DuelResultModal'
+import LastDuelModal from '../LastDuelModal/lastDuelModal'
 import './duelOngoing.scss'
 
 interface DuelOngoingProps {
diff --git a/src/components/Duel/duelOngoing.scss b/src/components/Duel/DuelOngoing/duelOngoing.scss
similarity index 100%
rename from src/components/Duel/duelOngoing.scss
rename to src/components/Duel/DuelOngoing/duelOngoing.scss
diff --git a/src/components/Duel/DuelResultModal.spec.tsx b/src/components/Duel/DuelResultModal/DuelResultModal.spec.tsx
similarity index 89%
rename from src/components/Duel/DuelResultModal.spec.tsx
rename to src/components/Duel/DuelResultModal/DuelResultModal.spec.tsx
index c3ba0cf227f157e875be2b5bc9c4526e5139a470..6e68360600735a634d14c3d23966922c7450d88c 100644
--- a/src/components/Duel/DuelResultModal.spec.tsx
+++ b/src/components/Duel/DuelResultModal/DuelResultModal.spec.tsx
@@ -1,8 +1,8 @@
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import DuelResultModal from './DuelResultModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Duel/DuelResultModal.tsx b/src/components/Duel/DuelResultModal/DuelResultModal.tsx
similarity index 100%
rename from src/components/Duel/DuelResultModal.tsx
rename to src/components/Duel/DuelResultModal/DuelResultModal.tsx
diff --git a/src/components/Duel/__snapshots__/DuelResultModal.spec.tsx.snap b/src/components/Duel/DuelResultModal/__snapshots__/DuelResultModal.spec.tsx.snap
similarity index 100%
rename from src/components/Duel/__snapshots__/DuelResultModal.spec.tsx.snap
rename to src/components/Duel/DuelResultModal/__snapshots__/DuelResultModal.spec.tsx.snap
diff --git a/src/components/Duel/duelResultModal.scss b/src/components/Duel/DuelResultModal/duelResultModal.scss
similarity index 100%
rename from src/components/Duel/duelResultModal.scss
rename to src/components/Duel/DuelResultModal/duelResultModal.scss
diff --git a/src/components/Duel/DuelUnlocked.spec.tsx b/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
similarity index 89%
rename from src/components/Duel/DuelUnlocked.spec.tsx
rename to src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
index f2643e3c077cc9140576f5c8caa6f062fc9f1e01..4ef56d04819513f36fe4b984e910b34bcc3c0cbf 100644
--- a/src/components/Duel/DuelUnlocked.spec.tsx
+++ b/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
@@ -1,18 +1,15 @@
 import Button from '@material-ui/core/Button'
 import defaultIcon from 'assets/icons/visu/duel/default.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import DuelUnlocked from 'components/Duel/DuelUnlocked'
 import { FluidType, UserChallengeUpdateFlag } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import { formatNumberValues } from 'utils/utils'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import DuelUnlocked from './DuelUnlocked'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Duel/DuelUnlocked.tsx b/src/components/Duel/DuelUnlocked/DuelUnlocked.tsx
similarity index 100%
rename from src/components/Duel/DuelUnlocked.tsx
rename to src/components/Duel/DuelUnlocked/DuelUnlocked.tsx
diff --git a/src/components/Duel/duelUnlocked.scss b/src/components/Duel/DuelUnlocked/duelUnlocked.scss
similarity index 100%
rename from src/components/Duel/duelUnlocked.scss
rename to src/components/Duel/DuelUnlocked/duelUnlocked.scss
diff --git a/src/components/Duel/DuelView.spec.tsx b/src/components/Duel/DuelView.spec.tsx
index 990383473a5d453c97089b1f58d74fd927bf0801..f590ca9f362f8ed65754fafe386665d4bf1cb69a 100644
--- a/src/components/Duel/DuelView.spec.tsx
+++ b/src/components/Duel/DuelView.spec.tsx
@@ -3,15 +3,12 @@ import { UserChallengeState, UserDuelState } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { challengeStateData } from '../../../tests/__mocks__/challengeStateData.mock'
-import {
-  createMockEcolyoStore,
-  mockChartState,
-} from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import DuelError from './DuelError'
-import DuelOngoing from './DuelOngoing'
-import DuelUnlocked from './DuelUnlocked'
+import { challengeStateData } from 'tests/__mocks__/challengeStateData.mock'
+import { createMockEcolyoStore, mockChartState } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import DuelError from './DuelError/DuelError'
+import DuelOngoing from './DuelOngoing/DuelOngoing'
+import DuelUnlocked from './DuelUnlocked/DuelUnlocked'
 
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
diff --git a/src/components/Duel/DuelView.tsx b/src/components/Duel/DuelView.tsx
index bf19d59d176b1b7ef15962bc6d38812a7f8e0333..71531bc47128b692d4475ac92511c551202851c4 100644
--- a/src/components/Duel/DuelView.tsx
+++ b/src/components/Duel/DuelView.tsx
@@ -1,6 +1,4 @@
 import Content from 'components/Content/Content'
-import DuelError from 'components/Duel/DuelError'
-import DuelUnlocked from 'components/Duel/DuelUnlocked'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { UserChallengeState, UserDuelState } from 'enums'
@@ -8,8 +6,10 @@ import { UserChallenge } from 'models'
 import React, { useState } from 'react'
 import { useLocation, useNavigate } from 'react-router-dom'
 import { useAppSelector } from 'store/hooks'
-import DuelEmptyValueModal from './DuelEmptyValueModal'
-import DuelOngoing from './DuelOngoing'
+import DuelEmptyValueModal from './DuelEmptyValueModal/DuelEmptyValueModal'
+import DuelError from './DuelError/DuelError'
+import DuelOngoing from './DuelOngoing/DuelOngoing'
+import DuelUnlocked from './DuelUnlocked/DuelUnlocked'
 
 const DuelView = () => {
   const navigate = useNavigate()
diff --git a/src/components/Duel/__snapshots__/lastDuelModal.spec.tsx.snap b/src/components/Duel/LastDuelModal/__snapshots__/lastDuelModal.spec.tsx.snap
similarity index 100%
rename from src/components/Duel/__snapshots__/lastDuelModal.spec.tsx.snap
rename to src/components/Duel/LastDuelModal/__snapshots__/lastDuelModal.spec.tsx.snap
diff --git a/src/components/Duel/lastDuelModal.scss b/src/components/Duel/LastDuelModal/lastDuelModal.scss
similarity index 100%
rename from src/components/Duel/lastDuelModal.scss
rename to src/components/Duel/LastDuelModal/lastDuelModal.scss
diff --git a/src/components/Duel/lastDuelModal.spec.tsx b/src/components/Duel/LastDuelModal/lastDuelModal.spec.tsx
similarity index 87%
rename from src/components/Duel/lastDuelModal.spec.tsx
rename to src/components/Duel/LastDuelModal/lastDuelModal.spec.tsx
index e907ad576034d399541f3f4ecb30ab371758947c..f1f88b60870a349985be0ed6050fc74979b81878 100644
--- a/src/components/Duel/lastDuelModal.spec.tsx
+++ b/src/components/Duel/LastDuelModal/lastDuelModal.spec.tsx
@@ -1,7 +1,7 @@
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import LastDuelModal from './lastDuelModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Duel/lastDuelModal.tsx b/src/components/Duel/LastDuelModal/lastDuelModal.tsx
similarity index 100%
rename from src/components/Duel/lastDuelModal.tsx
rename to src/components/Duel/LastDuelModal/lastDuelModal.tsx
diff --git a/src/components/Ecogesture/EcogestureCard.spec.tsx b/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
similarity index 86%
rename from src/components/Ecogesture/EcogestureCard.spec.tsx
rename to src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
index b5e1b476f7beb65d6a79b5e535c41d013c070a1b..074a0c972bbe69f41d6499ef077043e68843efc8 100644
--- a/src/components/Ecogesture/EcogestureCard.spec.tsx
+++ b/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
@@ -1,11 +1,11 @@
 /* eslint-disable react/display-name */
-import EcogestureCard from 'components/Ecogesture/EcogestureCard'
+import EcogestureCard from 'components/Ecogesture/EcogestureCard/EcogestureCard'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { BrowserRouter } from 'react-router-dom'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Ecogesture/EcogestureCard.tsx b/src/components/Ecogesture/EcogestureCard/EcogestureCard.tsx
similarity index 95%
rename from src/components/Ecogesture/EcogestureCard.tsx
rename to src/components/Ecogesture/EcogestureCard/EcogestureCard.tsx
index f2f492132f5c39705e4991fbfab82c1adf74a040..749ca432d384632b9066c9c5305d06340a05dffd 100644
--- a/src/components/Ecogesture/EcogestureCard.tsx
+++ b/src/components/Ecogesture/EcogestureCard/EcogestureCard.tsx
@@ -6,7 +6,7 @@ import { Ecogesture } from 'models'
 import React, { useEffect, useState } from 'react'
 import { Link as RouterLink } from 'react-router-dom'
 import { importIconById } from 'utils/utils'
-import EfficiencyRating from './EfficiencyRating'
+import EfficiencyRating from '../EfficiencyRating/EfficiencyRating'
 import './ecogestureCard.scss'
 
 interface EcogestureCardProps {
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureCard.spec.tsx.snap b/src/components/Ecogesture/EcogestureCard/__snapshots__/EcogestureCard.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EcogestureCard.spec.tsx.snap
rename to src/components/Ecogesture/EcogestureCard/__snapshots__/EcogestureCard.spec.tsx.snap
diff --git a/src/components/Ecogesture/ecogestureCard.scss b/src/components/Ecogesture/EcogestureCard/ecogestureCard.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureCard.scss
rename to src/components/Ecogesture/EcogestureCard/ecogestureCard.scss
diff --git a/src/components/Ecogesture/EcogestureEmptyList.spec.tsx b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
similarity index 100%
rename from src/components/Ecogesture/EcogestureEmptyList.spec.tsx
rename to src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
diff --git a/src/components/Ecogesture/EcogestureEmptyList.tsx b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.tsx
similarity index 100%
rename from src/components/Ecogesture/EcogestureEmptyList.tsx
rename to src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.tsx
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureEmptyList.spec.tsx.snap b/src/components/Ecogesture/EcogestureEmptyList/__snapshots__/EcogestureEmptyList.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EcogestureEmptyList.spec.tsx.snap
rename to src/components/Ecogesture/EcogestureEmptyList/__snapshots__/EcogestureEmptyList.spec.tsx.snap
diff --git a/src/components/Ecogesture/ecogestureEmptyList.scss b/src/components/Ecogesture/EcogestureEmptyList/ecogestureEmptyList.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureEmptyList.scss
rename to src/components/Ecogesture/EcogestureEmptyList/ecogestureEmptyList.scss
diff --git a/src/components/Ecogesture/EcogestureInitModal.spec.tsx b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
similarity index 100%
rename from src/components/Ecogesture/EcogestureInitModal.spec.tsx
rename to src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
diff --git a/src/components/Ecogesture/EcogestureInitModal.tsx b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.tsx
similarity index 99%
rename from src/components/Ecogesture/EcogestureInitModal.tsx
rename to src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.tsx
index e5f7959a7340acd22902399e38e16ddbf8353b7d..7c92ca992e8e115231ffe6df1e18aec7a1b732d7 100644
--- a/src/components/Ecogesture/EcogestureInitModal.tsx
+++ b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.tsx
@@ -5,11 +5,13 @@ import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import Icon from 'cozy-ui/transpiled/react/Icon'
 import React from 'react'
 import './ecogestureInitModal.scss'
+
 interface EcogestureInitModalProps {
   open: boolean
   handleCloseClick: () => void
   handleLaunchForm: () => void
 }
+
 const EcogestureInitModal = ({
   open,
   handleCloseClick,
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureInitModal.spec.tsx.snap b/src/components/Ecogesture/EcogestureInitModal/__snapshots__/EcogestureInitModal.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EcogestureInitModal.spec.tsx.snap
rename to src/components/Ecogesture/EcogestureInitModal/__snapshots__/EcogestureInitModal.spec.tsx.snap
diff --git a/src/components/Ecogesture/ecogestureInitModal.scss b/src/components/Ecogesture/EcogestureInitModal/ecogestureInitModal.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureInitModal.scss
rename to src/components/Ecogesture/EcogestureInitModal/ecogestureInitModal.scss
diff --git a/src/components/Ecogesture/EcogestureList.spec.tsx b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
similarity index 85%
rename from src/components/Ecogesture/EcogestureList.spec.tsx
rename to src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
index 7bf20362ed04d7555a2db6c8c394a8a628d30767..cc90f64a6afd4fbb5a5e57a6d5714bde7539f211 100644
--- a/src/components/Ecogesture/EcogestureList.spec.tsx
+++ b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
@@ -1,21 +1,24 @@
 import { Button, MenuItem } from '@material-ui/core'
-import EcogestureList from 'components/Ecogesture/EcogestureList'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
 import * as storeHooks from 'store/hooks'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import EcogestureList from './EcogestureList'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
     t: (str: string) => str,
   })),
 }))
-jest.mock('components/Ecogesture/EcogestureCard', () => 'mock-ecogesturecard')
+jest.mock(
+  'components/Ecogesture/EcogestureCard/EcogestureCard',
+  () => 'mock-ecogesturecard'
+)
 
 const mockHandleReinit = jest.fn()
 const updateEcogestureFilter = jest.fn()
@@ -23,7 +26,11 @@ const mockAppDispatch = jest.spyOn(storeHooks, 'useAppDispatch')
 mockAppDispatch.mockImplementation(() => updateEcogestureFilter)
 
 const store = createMockEcolyoStore()
+
 describe('EcogesturesList component', () => {
+  beforeAll(() => {
+    mockAppDispatch.mockClear()
+  })
   it('should be rendered correctly', async () => {
     const wrapper = mount(
       <Provider store={store}>
diff --git a/src/components/Ecogesture/EcogestureList.tsx b/src/components/Ecogesture/EcogestureList/EcogestureList.tsx
similarity index 99%
rename from src/components/Ecogesture/EcogestureList.tsx
rename to src/components/Ecogesture/EcogestureList/EcogestureList.tsx
index 9d651785ba0c9758f44d48ac9955d5b656cf8e9f..5bf7a75588f52d3ca213f78d8e37d16f007eb74a 100644
--- a/src/components/Ecogesture/EcogestureList.tsx
+++ b/src/components/Ecogesture/EcogestureList/EcogestureList.tsx
@@ -3,7 +3,7 @@ import Button from '@material-ui/core/Button'
 import CheckIcon from 'assets/icons/ico/check.svg'
 import SortIcon from 'assets/icons/ico/sort.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import EcogestureCard from 'components/Ecogesture/EcogestureCard'
+import EcogestureCard from 'components/Ecogesture/EcogestureCard/EcogestureCard'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { Usage } from 'enums'
 import { Ecogesture } from 'models'
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureList.spec.tsx.snap b/src/components/Ecogesture/EcogestureList/__snapshots__/EcogestureList.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EcogestureList.spec.tsx.snap
rename to src/components/Ecogesture/EcogestureList/__snapshots__/EcogestureList.spec.tsx.snap
diff --git a/src/components/Ecogesture/ecogestureList.scss b/src/components/Ecogesture/EcogestureList/ecogestureList.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureList.scss
rename to src/components/Ecogesture/EcogestureList/ecogestureList.scss
diff --git a/src/components/Ecogesture/EcogestureModal.spec.tsx b/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
similarity index 80%
rename from src/components/Ecogesture/EcogestureModal.spec.tsx
rename to src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
index 9aac1a7e11ef576d21afa597bd33fded8c19c2ab..f877e968e697fe21158d638e430d7a69e27a442b 100644
--- a/src/components/Ecogesture/EcogestureModal.spec.tsx
+++ b/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
@@ -1,10 +1,10 @@
-import EcogestureModal from 'components/Ecogesture/EcogestureModal'
+import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Ecogesture/EcogestureModal.tsx b/src/components/Ecogesture/EcogestureModal/EcogestureModal.tsx
similarity index 98%
rename from src/components/Ecogesture/EcogestureModal.tsx
rename to src/components/Ecogesture/EcogestureModal/EcogestureModal.tsx
index 52ca84070680fb4419d3c089598ef0cac35e6847..b82aed9a11ae6235efb4c08d13e37304d442dadb 100644
--- a/src/components/Ecogesture/EcogestureModal.tsx
+++ b/src/components/Ecogesture/EcogestureModal/EcogestureModal.tsx
@@ -13,7 +13,7 @@ import React, { useEffect, useState } from 'react'
 import { useAppSelector } from 'store/hooks'
 import { getPicto } from 'utils/picto'
 import { importIconById } from 'utils/utils'
-import EfficiencyRating from './EfficiencyRating'
+import EfficiencyRating from '../EfficiencyRating/EfficiencyRating'
 import './ecogestureModal.scss'
 
 interface EcogestureModalProps {
diff --git a/src/components/Ecogesture/ecogestureModal.scss b/src/components/Ecogesture/EcogestureModal/ecogestureModal.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureModal.scss
rename to src/components/Ecogesture/EcogestureModal/ecogestureModal.scss
diff --git a/src/components/Ecogesture/EcogestureReinitModal.spec.tsx b/src/components/Ecogesture/EcogestureReinitModal/EcogestureReinitModal.spec.tsx
similarity index 100%
rename from src/components/Ecogesture/EcogestureReinitModal.spec.tsx
rename to src/components/Ecogesture/EcogestureReinitModal/EcogestureReinitModal.spec.tsx
diff --git a/src/components/Ecogesture/EcogestureReinitModal.tsx b/src/components/Ecogesture/EcogestureReinitModal/EcogestureReinitModal.tsx
similarity index 99%
rename from src/components/Ecogesture/EcogestureReinitModal.tsx
rename to src/components/Ecogesture/EcogestureReinitModal/EcogestureReinitModal.tsx
index 25f3ea63ebfc1ea31f7a2600331536c168836e60..f4487d8fa534abbe6e93b054deff59a95c16148e 100644
--- a/src/components/Ecogesture/EcogestureReinitModal.tsx
+++ b/src/components/Ecogesture/EcogestureReinitModal/EcogestureReinitModal.tsx
@@ -6,11 +6,13 @@ import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import Icon from 'cozy-ui/transpiled/react/Icon'
 import React from 'react'
 import './ecogestureReinitModal.scss'
+
 interface EcogestureReinitModalProps {
   open: boolean
   handleCloseClick: () => void
   handleLaunchReinit: () => void
 }
+
 const EcogestureReinitModal = ({
   open,
   handleCloseClick,
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureReinitModal.spec.tsx.snap b/src/components/Ecogesture/EcogestureReinitModal/__snapshots__/EcogestureReinitModal.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EcogestureReinitModal.spec.tsx.snap
rename to src/components/Ecogesture/EcogestureReinitModal/__snapshots__/EcogestureReinitModal.spec.tsx.snap
diff --git a/src/components/Ecogesture/ecogestureReinitModal.scss b/src/components/Ecogesture/EcogestureReinitModal/ecogestureReinitModal.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureReinitModal.scss
rename to src/components/Ecogesture/EcogestureReinitModal/ecogestureReinitModal.scss
diff --git a/src/components/Ecogesture/EcogestureView.spec.tsx b/src/components/Ecogesture/EcogestureTabsView.spec.tsx
similarity index 81%
rename from src/components/Ecogesture/EcogestureView.spec.tsx
rename to src/components/Ecogesture/EcogestureTabsView.spec.tsx
index 4f0a0bf6998593628d9f72715cfa799ce5b75a35..30c9db5e4bd72c8911830ac219966bae67214892 100644
--- a/src/components/Ecogesture/EcogestureView.spec.tsx
+++ b/src/components/Ecogesture/EcogestureTabsView.spec.tsx
@@ -1,16 +1,16 @@
 import { IconButton, Tab } from '@material-ui/core'
-import EcogestureView from 'components/Ecogesture/EcogestureView'
+import EcogestureTabsView from 'components/Ecogesture/EcogestureTabsView'
 import { Season } from 'enums'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as profileActions from 'store/profile/profile.actions'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import EcogestureEmptyList from './EcogestureEmptyList'
-import EcogestureInitModal from './EcogestureInitModal'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import EcogestureEmptyList from './EcogestureEmptyList/EcogestureEmptyList'
+import EcogestureInitModal from './EcogestureInitModal/EcogestureInitModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -42,7 +42,10 @@ jest.mock('services/profile.service', () => {
 
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
-jest.mock('components/Ecogesture/EcogestureList', () => 'mock-ecogesturelist')
+jest.mock(
+  'components/Ecogesture/EcogestureList/EcogestureList',
+  () => 'mock-ecogesturelist'
+)
 jest.mock('components/Content/Content', () => 'mock-content')
 const mockGetSeason = jest.fn()
 jest.mock('utils/utils', () => {
@@ -79,7 +82,7 @@ describe('EcogestureView component', () => {
   it('should be rendered correctly', async () => {
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureView />
+        <EcogestureTabsView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -93,7 +96,7 @@ describe('EcogestureView component', () => {
 
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureView />
+        <EcogestureTabsView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -110,7 +113,7 @@ describe('EcogestureView component', () => {
   it('should render empty list', async () => {
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureView />
+        <EcogestureTabsView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -121,7 +124,7 @@ describe('EcogestureView component', () => {
   it('should change tab', async () => {
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureView />
+        <EcogestureTabsView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
diff --git a/src/components/Ecogesture/EcogestureView.tsx b/src/components/Ecogesture/EcogestureTabsView.tsx
similarity index 96%
rename from src/components/Ecogesture/EcogestureView.tsx
rename to src/components/Ecogesture/EcogestureTabsView.tsx
index 1156841289b79d81898097c9ace630018e673619..7f2581807ab870bba8c3c5a660f2998478653e55 100644
--- a/src/components/Ecogesture/EcogestureView.tsx
+++ b/src/components/Ecogesture/EcogestureTabsView.tsx
@@ -1,7 +1,6 @@
 import { Tab, Tabs } from '@material-ui/core'
 import classNames from 'classnames'
 import Content from 'components/Content/Content'
-import EcogestureList from 'components/Ecogesture/EcogestureList'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import Loader from 'components/Loader/Loader'
@@ -14,10 +13,11 @@ import { useLocation, useNavigate } from 'react-router-dom'
 import EcogestureService from 'services/ecogesture.service'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { updateProfile } from 'store/profile/profile.actions'
-import EcogestureEmptyList from './EcogestureEmptyList'
-import EcogestureInitModal from './EcogestureInitModal'
-import EcogestureReinitModal from './EcogestureReinitModal'
-import './ecogestureView.scss'
+import EcogestureEmptyList from './EcogestureEmptyList/EcogestureEmptyList'
+import EcogestureInitModal from './EcogestureInitModal/EcogestureInitModal'
+import EcogestureList from './EcogestureList/EcogestureList'
+import EcogestureReinitModal from './EcogestureReinitModal/EcogestureReinitModal'
+import './ecogestureTabsView.scss'
 
 interface TabPanelProps {
   children: React.ReactNode
@@ -37,7 +37,7 @@ const TabPanel = ({ children, tab, value }: TabPanelProps) => {
   )
 }
 
-const EcogestureView = () => {
+const EcogestureTabsView = () => {
   const { t } = useI18n()
   const client = useClient()
   const tab = new URLSearchParams(useLocation().search).get('tab')
@@ -313,4 +313,4 @@ const EcogestureView = () => {
   )
 }
 
-export default EcogestureView
+export default EcogestureTabsView
diff --git a/src/components/Ecogesture/EfficiencyRating.spec.tsx b/src/components/Ecogesture/EfficiencyRating/EfficiencyRating.spec.tsx
similarity index 95%
rename from src/components/Ecogesture/EfficiencyRating.spec.tsx
rename to src/components/Ecogesture/EfficiencyRating/EfficiencyRating.spec.tsx
index f4e4d5238b1e3e6d916cc6666be2b5d138aaa148..35690f5f2acb565fc1d1bcc112a3a32b6db5efa5 100644
--- a/src/components/Ecogesture/EfficiencyRating.spec.tsx
+++ b/src/components/Ecogesture/EfficiencyRating/EfficiencyRating.spec.tsx
@@ -1,4 +1,4 @@
-import EfficiencyRating from 'components/Ecogesture/EfficiencyRating'
+import EfficiencyRating from 'components/Ecogesture/EfficiencyRating/EfficiencyRating'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
diff --git a/src/components/Ecogesture/EfficiencyRating.tsx b/src/components/Ecogesture/EfficiencyRating/EfficiencyRating.tsx
similarity index 100%
rename from src/components/Ecogesture/EfficiencyRating.tsx
rename to src/components/Ecogesture/EfficiencyRating/EfficiencyRating.tsx
diff --git a/src/components/Ecogesture/__snapshots__/EfficiencyRating.spec.tsx.snap b/src/components/Ecogesture/EfficiencyRating/__snapshots__/EfficiencyRating.spec.tsx.snap
similarity index 100%
rename from src/components/Ecogesture/__snapshots__/EfficiencyRating.spec.tsx.snap
rename to src/components/Ecogesture/EfficiencyRating/__snapshots__/EfficiencyRating.spec.tsx.snap
diff --git a/src/components/Ecogesture/SingleEcogesture.spec.tsx b/src/components/Ecogesture/SingleEcogestureView.spec.tsx
similarity index 87%
rename from src/components/Ecogesture/SingleEcogesture.spec.tsx
rename to src/components/Ecogesture/SingleEcogestureView.spec.tsx
index 6ecdc3c04a367a44b065960ead2f4d867cf8d4a0..09315002eed7e99c1a374ef13de84dabcdd96f8e 100644
--- a/src/components/Ecogesture/SingleEcogesture.spec.tsx
+++ b/src/components/Ecogesture/SingleEcogestureView.spec.tsx
@@ -1,12 +1,12 @@
 /* eslint-disable react/display-name */
-import SingleEcogesture from 'components/Ecogesture/SingleEcogesture'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import SingleEcogestureView from './SingleEcogestureView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -31,9 +31,10 @@ jest.mock('utils/utils', () => {
   }
 })
 
-jest.mock('components/Ecogesture/EfficiencyRating', () => () => (
-  <div id="EfficiencyRating" />
-))
+jest.mock(
+  'components/Ecogesture/EfficiencyRating/EfficiencyRating',
+  () => () => <div id="EfficiencyRating" />
+)
 jest.mock('components/Header/Header', () => () => <div id="Header" />)
 jest.mock('components/Header/CozyBar', () => () => <div id="CozyBar" />)
 jest.mock('components/Loader/Loader', () => () => <div id="spinner" />)
@@ -59,7 +60,7 @@ describe('SingleEcogesture component', () => {
     mockGetEcogesturesByIds.mockResolvedValue([mockedEcogesturesData[0]])
     const wrapper = mount(
       <Provider store={store}>
-        <SingleEcogesture />
+        <SingleEcogestureView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -73,7 +74,7 @@ describe('SingleEcogesture component', () => {
     mockUpdateEcogesture.mockResolvedValueOnce(updatedEcogesture)
     const wrapper = mount(
       <Provider store={store}>
-        <SingleEcogesture />
+        <SingleEcogestureView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -89,7 +90,7 @@ describe('SingleEcogesture component', () => {
 
     const wrapper = mount(
       <Provider store={store}>
-        <SingleEcogesture />
+        <SingleEcogestureView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -103,7 +104,7 @@ describe('SingleEcogesture component', () => {
 
     const wrapper = mount(
       <Provider store={store}>
-        <SingleEcogesture />
+        <SingleEcogestureView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
diff --git a/src/components/Ecogesture/SingleEcogesture.tsx b/src/components/Ecogesture/SingleEcogestureView.tsx
similarity index 97%
rename from src/components/Ecogesture/SingleEcogesture.tsx
rename to src/components/Ecogesture/SingleEcogestureView.tsx
index c46cdfe36bd58f44fd7a8d922168cb2530646ae1..c0c18d95fa81f7a71794b89accd76cd0ffc1994a 100644
--- a/src/components/Ecogesture/SingleEcogesture.tsx
+++ b/src/components/Ecogesture/SingleEcogestureView.tsx
@@ -21,8 +21,8 @@ import { Location, useLocation, useParams } from 'react-router-dom'
 import EcogestureService from 'services/ecogesture.service'
 import { useAppSelector } from 'store/hooks'
 import { importIconById } from 'utils/utils'
-import EfficiencyRating from './EfficiencyRating'
-import './singleEcogesture.scss'
+import EfficiencyRating from './EfficiencyRating/EfficiencyRating'
+import './singleEcogestureView.scss'
 
 interface EcogestureLocation extends Location {
   state: {
@@ -30,7 +30,7 @@ interface EcogestureLocation extends Location {
   }
 }
 
-const SingleEcogesture = () => {
+const SingleEcogestureView = () => {
   const { t } = useI18n()
   const client = useClient()
   const location: EcogestureLocation = useLocation()
@@ -223,4 +223,4 @@ const SingleEcogesture = () => {
   )
 }
 
-export default SingleEcogesture
+export default SingleEcogestureView
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureView.spec.tsx.snap b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
similarity index 99%
rename from src/components/Ecogesture/__snapshots__/EcogestureView.spec.tsx.snap
rename to src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
index bb83aa4a390ae2ed134eb0a35dc2c0e95cfc1346..f6432521d2f775a377e0f8cb56c35b1371064a41 100644
--- a/src/components/Ecogesture/__snapshots__/EcogestureView.spec.tsx.snap
+++ b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
@@ -13,7 +13,7 @@ exports[`EcogestureView component should be rendered correctly 1`] = `
     }
   }
 >
-  <EcogestureView>
+  <EcogestureTabsView>
     <mock-cozybar
       titleKey="common.title_ecogestures"
     />
@@ -2375,6 +2375,6 @@ exports[`EcogestureView component should be rendered correctly 1`] = `
         </WithStyles(ForwardRef(Dialog))>
       </EcogestureInitModal>
     </mock-content>
-  </EcogestureView>
+  </EcogestureTabsView>
 </Provider>
 `;
diff --git a/src/components/Ecogesture/__snapshots__/SingleEcogesture.spec.tsx.snap b/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
similarity index 99%
rename from src/components/Ecogesture/__snapshots__/SingleEcogesture.spec.tsx.snap
rename to src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
index f8389c76650b7ea698c0cecba84ce9db7d413844..73666bc8973e16c2083d7ba6ca91b7a711d77030 100644
--- a/src/components/Ecogesture/__snapshots__/SingleEcogesture.spec.tsx.snap
+++ b/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
@@ -13,7 +13,7 @@ exports[`SingleEcogesture component should be rendered correctly 1`] = `
     }
   }
 >
-  <SingleEcogesture>
+  <SingleEcogestureView>
     <Component
       displayBackArrow={true}
       titleKey="common.title_ecogesture"
@@ -362,6 +362,6 @@ exports[`SingleEcogesture component should be rendered correctly 1`] = `
         </div>
       </div>
     </Component>
-  </SingleEcogesture>
+  </SingleEcogestureView>
 </Provider>
 `;
diff --git a/src/components/Ecogesture/ecogestureView.scss b/src/components/Ecogesture/ecogestureTabsView.scss
similarity index 100%
rename from src/components/Ecogesture/ecogestureView.scss
rename to src/components/Ecogesture/ecogestureTabsView.scss
diff --git a/src/components/Ecogesture/singleEcogesture.scss b/src/components/Ecogesture/singleEcogestureView.scss
similarity index 100%
rename from src/components/Ecogesture/singleEcogesture.scss
rename to src/components/Ecogesture/singleEcogestureView.scss
diff --git a/src/components/EcogestureForm/EcogestureFormEquipment.spec.tsx b/src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.spec.tsx
similarity index 89%
rename from src/components/EcogestureForm/EcogestureFormEquipment.spec.tsx
rename to src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.spec.tsx
index b2c0171d6aa560df44c69741c3a211020a7b50f4..b586ef0805304710c0393bd553f89071845fa1b8 100644
--- a/src/components/EcogestureForm/EcogestureFormEquipment.spec.tsx
+++ b/src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.spec.tsx
@@ -3,9 +3,9 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { mockProfileEcogesture } from '../../../tests/__mocks__/profileEcogesture.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockProfileEcogesture } from 'tests/__mocks__/profileEcogesture.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EcogestureFormEquipment from './EcogestureFormEquipment'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -22,7 +22,7 @@ jest.mock('react-router-dom', () => ({
     push: mockHistoryPush,
   }),
 }))
-jest.mock('./EquipmentIcon', () => 'mock-equipment-icon')
+jest.mock('../EquipmentIcon/EquipmentIcon', () => 'mock-equipment-icon')
 
 describe('EcogestureFormEquipment component', () => {
   const store = createMockEcolyoStore()
diff --git a/src/components/EcogestureForm/EcogestureFormEquipment.tsx b/src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.tsx
similarity index 96%
rename from src/components/EcogestureForm/EcogestureFormEquipment.tsx
rename to src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.tsx
index 1c4ffec4c8b08f216afe9467a0d2df93acac43f3..36f16f6e334001124089f772a6e6bde0d4132799 100644
--- a/src/components/EcogestureForm/EcogestureFormEquipment.tsx
+++ b/src/components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment.tsx
@@ -1,11 +1,11 @@
-import FormNavigation from 'components/FormGlobal/FormNavigation'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { EcogestureStepForm, EquipmentType, ProfileTypeStepForm } from 'enums'
 import { ProfileEcogesture, ProfileType } from 'models'
 import React, { useCallback, useState } from 'react'
 import { useAppSelector } from 'store/hooks'
-import EquipmentIcon from './EquipmentIcon'
+import EquipmentIcon from '../EquipmentIcon/EquipmentIcon'
 import './ecogestureFormEquipment.scss'
 
 interface EcogestureFormEquipmentProps {
diff --git a/src/components/EcogestureForm/__snapshots__/EcogestureFormEquipment.spec.tsx.snap b/src/components/EcogestureForm/EcogestureFormEquipment/__snapshots__/EcogestureFormEquipment.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureForm/__snapshots__/EcogestureFormEquipment.spec.tsx.snap
rename to src/components/EcogestureForm/EcogestureFormEquipment/__snapshots__/EcogestureFormEquipment.spec.tsx.snap
diff --git a/src/components/EcogestureForm/ecogestureFormEquipment.scss b/src/components/EcogestureForm/EcogestureFormEquipment/ecogestureFormEquipment.scss
similarity index 100%
rename from src/components/EcogestureForm/ecogestureFormEquipment.scss
rename to src/components/EcogestureForm/EcogestureFormEquipment/ecogestureFormEquipment.scss
diff --git a/src/components/EcogestureForm/EcogestureFormSingleChoice.spec.tsx b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
similarity index 93%
rename from src/components/EcogestureForm/EcogestureFormSingleChoice.spec.tsx
rename to src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
index e10245f146429f611123ff0ea8115576e33c58a4..502f657b4dfe5fbede39d01be563da923e731765 100644
--- a/src/components/EcogestureForm/EcogestureFormSingleChoice.spec.tsx
+++ b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
@@ -6,9 +6,9 @@ import { Provider } from 'react-redux'
 import {
   mockEcogestureAnswer,
   mockProfileEcogesture,
-} from '../../../tests/__mocks__/profileEcogesture.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+} from 'tests/__mocks__/profileEcogesture.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EcogestureFormSingleChoice from './EcogestureFormSingleChoice'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -23,7 +23,7 @@ jest.mock('react-router-dom', () => ({
 }))
 
 jest.mock(
-  'components/EcogestureForm/EcogestureLaunchFormModal',
+  'components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal',
   () => 'mock-ecogesturelaunchmodal'
 )
 
diff --git a/src/components/EcogestureForm/EcogestureFormSingleChoice.tsx b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.tsx
similarity index 97%
rename from src/components/EcogestureForm/EcogestureFormSingleChoice.tsx
rename to src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.tsx
index 0e62adf372780486ca4e974ea4b76efe08e0a033..952ce05f971cb0bbacb89a975bef625beac4254d 100644
--- a/src/components/EcogestureForm/EcogestureFormSingleChoice.tsx
+++ b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.tsx
@@ -1,5 +1,5 @@
 import classNames from 'classnames'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { EcogestureStepForm } from 'enums'
diff --git a/src/components/EcogestureForm/__snapshots__/EcogestureFormSingleChoice.spec.tsx.snap b/src/components/EcogestureForm/EcogestureFormSingleChoice/__snapshots__/EcogestureFormSingleChoice.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureForm/__snapshots__/EcogestureFormSingleChoice.spec.tsx.snap
rename to src/components/EcogestureForm/EcogestureFormSingleChoice/__snapshots__/EcogestureFormSingleChoice.spec.tsx.snap
diff --git a/src/components/EcogestureForm/ecogestureFormSingleChoice.scss b/src/components/EcogestureForm/EcogestureFormSingleChoice/ecogestureFormSingleChoice.scss
similarity index 100%
rename from src/components/EcogestureForm/ecogestureFormSingleChoice.scss
rename to src/components/EcogestureForm/EcogestureFormSingleChoice/ecogestureFormSingleChoice.scss
diff --git a/src/components/EcogestureForm/EcogestureFormView.spec.tsx b/src/components/EcogestureForm/EcogestureFormView.spec.tsx
index ad16c165e06dfac90c5cecc50a3088b51ab21f96..717d72343eb4b4e3cf295faecef64af16e6567e3 100644
--- a/src/components/EcogestureForm/EcogestureFormView.spec.tsx
+++ b/src/components/EcogestureForm/EcogestureFormView.spec.tsx
@@ -5,9 +5,9 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import { mockProfileEcogesture } from '../../../tests/__mocks__/profileEcogesture.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockProfileEcogesture } from 'tests/__mocks__/profileEcogesture.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EcogestureFormView from './EcogestureFormView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -19,7 +19,7 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => ({
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
 jest.mock(
-  'components/EcogestureForm/EcogestureLaunchFormModal',
+  'components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal',
   () => 'mock-ecogesturelaunchmodal'
 )
 const mockAppDispatch = jest.spyOn(storeHooks, 'useAppDispatch')
diff --git a/src/components/EcogestureForm/EcogestureFormView.tsx b/src/components/EcogestureForm/EcogestureFormView.tsx
index c95e0c33d09e25be88abd02db207c1a66a1c3402..9087017946fd8d56cb857f3617f6fc7d0cc3ef1e 100644
--- a/src/components/EcogestureForm/EcogestureFormView.tsx
+++ b/src/components/EcogestureForm/EcogestureFormView.tsx
@@ -1,5 +1,4 @@
 import Content from 'components/Content/Content'
-import EcogestureLaunchFormModal from 'components/EcogestureForm/EcogestureLaunchFormModal'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import Loader from 'components/Loader/Loader'
@@ -12,8 +11,9 @@ import ProfileEcogestureFormService from 'services/profileEcogestureForm.service
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { updateProfile } from 'store/profile/profile.actions'
 import { newProfileEcogestureEntry } from 'store/profileEcogesture/profileEcogesture.actions'
-import EcogestureFormEquipment from './EcogestureFormEquipment'
-import EcogestureFormSingleChoice from './EcogestureFormSingleChoice'
+import EcogestureFormEquipment from './EcogestureFormEquipment/EcogestureFormEquipment'
+import EcogestureFormSingleChoice from './EcogestureFormSingleChoice/EcogestureFormSingleChoice'
+import EcogestureLaunchFormModal from './EcogestureLaunchFormModal/EcogestureLaunchFormModal'
 
 const EcogestureFormView = () => {
   const navigate = useNavigate()
diff --git a/src/components/EcogestureForm/EcogestureLaunchFormModal.spec.tsx b/src/components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal.spec.tsx
similarity index 100%
rename from src/components/EcogestureForm/EcogestureLaunchFormModal.spec.tsx
rename to src/components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal.spec.tsx
diff --git a/src/components/EcogestureForm/EcogestureLaunchFormModal.tsx b/src/components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal.tsx
similarity index 100%
rename from src/components/EcogestureForm/EcogestureLaunchFormModal.tsx
rename to src/components/EcogestureForm/EcogestureLaunchFormModal/EcogestureLaunchFormModal.tsx
diff --git a/src/components/EcogestureForm/__snapshots__/EcogestureLaunchFormModal.spec.tsx.snap b/src/components/EcogestureForm/EcogestureLaunchFormModal/__snapshots__/EcogestureLaunchFormModal.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureForm/__snapshots__/EcogestureLaunchFormModal.spec.tsx.snap
rename to src/components/EcogestureForm/EcogestureLaunchFormModal/__snapshots__/EcogestureLaunchFormModal.spec.tsx.snap
diff --git a/src/components/EcogestureForm/ecogestureLaunchFormModal.scss b/src/components/EcogestureForm/EcogestureLaunchFormModal/ecogestureLaunchFormModal.scss
similarity index 100%
rename from src/components/EcogestureForm/ecogestureLaunchFormModal.scss
rename to src/components/EcogestureForm/EcogestureLaunchFormModal/ecogestureLaunchFormModal.scss
diff --git a/src/components/EcogestureForm/EquipmentIcon.spec.tsx b/src/components/EcogestureForm/EquipmentIcon/EquipmentIcon.spec.tsx
similarity index 93%
rename from src/components/EcogestureForm/EquipmentIcon.spec.tsx
rename to src/components/EcogestureForm/EquipmentIcon/EquipmentIcon.spec.tsx
index e06d80896684765c4060e5c75d97256b8657079c..cf1ebcde7f1e8378ae561a912957674629d14e5b 100644
--- a/src/components/EcogestureForm/EquipmentIcon.spec.tsx
+++ b/src/components/EcogestureForm/EquipmentIcon/EquipmentIcon.spec.tsx
@@ -3,7 +3,7 @@ import { EquipmentType } from 'enums'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EquipmentIcon from './EquipmentIcon'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/EcogestureForm/EquipmentIcon.tsx b/src/components/EcogestureForm/EquipmentIcon/EquipmentIcon.tsx
similarity index 100%
rename from src/components/EcogestureForm/EquipmentIcon.tsx
rename to src/components/EcogestureForm/EquipmentIcon/EquipmentIcon.tsx
diff --git a/src/components/EcogestureForm/__snapshots__/EquipmentIcon.spec.tsx.snap b/src/components/EcogestureForm/EquipmentIcon/__snapshots__/EquipmentIcon.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureForm/__snapshots__/EquipmentIcon.spec.tsx.snap
rename to src/components/EcogestureForm/EquipmentIcon/__snapshots__/EquipmentIcon.spec.tsx.snap
diff --git a/src/components/EcogestureSelection/EcogestureSelectionDetail.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
similarity index 93%
rename from src/components/EcogestureSelection/EcogestureSelectionDetail.spec.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
index 33778d5e0f5f71bbe4e55ebd21bb3cabb10d223a..3b81ac7bdfa7b9e3bf990a93cda82d55ff2dbe05 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionDetail.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
@@ -2,8 +2,8 @@ import { Button } from '@material-ui/core'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EcogestureSelectionDetail from './EcogestureSelectionDetail'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/EcogestureSelection/EcogestureSelectionDetail.tsx b/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionDetail.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.tsx
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionDetail.spec.tsx.snap b/src/components/EcogestureSelection/EcogestureSelectionDetail/__snapshots__/EcogestureSelectionDetail.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureSelection/__snapshots__/EcogestureSelectionDetail.spec.tsx.snap
rename to src/components/EcogestureSelection/EcogestureSelectionDetail/__snapshots__/EcogestureSelectionDetail.spec.tsx.snap
diff --git a/src/components/EcogestureSelection/ecogestureSelectionDetail.scss b/src/components/EcogestureSelection/EcogestureSelectionDetail/ecogestureSelectionDetail.scss
similarity index 100%
rename from src/components/EcogestureSelection/ecogestureSelectionDetail.scss
rename to src/components/EcogestureSelection/EcogestureSelectionDetail/ecogestureSelectionDetail.scss
diff --git a/src/components/EcogestureSelection/EcogestureSelectionEnd.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionEnd.spec.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx
diff --git a/src/components/EcogestureSelection/EcogestureSelectionEnd.tsx b/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionEnd.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.tsx
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionEnd.spec.tsx.snap b/src/components/EcogestureSelection/EcogestureSelectionEnd/__snapshots__/EcogestureSelectionEnd.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureSelection/__snapshots__/EcogestureSelectionEnd.spec.tsx.snap
rename to src/components/EcogestureSelection/EcogestureSelectionEnd/__snapshots__/EcogestureSelectionEnd.spec.tsx.snap
diff --git a/src/components/EcogestureSelection/ecogestureSelectionEnd.scss b/src/components/EcogestureSelection/EcogestureSelectionEnd/ecogestureSelectionEnd.scss
similarity index 100%
rename from src/components/EcogestureSelection/ecogestureSelectionEnd.scss
rename to src/components/EcogestureSelection/EcogestureSelectionEnd/ecogestureSelectionEnd.scss
diff --git a/src/components/EcogestureSelection/EcogestureSelectionModal.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionModal.spec.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx
diff --git a/src/components/EcogestureSelection/EcogestureSelectionModal.tsx b/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionModal.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.tsx
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionModal.spec.tsx.snap b/src/components/EcogestureSelection/EcogestureSelectionModal/__snapshots__/EcogestureSelectionModal.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureSelection/__snapshots__/EcogestureSelectionModal.spec.tsx.snap
rename to src/components/EcogestureSelection/EcogestureSelectionModal/__snapshots__/EcogestureSelectionModal.spec.tsx.snap
diff --git a/src/components/EcogestureSelection/ecogestureSelectionModal.scss b/src/components/EcogestureSelection/EcogestureSelectionModal/ecogestureSelectionModal.scss
similarity index 100%
rename from src/components/EcogestureSelection/ecogestureSelectionModal.scss
rename to src/components/EcogestureSelection/EcogestureSelectionModal/ecogestureSelectionModal.scss
diff --git a/src/components/EcogestureSelection/EcogestureSelectionRestart.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionRestart.spec.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx
diff --git a/src/components/EcogestureSelection/EcogestureSelectionRestart.tsx b/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.tsx
similarity index 100%
rename from src/components/EcogestureSelection/EcogestureSelectionRestart.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.tsx
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionRestart.spec.tsx.snap b/src/components/EcogestureSelection/EcogestureSelectionRestart/__snapshots__/EcogestureSelectionRestart.spec.tsx.snap
similarity index 100%
rename from src/components/EcogestureSelection/__snapshots__/EcogestureSelectionRestart.spec.tsx.snap
rename to src/components/EcogestureSelection/EcogestureSelectionRestart/__snapshots__/EcogestureSelectionRestart.spec.tsx.snap
diff --git a/src/components/EcogestureSelection/ecogestureSelectionRestart.scss b/src/components/EcogestureSelection/EcogestureSelectionRestart/ecogestureSelectionRestart.scss
similarity index 100%
rename from src/components/EcogestureSelection/ecogestureSelectionRestart.scss
rename to src/components/EcogestureSelection/EcogestureSelectionRestart/ecogestureSelectionRestart.scss
diff --git a/src/components/EcogestureSelection/EcogestureSelection.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionView.spec.tsx
similarity index 68%
rename from src/components/EcogestureSelection/EcogestureSelection.spec.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionView.spec.tsx
index 0605fda959dc17732cc4a3936e510f24ab9c3887..11ca91568d6fd47e52c0100fe022edf9471ed94e 100644
--- a/src/components/EcogestureSelection/EcogestureSelection.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionView.spec.tsx
@@ -3,11 +3,11 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import mockClient from '../../../tests/__mocks__/client'
-import { mockedEcogesturesData } from '../../../tests/__mocks__/ecogesturesData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import EcogestureSelection from './EcogestureSelection'
+import mockClient from 'tests/__mocks__/client'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import EcogestureSelectionView from './EcogestureSelectionView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -46,20 +46,20 @@ jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
 jest.mock('components/Content/Content', () => 'mock-content')
 jest.mock(
-  'components/EcogestureSelection/EcogestureSelectionModal',
-  () => 'mock-ecogestureselectionmodal'
+  'components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal',
+  () => 'mock-ecogestureSelectionModal'
 )
 jest.mock(
-  'components/EcogestureSelection/EcogestureSelectionDetail',
-  () => 'mock-ecogestureselectiondetail'
+  'components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail',
+  () => 'mock-ecogestureSelectionDetail'
 )
 jest.mock(
-  'components/EcogestureSelection/EcogestureSelectionRestart',
-  () => 'mock-ecogestureselectionrestart'
+  'components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart',
+  () => 'mock-ecogestureSelectionRestart'
 )
 jest.mock(
-  'components/EcogestureSelection/EcogestureSelectionEnd',
-  () => 'mock-ecogestureselectionend'
+  'components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd',
+  () => 'mock-ecogestureSelectionEnd'
 )
 
 describe('EcogestureSelection component', () => {
@@ -73,7 +73,7 @@ describe('EcogestureSelection component', () => {
     mockGetEcogestureListByProfile.mockResolvedValue([mockedEcogesturesData[0]])
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureSelection />
+        <EcogestureSelectionView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
@@ -83,30 +83,30 @@ describe('EcogestureSelection component', () => {
     mockGetEcogestureListByProfile.mockResolvedValue([mockedEcogesturesData[0]])
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureSelection />
+        <EcogestureSelectionView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('mock-ecogestureselectionmodal').exists()).toBeTruthy()
+    expect(wrapper.find('mock-ecogestureSelectionModal').exists()).toBeTruthy()
   })
   it('should render with the EcogestureSelectionDetail', async () => {
     mockGetEcogestureListByProfile.mockResolvedValue([mockedEcogesturesData[0]])
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureSelection />
+        <EcogestureSelectionView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('mock-ecogestureselectiondetail').exists()).toBeTruthy()
+    expect(wrapper.find('mock-ecogestureSelectionDetail').exists()).toBeTruthy()
   })
   it('should render with the EcogestureSelectionEnd', async () => {
     mockGetEcogestureListByProfile.mockResolvedValue([])
     const wrapper = mount(
       <Provider store={store}>
-        <EcogestureSelection />
+        <EcogestureSelectionView />
       </Provider>
     )
     await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('mock-ecogestureselectionend').exists()).toBeTruthy()
+    expect(wrapper.find('mock-ecogestureSelectionEnd').exists()).toBeTruthy()
   })
 })
diff --git a/src/components/EcogestureSelection/EcogestureSelection.tsx b/src/components/EcogestureSelection/EcogestureSelectionView.tsx
similarity index 91%
rename from src/components/EcogestureSelection/EcogestureSelection.tsx
rename to src/components/EcogestureSelection/EcogestureSelectionView.tsx
index 04d8e343b17466d884102879d37ae8e2c1701461..3991b7c7947645f68fafe7af63aaafc4bbda349b 100644
--- a/src/components/EcogestureSelection/EcogestureSelection.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionView.tsx
@@ -1,8 +1,4 @@
 import Content from 'components/Content/Content'
-import EcogestureSelectionDetail from 'components/EcogestureSelection/EcogestureSelectionDetail'
-import EcogestureSelectionEnd from 'components/EcogestureSelection/EcogestureSelectionEnd'
-import EcogestureSelectionModal from 'components/EcogestureSelection/EcogestureSelectionModal'
-import EcogestureSelectionRestart from 'components/EcogestureSelection/EcogestureSelectionRestart'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import Loader from 'components/Loader/Loader'
@@ -13,9 +9,13 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'
 import { useNavigate } from 'react-router-dom'
 import EcogestureService from 'services/ecogesture.service'
 import { useAppSelector } from 'store/hooks'
-import './ecogestureSelection.scss'
+import EcogestureSelectionDetail from './EcogestureSelectionDetail/EcogestureSelectionDetail'
+import EcogestureSelectionEnd from './EcogestureSelectionEnd/EcogestureSelectionEnd'
+import EcogestureSelectionModal from './EcogestureSelectionModal/EcogestureSelectionModal'
+import EcogestureSelectionRestart from './EcogestureSelectionRestart/EcogestureSelectionRestart'
+import './ecogestureSelectionView.scss'
 
-const EcogestureSelection = () => {
+const EcogestureSelectionView = () => {
   const { t } = useI18n()
   const client = useClient()
   const navigate = useNavigate()
@@ -165,4 +165,4 @@ const EcogestureSelection = () => {
   )
 }
 
-export default EcogestureSelection
+export default EcogestureSelectionView
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelection.spec.tsx.snap b/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
similarity index 94%
rename from src/components/EcogestureSelection/__snapshots__/EcogestureSelection.spec.tsx.snap
rename to src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
index ef4f90c15e5bb534fa71ff9a2f542ed39a4cae65..ed9d0311c8a6b5491e0c668cb785fb5a4c43aafb 100644
--- a/src/components/EcogestureSelection/__snapshots__/EcogestureSelection.spec.tsx.snap
+++ b/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
@@ -13,7 +13,7 @@ exports[`EcogestureSelection component should be rendered correctly 1`] = `
     }
   }
 >
-  <EcogestureSelection>
+  <EcogestureSelectionView>
     <mock-cozybar
       backFunction={[Function]}
       displayBackArrow={true}
@@ -33,7 +33,7 @@ exports[`EcogestureSelection component should be rendered correctly 1`] = `
     <mock-content
       heightOffset={0}
     >
-      <mock-ecogestureselectiondetail
+      <mock-ecogestureSelectionDetail
         ecogesture={
           Object {
             "_id": "ECOGESTURE001",
@@ -70,11 +70,11 @@ exports[`EcogestureSelection component should be rendered correctly 1`] = `
         title="Bonhomme de neige"
         validate={[Function]}
       />
-      <mock-ecogestureselectionmodal
+      <mock-ecogestureSelectionModal
         handleCloseClick={[Function]}
         open={true}
       />
     </mock-content>
-  </EcogestureSelection>
+  </EcogestureSelectionView>
 </Provider>
 `;
diff --git a/src/components/EcogestureSelection/ecogestureSelection.scss b/src/components/EcogestureSelection/ecogestureSelectionView.scss
similarity index 100%
rename from src/components/EcogestureSelection/ecogestureSelection.scss
rename to src/components/EcogestureSelection/ecogestureSelectionView.scss
diff --git a/src/components/Exploration/ExplorationFinished.spec.tsx b/src/components/Exploration/ExplorationFinished.spec.tsx
index c6a173a57de8e2c7a53fe766826e083e5065831c..e78072219b38ea6267704bc98a54f9ec09487b83 100644
--- a/src/components/Exploration/ExplorationFinished.spec.tsx
+++ b/src/components/Exploration/ExplorationFinished.spec.tsx
@@ -3,8 +3,8 @@ import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ExplorationFinished from './ExplorationFinished'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Exploration/ExplorationOngoing.spec.tsx b/src/components/Exploration/ExplorationOngoing.spec.tsx
index 314f9fa0203ed21c9fbefba204de37c19a6e482f..4267bb61c0d3a557923a03774e6a42e7b204bb37 100644
--- a/src/components/Exploration/ExplorationOngoing.spec.tsx
+++ b/src/components/Exploration/ExplorationOngoing.spec.tsx
@@ -2,8 +2,8 @@ import ExplorationOngoing from 'components/Exploration/ExplorationOngoing'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Exploration/ExplorationOngoing.tsx b/src/components/Exploration/ExplorationOngoing.tsx
index d67c2a9ce17998696cf9253508811115a54d0944..9e817ec55e630e706c6aa3d69092b2dddc5061d5 100644
--- a/src/components/Exploration/ExplorationOngoing.tsx
+++ b/src/components/Exploration/ExplorationOngoing.tsx
@@ -1,7 +1,7 @@
 import Button from '@material-ui/core/Button'
 import explorationIcon from 'assets/icons/visu/exploration/shield.svg'
-import StarsContainer from 'components/Challenge/StarsContainer'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
+import StarsContainer from 'components/CommonKit/StarsContainer/StarsContainer'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import {
diff --git a/src/components/Exploration/ExplorationView.spec.tsx b/src/components/Exploration/ExplorationView.spec.tsx
index 7d535b9ad158ffe80268c708f97c2a5107ffa22a..3b64f2ffebcc0a1f393cc148c3d51d8e9657a554 100644
--- a/src/components/Exploration/ExplorationView.spec.tsx
+++ b/src/components/Exploration/ExplorationView.spec.tsx
@@ -2,9 +2,9 @@ import { UserExplorationState } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { challengeStateData } from '../../../tests/__mocks__/challengeStateData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { challengeStateData } from 'tests/__mocks__/challengeStateData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import ExplorationError from './ExplorationError'
 import ExplorationFinished from './ExplorationFinished'
 import ExplorationOngoing from './ExplorationOngoing'
diff --git a/src/components/Feedback/FeedbackModal.spec.tsx b/src/components/Feedback/FeedbackModal.spec.tsx
index b065b5c54a3dbaf0d3e70f490954367c2b1abad3..5ce641f8ba8ab1b93e7ae877e9120fb7dff20072 100644
--- a/src/components/Feedback/FeedbackModal.spec.tsx
+++ b/src/components/Feedback/FeedbackModal.spec.tsx
@@ -4,7 +4,7 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 // Value coming from jest.config
 declare let __SAU_LINK__: string
diff --git a/src/components/FluidChart/FluidChart.tsx b/src/components/FluidChart/FluidChart.tsx
index 1d824baa469b2b7618ec30a5e5caf41a37004f8d..3b0b2083619d99f0580935c602ac8c3329e644bb 100644
--- a/src/components/FluidChart/FluidChart.tsx
+++ b/src/components/FluidChart/FluidChart.tsx
@@ -2,9 +2,7 @@ import { Button, Slide } from '@material-ui/core'
 import LegendComparisonIcon from 'assets/icons/ico/legendComparison.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import StyledSwitch from 'components/CommonKit/Switch/StyledSwitch'
-import HalfHourNoData from 'components/HalfHourNoData/HalfHourNoData'
 import useExploration from 'components/Hooks/useExploration'
-import TimeStepSelector from 'components/TimeStepSelector/TimeStepSelector'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { FluidType, TimeStep, UsageEventType, UserExplorationID } from 'enums'
@@ -23,6 +21,8 @@ import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { openConnectionModal } from 'store/modal/modal.slice'
 import { getFluidName, getKonnectorSlug, isKonnectorActive } from 'utils/utils'
 import FluidChartSwipe from './FluidChartSwipe'
+import HalfHourNoData from './HalfHourNoData/HalfHourNoData'
+import TimeStepSelector from './TimeStepSelector/TimeStepSelector'
 import './fluidChart.scss'
 
 interface FluidChartProps {
diff --git a/src/components/HalfHourNoData/HalfHourNoData.spec.tsx b/src/components/FluidChart/HalfHourNoData/HalfHourNoData.spec.tsx
similarity index 100%
rename from src/components/HalfHourNoData/HalfHourNoData.spec.tsx
rename to src/components/FluidChart/HalfHourNoData/HalfHourNoData.spec.tsx
diff --git a/src/components/HalfHourNoData/HalfHourNoData.tsx b/src/components/FluidChart/HalfHourNoData/HalfHourNoData.tsx
similarity index 100%
rename from src/components/HalfHourNoData/HalfHourNoData.tsx
rename to src/components/FluidChart/HalfHourNoData/HalfHourNoData.tsx
diff --git a/src/components/HalfHourNoData/__snapshots__/HalfHourNoData.spec.tsx.snap b/src/components/FluidChart/HalfHourNoData/__snapshots__/HalfHourNoData.spec.tsx.snap
similarity index 100%
rename from src/components/HalfHourNoData/__snapshots__/HalfHourNoData.spec.tsx.snap
rename to src/components/FluidChart/HalfHourNoData/__snapshots__/HalfHourNoData.spec.tsx.snap
diff --git a/src/components/HalfHourNoData/halfHourNoData.scss b/src/components/FluidChart/HalfHourNoData/halfHourNoData.scss
similarity index 100%
rename from src/components/HalfHourNoData/halfHourNoData.scss
rename to src/components/FluidChart/HalfHourNoData/halfHourNoData.scss
diff --git a/src/components/TimeStepSelector/TimeStepSelector.spec.tsx b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
similarity index 91%
rename from src/components/TimeStepSelector/TimeStepSelector.spec.tsx
rename to src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
index e7ae42fa7d690a6e9632fa1b7815b12576dade18..e0e0a6c02bc70636fe72f2fa4e868ab77449de95 100644
--- a/src/components/TimeStepSelector/TimeStepSelector.spec.tsx
+++ b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
@@ -1,5 +1,5 @@
 import { Button } from '@material-ui/core'
-import TimeStepSelector from 'components/TimeStepSelector/TimeStepSelector'
+import TimeStepSelector from 'components/FluidChart/TimeStepSelector/TimeStepSelector'
 import { FluidType, TimeStep } from 'enums'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
@@ -8,8 +8,8 @@ import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
 import * as chartActions from 'store/chart/chart.slice'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/TimeStepSelector/TimeStepSelector.tsx b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx
similarity index 100%
rename from src/components/TimeStepSelector/TimeStepSelector.tsx
rename to src/components/FluidChart/TimeStepSelector/TimeStepSelector.tsx
diff --git a/src/components/TimeStepSelector/__snapshots__/TimeStepSelector.spec.tsx.snap b/src/components/FluidChart/TimeStepSelector/__snapshots__/TimeStepSelector.spec.tsx.snap
similarity index 100%
rename from src/components/TimeStepSelector/__snapshots__/TimeStepSelector.spec.tsx.snap
rename to src/components/FluidChart/TimeStepSelector/__snapshots__/TimeStepSelector.spec.tsx.snap
diff --git a/src/components/TimeStepSelector/timeStepSelector.scss b/src/components/FluidChart/TimeStepSelector/timeStepSelector.scss
similarity index 100%
rename from src/components/TimeStepSelector/timeStepSelector.scss
rename to src/components/FluidChart/TimeStepSelector/timeStepSelector.scss
diff --git a/src/components/Header/CozyBar.spec.tsx b/src/components/Header/CozyBar.spec.tsx
index 9b7f320080e94b4b97cbaa72b2508231fd78cc17..ea48ce7a064bd13ae64aa8f5e0e2b6b92c31898f 100644
--- a/src/components/Header/CozyBar.spec.tsx
+++ b/src/components/Header/CozyBar.spec.tsx
@@ -5,7 +5,7 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as ModalAction from 'store/modal/modal.slice'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 interface BarProps {
   children: React.ReactNode
diff --git a/src/components/Header/Header.spec.tsx b/src/components/Header/Header.spec.tsx
index 21124ae9ae2c806724bf15aa353b8f96f77a9ce9..074620e9adc3d654c45205babd4a955806af6afe 100644
--- a/src/components/Header/Header.spec.tsx
+++ b/src/components/Header/Header.spec.tsx
@@ -4,7 +4,7 @@ import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as ModalAction from 'store/modal/modal.slice'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Hooks/useExploration.spec.tsx b/src/components/Hooks/useExploration.spec.tsx
index c5ba00f5f8577d63ec91c3e13e51ac252998a09a..4e70b76a814779aaebcdfdcffc5739226cf4d91d 100644
--- a/src/components/Hooks/useExploration.spec.tsx
+++ b/src/components/Hooks/useExploration.spec.tsx
@@ -3,8 +3,8 @@ import useExploration from 'components/Hooks/useExploration'
 import { UserExplorationID } from 'enums'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeExplo1OnGoing } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeExplo1OnGoing } from 'tests/__mocks__/userChallengeData.mock'
 
 describe('useExploration Hooks', () => {
   it('should return "EXPLORATION001"', () => {
diff --git a/src/components/Connection/ConnectionNotFound.spec.tsx b/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
similarity index 89%
rename from src/components/Connection/ConnectionNotFound.spec.tsx
rename to src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
index f0df05f18034513c26283c6cd18c03f099eef215..595f02a28dac731cc6d6cf5177a08f52e32e60ee 100644
--- a/src/components/Connection/ConnectionNotFound.spec.tsx
+++ b/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
@@ -1,7 +1,7 @@
 import Button from '@material-ui/core/Button'
-import ConnectionNotFound from 'components/Connection/ConnectionNotFound'
 import { mount, shallow } from 'enzyme'
 import React from 'react'
+import ConnectionNotFound from './ConnectionNotFound'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Connection/ConnectionNotFound.tsx b/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.tsx
similarity index 100%
rename from src/components/Connection/ConnectionNotFound.tsx
rename to src/components/Konnector/ConnectionNotFound/ConnectionNotFound.tsx
diff --git a/src/components/Connection/__snapshots__/ConnectionNotFound.spec.tsx.snap b/src/components/Konnector/ConnectionNotFound/__snapshots__/ConnectionNotFound.spec.tsx.snap
similarity index 100%
rename from src/components/Connection/__snapshots__/ConnectionNotFound.spec.tsx.snap
rename to src/components/Konnector/ConnectionNotFound/__snapshots__/ConnectionNotFound.spec.tsx.snap
diff --git a/src/components/Connection/connectionNotFound.scss b/src/components/Konnector/ConnectionNotFound/connectionNotFound.scss
similarity index 100%
rename from src/components/Connection/connectionNotFound.scss
rename to src/components/Konnector/ConnectionNotFound/connectionNotFound.scss
diff --git a/src/components/Connection/ConnectionResult.tsx b/src/components/Konnector/ConnectionResult/ConnectionResult.tsx
similarity index 99%
rename from src/components/Connection/ConnectionResult.tsx
rename to src/components/Konnector/ConnectionResult/ConnectionResult.tsx
index 5c7efaac42888222c5ea4bd853aac4b1c30c1fb9..617d68831428482e6e3ae4c4db9370903650d9e6 100644
--- a/src/components/Connection/ConnectionResult.tsx
+++ b/src/components/Konnector/ConnectionResult/ConnectionResult.tsx
@@ -24,7 +24,7 @@ import {
 } from 'store/global/global.slice'
 import { useAppDispatch } from 'store/hooks'
 import { getKonnectorUpdateError } from 'utils/utils'
-import DeleteGRDFAccountModal from './DeleteGRDFAccountModal'
+import DeleteGRDFAccountModal from '../../Connection/GRDFDeleteAccountModal/DeleteGRDFAccountModal'
 import './connectionResult.scss'
 
 interface ConnectionResultProps {
diff --git a/src/components/Connection/connectionResult.scss b/src/components/Konnector/ConnectionResult/connectionResult.scss
similarity index 100%
rename from src/components/Connection/connectionResult.scss
rename to src/components/Konnector/ConnectionResult/connectionResult.scss
diff --git a/src/components/Konnector/KonnectorModal.spec.tsx b/src/components/Konnector/KonnectorModal.spec.tsx
index 55a545193d5d348082e06b8e9f1c1db9dd451401..2d4d38d1835f0f6aa15e0366a9cea9e360a57194 100644
--- a/src/components/Konnector/KonnectorModal.spec.tsx
+++ b/src/components/Konnector/KonnectorModal.spec.tsx
@@ -4,8 +4,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import KonnectorModal from './KonnectorModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Konnector/KonnectorModalFooter.spec.tsx b/src/components/Konnector/KonnectorModalFooter.spec.tsx
index 12d9c08ec543367dae344638f54d0f2d8c5c4536..8f232344ec545f768a97758cc0caefd0d2905909 100644
--- a/src/components/Konnector/KonnectorModalFooter.spec.tsx
+++ b/src/components/Konnector/KonnectorModalFooter.spec.tsx
@@ -5,9 +5,9 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { accountsData } from '../../../tests/__mocks__/accountsData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import KonnectorModalFooter from './KonnectorModalFooter'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Konnector/KonnectorViewerCard.tsx b/src/components/Konnector/KonnectorViewerCard.tsx
index aeaddbd9a5a30586e8061806ba30548de1f07516..19b1cb27e4f848b865bfc24d83be3246cfb195e6 100644
--- a/src/components/Konnector/KonnectorViewerCard.tsx
+++ b/src/components/Konnector/KonnectorViewerCard.tsx
@@ -11,8 +11,8 @@ import OfflinePicto from 'assets/icons/visu/offline-param.svg'
 import classNames from 'classnames'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import Connection from 'components/Connection/Connection'
-import ConnectionNotFound from 'components/Connection/ConnectionNotFound'
-import ConnectionResult from 'components/Connection/ConnectionResult'
+import ConnectionNotFound from 'components/Konnector/ConnectionNotFound/ConnectionNotFound'
+import ConnectionResult from 'components/Konnector/ConnectionResult/ConnectionResult'
 import KonnectorModal from 'components/Konnector/KonnectorModal'
 import { useClient } from 'cozy-client'
 import { isKonnectorRunning } from 'cozy-harvest-lib/dist/helpers/triggers'
diff --git a/src/components/Konnector/KonnectorViewerList.spec.tsx b/src/components/Konnector/KonnectorViewerList.spec.tsx
index dec26ab139384a05ec2c98143c03069a9ff86409..47a2973bbde48e323573de16947a7d5ace542c2e 100644
--- a/src/components/Konnector/KonnectorViewerList.spec.tsx
+++ b/src/components/Konnector/KonnectorViewerList.spec.tsx
@@ -2,8 +2,8 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import KonnectorViewerList from './KonnectorViewerList'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Navbar/Navbar.spec.tsx b/src/components/Navbar/Navbar.spec.tsx
index ea55dc32e361c0e67b85344818fc2acddbbdcd85..dad8e7e2186219fbf001e0bad3c5c2813a5d6961 100644
--- a/src/components/Navbar/Navbar.spec.tsx
+++ b/src/components/Navbar/Navbar.spec.tsx
@@ -3,7 +3,7 @@ import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Options/ExportData/ExportData.spec.tsx b/src/components/Options/ExportData/ExportData.spec.tsx
index bbf9d44180eab8da9a56dd2b180e7654ff18dfb9..34e6a2069ba1dbf0468890b4ec2ae7be1f13742d 100644
--- a/src/components/Options/ExportData/ExportData.spec.tsx
+++ b/src/components/Options/ExportData/ExportData.spec.tsx
@@ -1,7 +1,7 @@
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import mockClient from '../../../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 
 import ExportData from './ExportData'
 
diff --git a/src/components/Options/ExportData/ExportData.tsx b/src/components/Options/ExportData/ExportData.tsx
index a7195bc974a7c1f3f8c364168fcd47aa0768159f..313e7c0a0e4a51210a137fa5afd24987047eb49b 100644
--- a/src/components/Options/ExportData/ExportData.tsx
+++ b/src/components/Options/ExportData/ExportData.tsx
@@ -7,9 +7,6 @@ import {
 import chevronDown from 'assets/icons/ico/chevron-down.svg'
 import exportIcon from 'assets/icons/ico/export.svg'
 import classNames from 'classnames'
-import ExportDoneModal from 'components/Export/exportDoneModal'
-import ExportLoadingModal from 'components/Export/exportLoadingModal'
-import ExportStartModal from 'components/Export/exportStartModal'
 import { useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import Icon from 'cozy-ui/transpiled/react/Icon'
@@ -17,6 +14,9 @@ import { FluidType, TimeStep } from 'enums'
 import { remove } from 'lodash'
 import React, { useEffect, useMemo, useState } from 'react'
 import ConsumptionDataManager from 'services/consumption.service'
+import ExportDoneModal from './Modals/exportDoneModal'
+import ExportLoadingModal from './Modals/exportLoadingModal'
+import ExportStartModal from './Modals/exportStartModal'
 import './exportData.scss'
 
 const ExportData = () => {
diff --git a/src/components/Export/__snapshots__/exportDoneModal.spec.tsx.snap b/src/components/Options/ExportData/Modals/__snapshots__/exportDoneModal.spec.tsx.snap
similarity index 100%
rename from src/components/Export/__snapshots__/exportDoneModal.spec.tsx.snap
rename to src/components/Options/ExportData/Modals/__snapshots__/exportDoneModal.spec.tsx.snap
diff --git a/src/components/Export/__snapshots__/exportLoadingModal.spec.tsx.snap b/src/components/Options/ExportData/Modals/__snapshots__/exportLoadingModal.spec.tsx.snap
similarity index 100%
rename from src/components/Export/__snapshots__/exportLoadingModal.spec.tsx.snap
rename to src/components/Options/ExportData/Modals/__snapshots__/exportLoadingModal.spec.tsx.snap
diff --git a/src/components/Export/__snapshots__/exportStartModal.spec.tsx.snap b/src/components/Options/ExportData/Modals/__snapshots__/exportStartModal.spec.tsx.snap
similarity index 100%
rename from src/components/Export/__snapshots__/exportStartModal.spec.tsx.snap
rename to src/components/Options/ExportData/Modals/__snapshots__/exportStartModal.spec.tsx.snap
diff --git a/src/components/Export/exportDoneModal.scss b/src/components/Options/ExportData/Modals/exportDoneModal.scss
similarity index 100%
rename from src/components/Export/exportDoneModal.scss
rename to src/components/Options/ExportData/Modals/exportDoneModal.scss
diff --git a/src/components/Export/exportDoneModal.spec.tsx b/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
similarity index 89%
rename from src/components/Export/exportDoneModal.spec.tsx
rename to src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
index 291fac79cb9512b92adee39ba9c8bd8e2d340028..604f3b94e5eb09d477e2ee79c5981fdb293cdb6c 100644
--- a/src/components/Export/exportDoneModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
@@ -1,10 +1,10 @@
 import { Button } from '@material-ui/core'
-import ExportDoneModal from 'components/Export/exportDoneModal'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import ExportDoneModal from './exportDoneModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Export/exportDoneModal.tsx b/src/components/Options/ExportData/Modals/exportDoneModal.tsx
similarity index 100%
rename from src/components/Export/exportDoneModal.tsx
rename to src/components/Options/ExportData/Modals/exportDoneModal.tsx
diff --git a/src/components/Export/exportLoadingModal.scss b/src/components/Options/ExportData/Modals/exportLoadingModal.scss
similarity index 100%
rename from src/components/Export/exportLoadingModal.scss
rename to src/components/Options/ExportData/Modals/exportLoadingModal.scss
diff --git a/src/components/Export/exportLoadingModal.spec.tsx b/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
similarity index 90%
rename from src/components/Export/exportLoadingModal.spec.tsx
rename to src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
index a34c49e86a924aea28c020724a34c0eb685e377b..fcfd0a73a341c0315e34122e5f7c4def8d17a492 100644
--- a/src/components/Export/exportLoadingModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
@@ -1,10 +1,10 @@
 import { Button } from '@material-ui/core'
-import ExportLoadingModal from 'components/Export/exportLoadingModal'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import ExportLoadingModal from './exportLoadingModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Export/exportLoadingModal.tsx b/src/components/Options/ExportData/Modals/exportLoadingModal.tsx
similarity index 100%
rename from src/components/Export/exportLoadingModal.tsx
rename to src/components/Options/ExportData/Modals/exportLoadingModal.tsx
diff --git a/src/components/Export/exportStartModal.scss b/src/components/Options/ExportData/Modals/exportStartModal.scss
similarity index 100%
rename from src/components/Export/exportStartModal.scss
rename to src/components/Options/ExportData/Modals/exportStartModal.scss
diff --git a/src/components/Export/exportStartModal.spec.tsx b/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
similarity index 90%
rename from src/components/Export/exportStartModal.spec.tsx
rename to src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
index b7381ccc2fc1ec95ae97e04af58a390fc7fba9f8..8630ed7db81b74347810bea258e11a4625ca56fb 100644
--- a/src/components/Export/exportStartModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
@@ -1,10 +1,10 @@
 import { Button } from '@material-ui/core'
-import ExportStartModal from 'components/Export/exportStartModal'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import ExportStartModal from './exportStartModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Export/exportStartModal.tsx b/src/components/Options/ExportData/Modals/exportStartModal.tsx
similarity index 100%
rename from src/components/Export/exportStartModal.tsx
rename to src/components/Options/ExportData/Modals/exportStartModal.tsx
diff --git a/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx b/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
index b352abb1e5c90405414299f6b6c615af55b21be3..6a40244d587d5ccf6834e38b97e741d3a7ab6c85 100644
--- a/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
+++ b/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
@@ -11,12 +11,12 @@ import {
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { mockProfileType } from '../../../../tests/__mocks__/profileType.mock'
+import { mockProfileType } from 'tests/__mocks__/profileType.mock'
 import {
   createMockEcolyoStore,
   mockChallengeState,
   mockProfileState,
-} from '../../../../tests/__mocks__/store'
+} from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Options/ReportOptions/ReportOptions.spec.tsx b/src/components/Options/ReportOptions/ReportOptions.spec.tsx
index f4e6f877222fc2ad2b879844477e180b31da8af9..8284ab4940f64b95b6467dc1fe11d5d2425ce8f2 100644
--- a/src/components/Options/ReportOptions/ReportOptions.spec.tsx
+++ b/src/components/Options/ReportOptions/ReportOptions.spec.tsx
@@ -9,7 +9,7 @@ import * as profileActions from 'store/profile/profile.actions'
 import {
   createMockEcolyoStore,
   mockInitialEcolyoState,
-} from '../../../../tests/__mocks__/store'
+} from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Options/Unsubscribe/UnSubscribe.spec.tsx b/src/components/Options/Unsubscribe/UnSubscribeView.spec.tsx
similarity index 90%
rename from src/components/Options/Unsubscribe/UnSubscribe.spec.tsx
rename to src/components/Options/Unsubscribe/UnSubscribeView.spec.tsx
index 9495dc1cfc8312ee32305ff9434bd26a458d41c2..2ef010932a62f6a1940f0e01f3b52fdd4f37d0b9 100644
--- a/src/components/Options/Unsubscribe/UnSubscribe.spec.tsx
+++ b/src/components/Options/Unsubscribe/UnSubscribeView.spec.tsx
@@ -4,8 +4,8 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as profileActions from 'store/profile/profile.actions'
-import { createMockEcolyoStore } from '../../../../tests/__mocks__/store'
-import UnSubscribe from './UnSubscribe'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import UnSubscribeView from './UnSubscribeView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -41,7 +41,7 @@ describe('UnSubscribe component', () => {
   it('should be rendered correctly', () => {
     const wrapper = mount(
       <Provider store={store}>
-        <UnSubscribe />
+        <UnSubscribeView />
       </Provider>
     )
     expect(toJson(wrapper)).toMatchSnapshot()
@@ -50,7 +50,7 @@ describe('UnSubscribe component', () => {
   it('should click on button and deactivate report', () => {
     const wrapper = mount(
       <Provider store={store}>
-        <UnSubscribe />
+        <UnSubscribeView />
       </Provider>
     )
     wrapper.find(Button).simulate('click')
diff --git a/src/components/Options/Unsubscribe/UnSubscribe.tsx b/src/components/Options/Unsubscribe/UnSubscribeView.tsx
similarity index 95%
rename from src/components/Options/Unsubscribe/UnSubscribe.tsx
rename to src/components/Options/Unsubscribe/UnSubscribeView.tsx
index ef117a084e2901471ecd8b52b97a1961ca479dae..2a2f74e9879b16a33d2d11fb64e3bb2079c3cdf6 100644
--- a/src/components/Options/Unsubscribe/UnSubscribe.tsx
+++ b/src/components/Options/Unsubscribe/UnSubscribeView.tsx
@@ -9,9 +9,9 @@ import React, { useState } from 'react'
 import { useNavigate } from 'react-router-dom'
 import { useAppDispatch } from 'store/hooks'
 import { updateProfile } from 'store/profile/profile.actions'
-import './unSubscribe.scss'
+import './unSubscribeView.scss'
 
-const UnSubscribe = () => {
+const UnSubscribeView = () => {
   const { t } = useI18n()
   const navigate = useNavigate()
   const dispatch = useAppDispatch()
@@ -54,4 +54,4 @@ const UnSubscribe = () => {
   )
 }
 
-export default UnSubscribe
+export default UnSubscribeView
diff --git a/src/components/Options/Unsubscribe/__snapshots__/UnSubscribe.spec.tsx.snap b/src/components/Options/Unsubscribe/__snapshots__/UnSubscribeView.spec.tsx.snap
similarity index 99%
rename from src/components/Options/Unsubscribe/__snapshots__/UnSubscribe.spec.tsx.snap
rename to src/components/Options/Unsubscribe/__snapshots__/UnSubscribeView.spec.tsx.snap
index 40c3d3fdda5a5cfb783e05aea5a2f54acc3b0be4..8518469701265ae8c94aa8ecf3ad6063eed6f985 100644
--- a/src/components/Options/Unsubscribe/__snapshots__/UnSubscribe.spec.tsx.snap
+++ b/src/components/Options/Unsubscribe/__snapshots__/UnSubscribeView.spec.tsx.snap
@@ -13,7 +13,7 @@ exports[`UnSubscribe component should be rendered correctly 1`] = `
     }
   }
 >
-  <UnSubscribe>
+  <UnSubscribeView>
     <mock-cozybar
       titleKey="common.title_analysis"
     />
@@ -207,6 +207,6 @@ exports[`UnSubscribe component should be rendered correctly 1`] = `
         </WithStyles(ForwardRef(Button))>
       </div>
     </mock-content>
-  </UnSubscribe>
+  </UnSubscribeView>
 </Provider>
 `;
diff --git a/src/components/Options/Unsubscribe/unSubscribe.scss b/src/components/Options/Unsubscribe/unSubscribeView.scss
similarity index 100%
rename from src/components/Options/Unsubscribe/unSubscribe.scss
rename to src/components/Options/Unsubscribe/unSubscribeView.scss
diff --git a/src/components/PartnerIssue/PartnerIssueModal.spec.tsx b/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
index 2bbe0c57f88536c4581b2c11d17a8078b2a8d092..ff2e62e9b54880aeadcaa475debee440be1d6073 100644
--- a/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
+++ b/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
@@ -2,7 +2,7 @@ import { Button } from '@material-ui/core'
 import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
-import { mockInitialEcolyoState } from '../../../tests/__mocks__/store'
+import { mockInitialEcolyoState } from 'tests/__mocks__/store'
 import PartnerIssueModal from './PartnerIssueModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ProfileType/ProfileTypeFinished.spec.tsx b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
similarity index 89%
rename from src/components/ProfileType/ProfileTypeFinished.spec.tsx
rename to src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
index e100ecd8d3543cdc5d6f0379193c5646c87972fa..afe8e36dc9fc7cae82640158f83f799abebba0f0 100644
--- a/src/components/ProfileType/ProfileTypeFinished.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
@@ -3,8 +3,8 @@ import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import UsageEventService from 'services/usageEvent.service'
-import { mockProfileType } from '../../../tests/__mocks__/profileType.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { mockProfileType } from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ProfileTypeFinished from './ProfileTypeFinished'
 
 const mockedNavigate = jest.fn()
diff --git a/src/components/ProfileType/ProfileTypeFinished.tsx b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.tsx
similarity index 98%
rename from src/components/ProfileType/ProfileTypeFinished.tsx
rename to src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.tsx
index 63cc2babec41ae4bc7493f584e896c7dbf80a729..38973bed6b31b8b0706636b7ef4d9a73a70057ec 100644
--- a/src/components/ProfileType/ProfileTypeFinished.tsx
+++ b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.tsx
@@ -3,7 +3,6 @@ import * as Sentry from '@sentry/react'
 import finishIcon from 'assets/icons/visu/profileType/finish.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import useExploration from 'components/Hooks/useExploration'
-import 'components/ProfileType/profileTypeFinished.scss'
 import { Client, useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { PROFILETYPE_DOCTYPE } from 'doctypes'
@@ -18,6 +17,7 @@ import UsageEventService from 'services/usageEvent.service'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { updateProfile } from 'store/profile/profile.actions'
 import { setProfileType } from 'store/profileType/profileType.slice'
+import './profileTypeFinished.scss'
 
 const ProfileTypeFinished = ({ profileType }: { profileType: ProfileType }) => {
   const { t } = useI18n()
diff --git a/src/components/ProfileType/profileTypeFinished.scss b/src/components/ProfileType/ProfileTypeFinished/profileTypeFinished.scss
similarity index 100%
rename from src/components/ProfileType/profileTypeFinished.scss
rename to src/components/ProfileType/ProfileTypeFinished/profileTypeFinished.scss
diff --git a/src/components/ProfileType/ProfileTypeFormDateSelection.tsx b/src/components/ProfileType/ProfileTypeFormDateSelection/ProfileTypeFormDateSelection.tsx
similarity index 96%
rename from src/components/ProfileType/ProfileTypeFormDateSelection.tsx
rename to src/components/ProfileType/ProfileTypeFormDateSelection/ProfileTypeFormDateSelection.tsx
index 41279cdbb8f8ba1d2005bbb876829d2f4439737e..ab64c5673ea62064b06fc6441849c9a503ab897f 100644
--- a/src/components/ProfileType/ProfileTypeFormDateSelection.tsx
+++ b/src/components/ProfileType/ProfileTypeFormDateSelection/ProfileTypeFormDateSelection.tsx
@@ -1,6 +1,6 @@
 import { MenuItem, Select } from '@material-ui/core'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { ProfileTypeStepForm } from 'enums'
diff --git a/src/components/ProfileType/ProfileTypeFormMultiChoice.spec.tsx b/src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.spec.tsx
similarity index 88%
rename from src/components/ProfileType/ProfileTypeFormMultiChoice.spec.tsx
rename to src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.spec.tsx
index d1a811b2612521bcbc837bf2f101d2d5d8e3deb0..1bf3e9ddb78dc9b07866b38059f6490e89fcbda2 100644
--- a/src/components/ProfileType/ProfileTypeFormMultiChoice.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.spec.tsx
@@ -5,8 +5,8 @@ import { Provider } from 'react-redux'
 import {
   mockProfileType,
   mockProfileTypeAnswers,
-} from '../../../tests/__mocks__/profileType.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ProfileTypeFormMultiChoice from './ProfileTypeFormMultiChoice'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ProfileType/ProfileTypeFormMultiChoice.tsx b/src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.tsx
similarity index 95%
rename from src/components/ProfileType/ProfileTypeFormMultiChoice.tsx
rename to src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.tsx
index 008be6979c53e68e27602598733294b0ec2487be..7cf356ab4d2590e67e4db81cf20c6ca90c5138c7 100644
--- a/src/components/ProfileType/ProfileTypeFormMultiChoice.tsx
+++ b/src/components/ProfileType/ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice.tsx
@@ -1,6 +1,6 @@
 import classNames from 'classnames'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { ProfileTypeStepForm } from 'enums'
diff --git a/src/components/ProfileType/ProfileTypeFormNumber.spec.tsx b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.spec.tsx
similarity index 88%
rename from src/components/ProfileType/ProfileTypeFormNumber.spec.tsx
rename to src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.spec.tsx
index c5ebae6c79045be9b35887020f54d000573db787..9d5265440d875c94d6575b4aaaf0b982cb9063bb 100644
--- a/src/components/ProfileType/ProfileTypeFormNumber.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.spec.tsx
@@ -5,8 +5,8 @@ import { Provider } from 'react-redux'
 import {
   mockProfileType,
   mockProfileTypeAnswers,
-} from '../../../tests/__mocks__/profileType.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ProfileTypeFormNumber from './ProfileTypeFormNumber'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ProfileType/ProfileTypeFormNumber.tsx b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx
similarity index 93%
rename from src/components/ProfileType/ProfileTypeFormNumber.tsx
rename to src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx
index cb3d4e6a4d6e39ecf5a46135f5a1daee26452a65..e5fcaecdbcdede56c0367eac6930f292fcebb525 100644
--- a/src/components/ProfileType/ProfileTypeFormNumber.tsx
+++ b/src/components/ProfileType/ProfileTypeFormNumber/ProfileTypeFormNumber.tsx
@@ -1,5 +1,5 @@
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { ProfileTypeStepForm } from 'enums'
diff --git a/src/components/ProfileType/ProfileTypeFormNumberSelection.spec.tsx b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.spec.tsx
similarity index 88%
rename from src/components/ProfileType/ProfileTypeFormNumberSelection.spec.tsx
rename to src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.spec.tsx
index 10eadf07a3c85fbbc86d4ee7d178b02acba1d6e9..891f30ff4593eaec9b1599a8f25efdd912d71114 100644
--- a/src/components/ProfileType/ProfileTypeFormNumberSelection.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.spec.tsx
@@ -5,8 +5,8 @@ import { Provider } from 'react-redux'
 import {
   mockProfileType,
   mockProfileTypeAnswers,
-} from '../../../tests/__mocks__/profileType.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ProfileTypeFormNumberSelection from './ProfileTypeFormNumberSelection'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ProfileType/ProfileTypeFormNumberSelection.tsx b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
similarity index 95%
rename from src/components/ProfileType/ProfileTypeFormNumberSelection.tsx
rename to src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
index 2f1905ad1defd6b41a88428832d4309304241f4f..9ca3b4ebced78665ce2fce211d7374ee8959b707 100644
--- a/src/components/ProfileType/ProfileTypeFormNumberSelection.tsx
+++ b/src/components/ProfileType/ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection.tsx
@@ -1,6 +1,6 @@
 import { Button } from '@material-ui/core'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { ProfileTypeStepForm } from 'enums'
diff --git a/src/components/ProfileType/ProfileTypeFormSingleChoice.spec.tsx b/src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.spec.tsx
similarity index 88%
rename from src/components/ProfileType/ProfileTypeFormSingleChoice.spec.tsx
rename to src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.spec.tsx
index 293e3fa265dec171c17576715d97cbaab36729b9..e0370e7171d2a7cb8288462b7c347f7352535739 100644
--- a/src/components/ProfileType/ProfileTypeFormSingleChoice.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.spec.tsx
@@ -5,8 +5,8 @@ import { Provider } from 'react-redux'
 import {
   mockProfileType,
   mockProfileTypeAnswers,
-} from '../../../tests/__mocks__/profileType.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+} from 'tests/__mocks__/profileType.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import ProfileTypeFormSingleChoice from './ProfileTypeFormSingleChoice'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/ProfileType/ProfileTypeFormSingleChoice.tsx b/src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.tsx
similarity index 95%
rename from src/components/ProfileType/ProfileTypeFormSingleChoice.tsx
rename to src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.tsx
index b7cb5f8fa72d39929b3da8e4ff1c0d0165c84f2a..dd37be32b34a74103d5513b1d7e68fbb2966cd88 100644
--- a/src/components/ProfileType/ProfileTypeFormSingleChoice.tsx
+++ b/src/components/ProfileType/ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice.tsx
@@ -1,6 +1,6 @@
 import classNames from 'classnames'
-import FormNavigation from 'components/FormGlobal/FormNavigation'
-import FormProgress from 'components/FormGlobal/FormProgress'
+import FormNavigation from 'components/CommonKit/FormNavigation/FormNavigation'
+import FormProgress from 'components/CommonKit/FormProgress/FormProgress'
 import 'components/ProfileType/profileTypeForm.scss'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { ProfileTypeStepForm } from 'enums'
diff --git a/src/components/ProfileType/ProfileTypeView.spec.tsx b/src/components/ProfileType/ProfileTypeView.spec.tsx
index 4c360ea56fd8c0e3e9a931d1857d62984d9aabb7..04bfc3bd539c61100758c873a7f86f577cb46a87 100644
--- a/src/components/ProfileType/ProfileTypeView.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeView.spec.tsx
@@ -2,7 +2,7 @@ import ProfileTypeView from 'components/ProfileType/ProfileTypeView'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/ProfileType/ProfileTypeView.tsx b/src/components/ProfileType/ProfileTypeView.tsx
index 56db7b246f954d16b60a407fc73575ea58cfbf04..010c4a3511b5f8a0aa1de3554bd81a339c9cab5c 100644
--- a/src/components/ProfileType/ProfileTypeView.tsx
+++ b/src/components/ProfileType/ProfileTypeView.tsx
@@ -1,13 +1,8 @@
 import Content from 'components/Content/Content'
-import EcogestureFormEquipment from 'components/EcogestureForm/EcogestureFormEquipment'
+import EcogestureFormEquipment from 'components/EcogestureForm/EcogestureFormEquipment/EcogestureFormEquipment'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import Loader from 'components/Loader/Loader'
-import ProfileTypeFinished from 'components/ProfileType/ProfileTypeFinished'
-import ProfileTypeFormMultiChoice from 'components/ProfileType/ProfileTypeFormMultiChoice'
-import ProfileTypeFormNumber from 'components/ProfileType/ProfileTypeFormNumber'
-import ProfileTypeFormNumberSelection from 'components/ProfileType/ProfileTypeFormNumberSelection'
-import ProfileTypeFormSingleChoice from 'components/ProfileType/ProfileTypeFormSingleChoice'
 import 'components/ProfileType/profileTypeView.scss'
 import {
   ConstructionYear,
@@ -29,7 +24,12 @@ import { ProfileType, ProfileTypeAnswer } from 'models'
 import React, { useCallback, useEffect, useState } from 'react'
 import ProfileTypeFormService from 'services/profileTypeForm.service'
 import { useAppSelector } from 'store/hooks'
-import ProfileTypeFormDateSelection from './ProfileTypeFormDateSelection'
+import ProfileTypeFinished from './ProfileTypeFinished/ProfileTypeFinished'
+import ProfileTypeFormDateSelection from './ProfileTypeFormDateSelection/ProfileTypeFormDateSelection'
+import ProfileTypeFormMultiChoice from './ProfileTypeFormMultiChoice/ProfileTypeFormMultiChoice'
+import ProfileTypeFormNumber from './ProfileTypeFormNumber/ProfileTypeFormNumber'
+import ProfileTypeFormNumberSelection from './ProfileTypeFormNumberSelection/ProfileTypeFormNumberSelection'
+import ProfileTypeFormSingleChoice from './ProfileTypeFormSingleChoice/ProfileTypeFormSingleChoice'
 
 const ProfileTypeView = () => {
   const { profile, profileType, profileEcogesture } = useAppSelector(
diff --git a/src/components/Quiz/QuizBegin.spec.tsx b/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
similarity index 85%
rename from src/components/Quiz/QuizBegin.spec.tsx
rename to src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
index 0bb0dbb7ec6bdbaff2de2b69bd5af0d69758be55..4dfc32037237de0c390d8ad2b3082f8a65cf29ee 100644
--- a/src/components/Quiz/QuizBegin.spec.tsx
+++ b/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
@@ -4,8 +4,8 @@ import { UserChallengeUpdateFlag } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import QuizBegin from './QuizBegin'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Quiz/QuizBegin.tsx b/src/components/Quiz/QuizBegin/QuizBegin.tsx
similarity index 91%
rename from src/components/Quiz/QuizBegin.tsx
rename to src/components/Quiz/QuizBegin/QuizBegin.tsx
index d4efb4d0ae49dc06c6f6accaf33b56cb54c1436b..ee0a1bf83a4454f60ea1cee55f830dac1cd50341 100644
--- a/src/components/Quiz/QuizBegin.tsx
+++ b/src/components/Quiz/QuizBegin/QuizBegin.tsx
@@ -1,8 +1,8 @@
 import Button from '@material-ui/core/Button'
 import quizIcon from 'assets/icons/visu/quiz/questionMark.svg'
-import StarsContainer from 'components/Challenge/StarsContainer'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
-import { useClient } from 'cozy-client'
+import StarsContainer from 'components/CommonKit/StarsContainer/StarsContainer'
+import { Client, useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { UserChallengeUpdateFlag } from 'enums'
 import { UserChallenge } from 'models'
@@ -13,7 +13,7 @@ import { useAppDispatch } from 'store/hooks'
 import './quizBegin.scss'
 
 const QuizBegin = ({ userChallenge }: { userChallenge: UserChallenge }) => {
-  const client = useClient()
+  const client: Client = useClient()
   const { t } = useI18n()
   const dispatch = useAppDispatch()
   const launchQuiz = async () => {
diff --git a/src/components/Quiz/quizBegin.scss b/src/components/Quiz/QuizBegin/quizBegin.scss
similarity index 100%
rename from src/components/Quiz/quizBegin.scss
rename to src/components/Quiz/QuizBegin/quizBegin.scss
diff --git a/src/components/Quiz/QuizExplanationModal.tsx b/src/components/Quiz/QuizExplanationModal/QuizExplanationModal.tsx
similarity index 100%
rename from src/components/Quiz/QuizExplanationModal.tsx
rename to src/components/Quiz/QuizExplanationModal/QuizExplanationModal.tsx
diff --git a/src/components/Quiz/quizExplanationModal.scss b/src/components/Quiz/QuizExplanationModal/quizExplanationModal.scss
similarity index 100%
rename from src/components/Quiz/quizExplanationModal.scss
rename to src/components/Quiz/QuizExplanationModal/quizExplanationModal.scss
diff --git a/src/components/Quiz/QuizFinish.spec.tsx b/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
similarity index 83%
rename from src/components/Quiz/QuizFinish.spec.tsx
rename to src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
index 979763f64ffaa9b91ae009b0327324f04319fb62..6b9038e26cd357f367b78e65d8be12b203870ac7 100644
--- a/src/components/Quiz/QuizFinish.spec.tsx
+++ b/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
@@ -4,9 +4,9 @@ import { UserChallengeUpdateFlag } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import QuizFinish from './QuizFinish'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Quiz/QuizFinish.tsx b/src/components/Quiz/QuizFinish/QuizFinish.tsx
similarity index 100%
rename from src/components/Quiz/QuizFinish.tsx
rename to src/components/Quiz/QuizFinish/QuizFinish.tsx
diff --git a/src/components/Quiz/quizFinish.scss b/src/components/Quiz/QuizFinish/quizFinish.scss
similarity index 100%
rename from src/components/Quiz/quizFinish.scss
rename to src/components/Quiz/QuizFinish/quizFinish.scss
diff --git a/src/components/Quiz/QuizQuestion.spec.tsx b/src/components/Quiz/QuizQuestion/QuizQuestion.spec.tsx
similarity index 78%
rename from src/components/Quiz/QuizQuestion.spec.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestion.spec.tsx
index ee64e535a8d8f22fd05349f7bd8321cdf931b4b0..d849881aceec402b8def9dc26ebcc8a00553b158 100644
--- a/src/components/Quiz/QuizQuestion.spec.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestion.spec.tsx
@@ -3,8 +3,8 @@ import { UserQuestionState } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
 import QuizQuestion from './QuizQuestion'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
@@ -30,10 +30,11 @@ jest.mock('services/quiz.service', () => {
   })
 })
 
-jest.mock('components/Quiz/QuizCustomQuestionContent', () => () => (
-  <div id="quizcustomquestioncontent" />
-))
-jest.mock('components/Quiz/QuizQuestionContent', () => () => (
+jest.mock(
+  'components/Quiz/QuizQuestion/QuizQuestionContentCustom',
+  () => () => <div id="QuizQuestionContentCustom" />
+)
+jest.mock('components/Quiz/QuizQuestion/QuizQuestionContent', () => () => (
   <div id="quizquestioncontent" />
 ))
 
@@ -50,7 +51,7 @@ describe('QuizQuestion component', () => {
       </Provider>
     )
     expect(wrapper.find('#quizquestioncontent').exists()).toBeTruthy()
-    expect(wrapper.find('#quizcustomquestioncontent').exists()).toBeFalsy()
+    expect(wrapper.find('#QuizQuestionContentCustom').exists()).toBeFalsy()
   })
 
   it('should be rendered correctly with customQuestion', () => {
@@ -66,6 +67,6 @@ describe('QuizQuestion component', () => {
       </Provider>
     )
     expect(wrapper.find('#quizquestioncontent').exists()).toBeFalsy()
-    expect(wrapper.find('#quizcustomquestioncontent').exists()).toBeTruthy()
+    expect(wrapper.find('#QuizQuestionContentCustom').exists()).toBeTruthy()
   })
 })
diff --git a/src/components/Quiz/QuizQuestion.tsx b/src/components/Quiz/QuizQuestion/QuizQuestion.tsx
similarity index 88%
rename from src/components/Quiz/QuizQuestion.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestion.tsx
index bd2feb8ca0a5798827c7d9209ba069a97ed55cc9..f8f13cc7245f9619ecc00e1330021d8edc22e6ae 100644
--- a/src/components/Quiz/QuizQuestion.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestion.tsx
@@ -1,17 +1,14 @@
-import QuizCustomQuestionContent from 'components/Quiz/QuizCustomQuestionContent'
-import QuizQuestionContent from 'components/Quiz/QuizQuestionContent'
-import { useClient } from 'cozy-client'
+import { Client, useClient } from 'cozy-client'
 import { QuestionEntity, UserChallenge } from 'models'
 import React, { useEffect, useState } from 'react'
 import { useNavigate } from 'react-router-dom'
 import QuizService from 'services/quiz.service'
 import { useAppSelector } from 'store/hooks'
+import QuizQuestionContent from './QuizQuestionContent'
+import QuizQuestionContentCustom from './QuizQuestionContentCustom'
 import './quizQuestion.scss'
 
 const QuizQuestion = ({ userChallenge }: { userChallenge: UserChallenge }) => {
-  const client = useClient()
-  const navigate = useNavigate()
-  const { fluidTypes } = useAppSelector(state => state.ecolyo.global)
   const questionsIsLocked: boolean = userChallenge.quiz.questions.some(
     answer => answer.result == 0
   )
@@ -21,6 +18,9 @@ const QuizQuestion = ({ userChallenge }: { userChallenge: UserChallenge }) => {
   )
   const [customQuestionLoading, setCustomQuestionLoading] =
     useState<boolean>(false)
+  const client: Client = useClient()
+  const { fluidTypes } = useAppSelector(state => state.ecolyo.global)
+  const navigate = useNavigate()
 
   const goBack = () => {
     navigate('/challenges')
@@ -52,7 +52,7 @@ const QuizQuestion = ({ userChallenge }: { userChallenge: UserChallenge }) => {
   return (
     <>
       {isCustomQuest ? (
-        <QuizCustomQuestionContent
+        <QuizQuestionContentCustom
           userChallenge={userChallenge}
           goBack={goBack}
           question={question}
diff --git a/src/components/Quiz/QuizQuestionContent.spec.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
similarity index 85%
rename from src/components/Quiz/QuizQuestionContent.spec.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
index 093cc6be3f6adea33ade325d2a40a260eda3a357..26972046496b3703741bb194be32755f30942399 100644
--- a/src/components/Quiz/QuizQuestionContent.spec.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
@@ -1,9 +1,9 @@
-import QuizQuestionContent from 'components/Quiz/QuizQuestionContent'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import QuizQuestionContent from './QuizQuestionContent'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Quiz/QuizQuestionContent.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContent.tsx
similarity index 97%
rename from src/components/Quiz/QuizQuestionContent.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestionContent.tsx
index fb45ffb81ba3dff6a5f71d159227df1e0af4b21a..d26f33bdf25806fbd65d662ea7880aefede3d37e 100644
--- a/src/components/Quiz/QuizQuestionContent.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContent.tsx
@@ -1,8 +1,8 @@
 import Button from '@material-ui/core/Button'
 import CloseIcon from 'assets/icons/ico/close.svg'
 import StyledIconButton from 'components/CommonKit/IconButton/StyledIconButton'
-import QuizExplanationModal from 'components/Quiz/QuizExplanationModal'
-import { useClient } from 'cozy-client'
+import QuizExplanationModal from 'components/Quiz/QuizExplanationModal/QuizExplanationModal'
+import { Client, useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { UserChallengeUpdateFlag } from 'enums'
 import { Answer, UserChallenge, UserQuiz } from 'models'
@@ -25,7 +25,7 @@ const QuizQuestionContent = ({
   goBack,
 }: QuizQuestionContent) => {
   const { t } = useI18n()
-  const client = useClient()
+  const client: Client = useClient()
   const dispatch = useAppDispatch()
   const questionIndexLocked = userChallenge.quiz.questions.findIndex(
     answer => answer.result == 0
diff --git a/src/components/Quiz/QuizCustomQuestionContent.spec.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
similarity index 86%
rename from src/components/Quiz/QuizCustomQuestionContent.spec.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
index 5f355a86cc4ff97a396c63087da544c77521b738..9b42e7b327cc6fd22e150b50371d3d50ed436d2a 100644
--- a/src/components/Quiz/QuizCustomQuestionContent.spec.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
@@ -3,11 +3,11 @@ import Loader from 'components/Loader/Loader'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { questionEntity } from '../../../tests/__mocks__/quizData.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import QuizCustomQuestionContent from './QuizCustomQuestionContent'
-import QuizExplanationModal from './QuizExplanationModal'
+import { questionEntity } from 'tests/__mocks__/quizData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import QuizExplanationModal from '../QuizExplanationModal/QuizExplanationModal'
+import QuizQuestionContentCustom from './QuizQuestionContentCustom'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
@@ -48,7 +48,7 @@ describe('QuizCustomQuestionContent component', () => {
   it('should be rendered correctly', () => {
     const wrapper = mount(
       <Provider store={store}>
-        <QuizCustomQuestionContent
+        <QuizQuestionContentCustom
           userChallenge={userChallengeData[0]}
           question={questionEntity}
           goBack={mockHistoryPush('/challenges')}
@@ -68,7 +68,7 @@ describe('QuizCustomQuestionContent component', () => {
   it('should be rendered correctly with loader', () => {
     const wrapper = mount(
       <Provider store={store}>
-        <QuizCustomQuestionContent
+        <QuizQuestionContentCustom
           userChallenge={userChallengeData[0]}
           question={questionEntity}
           goBack={mockHistoryPush('/challenges')}
@@ -81,7 +81,7 @@ describe('QuizCustomQuestionContent component', () => {
   it('should display QuizExplanationModal when click on Button', () => {
     const wrapper = mount(
       <Provider store={store}>
-        <QuizCustomQuestionContent
+        <QuizQuestionContentCustom
           userChallenge={userChallengeData[0]}
           question={questionEntity}
           goBack={mockHistoryPush('/challenges')}
diff --git a/src/components/Quiz/QuizCustomQuestionContent.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.tsx
similarity index 94%
rename from src/components/Quiz/QuizCustomQuestionContent.tsx
rename to src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.tsx
index 004ff688312bb209a7fa6c794a72bd7ce3ba12f5..dc55ae0a7c5bbf1d27d927f5419f4b26e739b256 100644
--- a/src/components/Quiz/QuizCustomQuestionContent.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.tsx
@@ -2,8 +2,8 @@ import Button from '@material-ui/core/Button'
 import CloseIcon from 'assets/icons/ico/close.svg'
 import StyledIconButton from 'components/CommonKit/IconButton/StyledIconButton'
 import Loader from 'components/Loader/Loader'
-import QuizExplanationModal from 'components/Quiz/QuizExplanationModal'
-import { useClient } from 'cozy-client'
+import QuizExplanationModal from 'components/Quiz/QuizExplanationModal/QuizExplanationModal'
+import { Client, useClient } from 'cozy-client'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import { UsageEventType, UserChallengeUpdateFlag } from 'enums'
 import { Answer, QuestionEntity, UserChallenge, UserQuiz } from 'models'
@@ -15,21 +15,21 @@ import { updateUserChallengeList } from 'store/challenge/challenge.slice'
 import { useAppDispatch } from 'store/hooks'
 import './quizQuestion.scss'
 
-interface QuizCustomQuestionContent {
+interface QuizQuestionContentCustomProps {
   userChallenge: UserChallenge
   goBack: () => void
   question: QuestionEntity | undefined
   isLoading: boolean
 }
 
-const QuizCustomQuestionContent = ({
+const QuizQuestionContentCustom = ({
   userChallenge,
   goBack,
   question,
   isLoading,
-}: QuizCustomQuestionContent) => {
+}: QuizQuestionContentCustomProps) => {
   const { t } = useI18n()
-  const client = useClient()
+  const client: Client = useClient()
   const dispatch = useAppDispatch()
 
   const [userChoice, setUserChoice] = useState<string>('')
@@ -148,4 +148,4 @@ const QuizCustomQuestionContent = ({
   )
 }
 
-export default QuizCustomQuestionContent
+export default QuizQuestionContentCustom
diff --git a/src/components/Quiz/quizQuestion.scss b/src/components/Quiz/QuizQuestion/quizQuestion.scss
similarity index 100%
rename from src/components/Quiz/quizQuestion.scss
rename to src/components/Quiz/QuizQuestion/quizQuestion.scss
diff --git a/src/components/Quiz/QuizView.spec.tsx b/src/components/Quiz/QuizView.spec.tsx
index 5ba5d28c28415793544210b77c7f840290ee70d0..7ad781c8af5631392fef6ca525cbf8745f925b2a 100644
--- a/src/components/Quiz/QuizView.spec.tsx
+++ b/src/components/Quiz/QuizView.spec.tsx
@@ -4,15 +4,12 @@ import { mount } from 'enzyme'
 import { ChallengeState } from 'models'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { challengeStateData } from '../../../tests/__mocks__/challengeStateData.mock'
-import {
-  createMockEcolyoStore,
-  mockGlobalState,
-} from '../../../tests/__mocks__/store'
-import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
-import QuizBegin from './QuizBegin'
-import QuizFinish from './QuizFinish'
-import QuizQuestion from './QuizQuestion'
+import { challengeStateData } from 'tests/__mocks__/challengeStateData.mock'
+import { createMockEcolyoStore, mockGlobalState } from 'tests/__mocks__/store'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import QuizBegin from './QuizBegin/QuizBegin'
+import QuizFinish from './QuizFinish/QuizFinish'
+import QuizQuestion from './QuizQuestion/QuizQuestion'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
   useI18n: jest.fn(() => ({
diff --git a/src/components/Quiz/QuizView.tsx b/src/components/Quiz/QuizView.tsx
index 7b1dcd04bb2f63083c7bdffcc376e71f1f339a44..604e6e3a540ceb8d1454abe1b344876b7d67b8e9 100644
--- a/src/components/Quiz/QuizView.tsx
+++ b/src/components/Quiz/QuizView.tsx
@@ -5,9 +5,9 @@ import { UserQuizState } from 'enums'
 import { UserChallenge } from 'models'
 import React, { useState } from 'react'
 import { useAppSelector } from 'store/hooks'
-import QuizBegin from './QuizBegin'
-import QuizFinish from './QuizFinish'
-import QuizQuestion from './QuizQuestion'
+import QuizBegin from './QuizBegin/QuizBegin'
+import QuizFinish from './QuizFinish/QuizFinish'
+import QuizQuestion from './QuizQuestion/QuizQuestion'
 
 const QuizView = () => {
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
diff --git a/src/components/Home/ReleaseNotesModal.scss b/src/components/ReleaseNotesModal/ReleaseNotesModal.scss
similarity index 100%
rename from src/components/Home/ReleaseNotesModal.scss
rename to src/components/ReleaseNotesModal/ReleaseNotesModal.scss
diff --git a/src/components/Home/ReleaseNotesModal.tsx b/src/components/ReleaseNotesModal/ReleaseNotesModal.tsx
similarity index 100%
rename from src/components/Home/ReleaseNotesModal.tsx
rename to src/components/ReleaseNotesModal/ReleaseNotesModal.tsx
diff --git a/src/components/Routes/Routes.tsx b/src/components/Routes/Routes.tsx
index 327ed1389126c16dffaa7db15e7adc58a3ad111d..259830e52e4c14771f18f5d2f047accdab59ebad 100644
--- a/src/components/Routes/Routes.tsx
+++ b/src/components/Routes/Routes.tsx
@@ -3,10 +3,10 @@ import ChallengeView from 'components/Challenge/ChallengeView'
 import SgeConnectView from 'components/Connection/SGEConnect/SgeConnectView'
 import DuelView from 'components/Duel/DuelView'
 import EcogestureFormView from 'components/EcogestureForm/EcogestureFormView'
-import EcogestureSelection from 'components/EcogestureSelection/EcogestureSelection'
+import EcogestureSelectionView from 'components/EcogestureSelection/EcogestureSelectionView'
 import ExplorationView from 'components/Exploration/ExplorationView'
 import Loader from 'components/Loader/Loader'
-import UnSubscribe from 'components/Options/Unsubscribe/UnSubscribe'
+import UnSubscribeView from 'components/Options/Unsubscribe/UnSubscribeView'
 import QuizView from 'components/Quiz/QuizView'
 import TermsView from 'components/Terms/TermsView'
 import { FluidType } from 'enums'
@@ -14,12 +14,14 @@ import { TermsStatus } from 'models'
 import React, { lazy, Suspense } from 'react'
 import { Navigate, Route, Routes } from 'react-router-dom'
 
-const ConsumptionView = lazy(() => import('components/Home/ConsumptionView'))
-const EcogestureView = lazy(
-  () => import('components/Ecogesture/EcogestureView')
+const ConsumptionView = lazy(
+  () => import('components/Consumption/ConsumptionView')
 )
-const SingleEcogesture = lazy(
-  () => import('components/Ecogesture/SingleEcogesture')
+const EcogestureTabsView = lazy(
+  () => import('components/Ecogesture/EcogestureTabsView')
+)
+const SingleEcogestureView = lazy(
+  () => import('components/Ecogesture/SingleEcogestureView')
 )
 const OptionsView = lazy(() => import('components/Options/OptionsView'))
 const LegalNoticeView = lazy(
@@ -77,24 +79,20 @@ const AppRoutes = ({ termsStatus }: { termsStatus: TermsStatus }) => {
             <Route path="/ecogesture-form" element={<EcogestureFormView />} />
             <Route
               path="/ecogesture-selection"
-              element={<EcogestureSelection />}
-            />
-            <Route
-              path="/ecogesture/:ecogestureID/:tab"
-              element={<SingleEcogesture />}
+              element={<EcogestureSelectionView />}
             />
             <Route
               path="/ecogesture/:ecogestureID"
-              element={<SingleEcogesture />}
+              element={<SingleEcogestureView />}
             />
-            <Route path="/ecogestures" element={<EcogestureView />} />
+            <Route path="/ecogestures" element={<EcogestureTabsView />} />
             <Route path="/options/legalnotice" element={<LegalNoticeView />} />
             <Route path="/options/gcu" element={<GCUView />} />
             <Route path="/options/:connectParam" element={<OptionsView />} />
             <Route path="/options" element={<OptionsView />} />
             <Route path="/analysis" element={<AnalysisView />} />
             <Route path="/profiletype" element={<ProfileTypeView />} />
-            <Route path="/unsubscribe" element={<UnSubscribe />} />
+            <Route path="/unsubscribe" element={<UnSubscribeView />} />
             <Route path="*" element={<Navigate replace to="/consumption" />} />
           </>
         )}
diff --git a/src/components/Splash/SplashRoot.spec.tsx b/src/components/Splash/SplashRoot.spec.tsx
index c07b9314a0caca8a0cd1b60c51fdfde22d7c4de1..cffe3f6e0cbf9cbd88ff3577e541a6ead3619bfe 100644
--- a/src/components/Splash/SplashRoot.spec.tsx
+++ b/src/components/Splash/SplashRoot.spec.tsx
@@ -2,7 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import SplashRoot from './SplashRoot'
 
 jest.mock('@sentry/react', () => ({
diff --git a/src/components/Terms/DataShareConsentContent.spec.tsx b/src/components/Terms/DataShareConsentContent.spec.tsx
index f214a294738ad15c7c6dab80cef32facefc5b600..1e856af6ed8e092fc57a2182907d8931bf0cddad 100644
--- a/src/components/Terms/DataShareConsentContent.spec.tsx
+++ b/src/components/Terms/DataShareConsentContent.spec.tsx
@@ -2,7 +2,7 @@ import { mount } from 'enzyme'
 import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import DataShareConsentContent from './DataShareConsentContent'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/Terms/TermsView.spec.tsx b/src/components/Terms/TermsView.spec.tsx
index a987bed917cd3bc518567d191082914ce2f7e092..cc905cb48f1118962a2c8df342437c5492096bef 100644
--- a/src/components/Terms/TermsView.spec.tsx
+++ b/src/components/Terms/TermsView.spec.tsx
@@ -4,8 +4,8 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as storeHooks from 'store/hooks'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
-import { mockUpToDateTerm } from '../../../tests/__mocks__/termsData.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
+import { mockUpToDateTerm } from 'tests/__mocks__/termsData.mock'
 import TermsView from './TermsView'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/TotalConsumption/TotalConsumption.spec.tsx b/src/components/TotalConsumption/TotalConsumption.spec.tsx
index 91f52d6c6566f53d76c9e07a94f8e939ddeb11bd..3a80eab66113b3bcbd6bffe4a5e3761344ee829b 100644
--- a/src/components/TotalConsumption/TotalConsumption.spec.tsx
+++ b/src/components/TotalConsumption/TotalConsumption.spec.tsx
@@ -2,12 +2,9 @@ import { FluidType, TimeStep } from 'enums'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
-import { graphData } from '../../../tests/__mocks__/chartData.mock'
-import {
-  createMockEcolyoStore,
-  mockChartState,
-} from '../../../tests/__mocks__/store'
-import { waitForComponentToPaint } from '../../../tests/__mocks__/testUtils'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import { createMockEcolyoStore, mockChartState } from 'tests/__mocks__/store'
+import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import TotalConsumption from './TotalConsumption'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/components/WelcomeModal/WelcomeModal.spec.tsx b/src/components/WelcomeModal/WelcomeModal.spec.tsx
index 4a60f98b83a083cf32c87f69d3b6e695a3ab99fa..d22a87a296654ac10bbc8468516d7de7f101a1e7 100644
--- a/src/components/WelcomeModal/WelcomeModal.spec.tsx
+++ b/src/components/WelcomeModal/WelcomeModal.spec.tsx
@@ -4,8 +4,8 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as profileActions from 'store/profile/profile.actions'
-import mockClient from '../../../tests/__mocks__/client'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import mockClient from 'tests/__mocks__/client'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import WelcomeModal from './WelcomeModal'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => ({
diff --git a/src/migrations/migration.service.spec.ts b/src/migrations/migration.service.spec.ts
index 5e717326c8935395fdbb16f34c5b600f75dd7e55..4474c7db3eb7c3c586f3b4864939d67986d6f43b 100644
--- a/src/migrations/migration.service.spec.ts
+++ b/src/migrations/migration.service.spec.ts
@@ -3,7 +3,7 @@ import { PROFILE_DOCTYPE } from 'doctypes'
 import { Profile } from 'models'
 import { Notes } from 'models/releaseNotes.model'
 import { Schema } from 'models/schema.models'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import * as Migrate from './migration'
 import { MIGRATION_RESULT_FAILED } from './migration.data'
 import { MigrationService } from './migration.service'
diff --git a/src/migrations/migration.spec.ts b/src/migrations/migration.spec.ts
index 4de21c9a970505d44c178bde3d3e657669cdd3f3..c07a3181a75b55484bcb3d6898d2bf6bf1f839a3 100644
--- a/src/migrations/migration.spec.ts
+++ b/src/migrations/migration.spec.ts
@@ -2,8 +2,8 @@ import { QueryResult } from 'cozy-client'
 import { FLUIDSPRICES_DOCTYPE, PROFILE_DOCTYPE } from 'doctypes'
 import { FluidPrice, Profile } from 'models'
 import { Schema } from 'models/schema.models'
-import mockClient from '../../tests/__mocks__/client'
-import { mockProfileState } from '../../tests/__mocks__/store'
+import mockClient from 'tests/__mocks__/client'
+import { mockProfileState } from 'tests/__mocks__/store'
 import { migrate, migrationLog } from './migration'
 import {
   MIGRATION_RESULT_COMPLETE,
diff --git a/src/services/account.service.spec.ts b/src/services/account.service.spec.ts
index c1d2d227ce6d8c200344f1c4e25438f8341f23c3..fea058abfdf7fd6103e6f6a6618090177f695b50 100644
--- a/src/services/account.service.spec.ts
+++ b/src/services/account.service.spec.ts
@@ -2,10 +2,10 @@
 import { QueryResult } from 'cozy-client'
 import * as harvestLibAccounts from 'cozy-harvest-lib/dist/connections/accounts'
 import { Account, AccountAuthData } from 'models'
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
-import { triggersEnedisData } from '../../tests/__mocks__/triggersData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { triggersEnedisData } from 'tests/__mocks__/triggersData.mock'
 import AccountService from './account.service'
 
 jest.mock('cozy-harvest-lib/dist/connections/accounts')
diff --git a/src/services/action.service.spec.ts b/src/services/action.service.spec.ts
index 48f0c210f6762b043664ef3fbf114f0affcd392b..df7b19a1fb983d6d4f6ba54746320da3d14c5027 100644
--- a/src/services/action.service.spec.ts
+++ b/src/services/action.service.spec.ts
@@ -1,14 +1,14 @@
 import { Season, UserActionState } from 'enums'
 import { DateTime } from 'luxon'
 import { Ecogesture, UserAction } from 'models'
-import * as utils from 'utils/utils'
 import {
   AllEcogestureData,
   defaultEcogestureData,
   ecogestureDefault,
-} from '../../tests/__mocks__/actionData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { userChallengeData } from '../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/actionData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import * as utils from 'utils/utils'
 import ActionService from './action.service'
 
 const mockgetAllUserChallengeEntities = jest.fn()
diff --git a/src/services/challenge.service.spec.ts b/src/services/challenge.service.spec.ts
index 287719e29dd922450418be39eddef4518597ce5c..2b5c19152022e84c409189551cb03989a8d62222 100644
--- a/src/services/challenge.service.spec.ts
+++ b/src/services/challenge.service.spec.ts
@@ -21,14 +21,14 @@ import {
 import {
   allChallengeEntityData,
   challengeEntityData,
-} from '../../tests/__mocks__/challengeEntity.mock'
-import { graphData } from '../../tests/__mocks__/chartData.mock'
-import mockClient from '../../tests/__mocks__/client'
+} from 'tests/__mocks__/challengeEntity.mock'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import mockClient from 'tests/__mocks__/client'
 import {
   allDuelEntity,
   duelData,
   duelEntity,
-} from '../../tests/__mocks__/duelData.mock'
+} from 'tests/__mocks__/duelData.mock'
 import {
   explorationDefault,
   explorationEntity,
@@ -39,16 +39,16 @@ import {
   userExploration4,
   userExploration4_0,
   userExplorationUnlocked,
-} from '../../tests/__mocks__/explorationData.mock'
-import { fluidStatusData } from '../../tests/__mocks__/fluidStatusData.mock'
-import { quizEntity, userQuiz } from '../../tests/__mocks__/quizData.mock'
+} from 'tests/__mocks__/explorationData.mock'
+import { fluidStatusData } from 'tests/__mocks__/fluidStatusData.mock'
+import { quizEntity, userQuiz } from 'tests/__mocks__/quizData.mock'
 import {
   userChallengeData,
   userChallengeDefault,
   userChallengeExplo1OnGoing,
   userChallengeExplo4,
   userChallengeExplo4_0,
-} from '../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/userChallengeData.mock'
 import ChallengeService from './challenge.service'
 
 const mockGetExplorationEntityById = jest.fn()
diff --git a/src/services/connection.service.spec.ts b/src/services/connection.service.spec.ts
index 9b8e6910b4b8ca5791a3f6b404e1e3f6d5af462d..ae41efe92266ad48cdd6ddc46d403dcfc88ec184 100644
--- a/src/services/connection.service.spec.ts
+++ b/src/services/connection.service.spec.ts
@@ -1,8 +1,8 @@
 import { AccountAuthData } from 'models'
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
-import { triggersData } from '../../tests/__mocks__/triggersData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { triggersData } from 'tests/__mocks__/triggersData.mock'
 import ConnectionService from './connection.service'
 
 const mockGetKonnector = jest.fn()
diff --git a/src/services/consumption.service.spec.ts b/src/services/consumption.service.spec.ts
index 3e2c3019a203c0f3dd3b388592b42081975e7390..4ba1838b0f8695c96f9dec9a8fe08ace5412ffc3 100644
--- a/src/services/consumption.service.spec.ts
+++ b/src/services/consumption.service.spec.ts
@@ -10,10 +10,10 @@ import {
   FluidStatus,
   TimePeriod,
 } from 'models'
-import mockClient from '../../tests/__mocks__/client'
-import { fluidPrices } from '../../tests/__mocks__/fluidPrice.mock'
-import { fluidStatusConnectedData } from '../../tests/__mocks__/fluidStatusData.mock'
-import { loadDayData } from '../../tests/__mocks__/loadDayData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { fluidPrices } from 'tests/__mocks__/fluidPrice.mock'
+import { fluidStatusConnectedData } from 'tests/__mocks__/fluidStatusData.mock'
+import { loadDayData } from 'tests/__mocks__/loadDayData.mock'
 import ConsumptionDataManager from './consumption.service'
 
 const mockFetchFluidData = jest.fn()
diff --git a/src/services/consumptionFormatter.service.spec.ts b/src/services/consumptionFormatter.service.spec.ts
index 7b1a5db7fb73180746a9af4a7db4d2a1a2dcb7f9..bfcb9f2cbe4a65aa28eb9d109c6d24ff20c2d43b 100644
--- a/src/services/consumptionFormatter.service.spec.ts
+++ b/src/services/consumptionFormatter.service.spec.ts
@@ -1,7 +1,7 @@
 import { DataloadState, FluidType, TimeStep } from 'enums'
 import { DateTime } from 'luxon'
 import { Dataload, FluidStatus, TimePeriod } from 'models'
-import { fluidStatusConnectedData } from '../../tests/__mocks__/fluidStatusData.mock'
+import { fluidStatusConnectedData } from 'tests/__mocks__/fluidStatusData.mock'
 import ConsumptionFormatterService from './consumptionFormatter.service'
 
 const localSpy = jest.spyOn(DateTime, 'local')
diff --git a/src/services/customPopup.service.test.ts b/src/services/customPopup.service.test.ts
index 95201974937b73cc975c2b9f46afe90b983a8595..fbd69e543255dbc5ff9e977a6ecd5ec5b3ac7f35 100644
--- a/src/services/customPopup.service.test.ts
+++ b/src/services/customPopup.service.test.ts
@@ -1,5 +1,5 @@
-import mockClient from '../../tests/__mocks__/client'
-import { mockCustomPopup } from '../../tests/__mocks__/customPopup.mock'
+import mockClient from 'tests/__mocks__/client'
+import { mockCustomPopup } from 'tests/__mocks__/customPopup.mock'
 import CustomPopupService from './customPopup.service'
 
 jest.mock('services/environment.service', () => {
diff --git a/src/services/duel.service.spec.ts b/src/services/duel.service.spec.ts
index 3b40046d742acb0b85da884890bb166678493207..86db4ddc4da30da4640c7484676454c84313ec4a 100644
--- a/src/services/duel.service.spec.ts
+++ b/src/services/duel.service.spec.ts
@@ -3,17 +3,17 @@ import { FluidType, UserDuelState } from 'enums'
 import { DateTime, Duration } from 'luxon'
 import { DuelEntity, UserDuel } from 'models'
 import DuelService from 'services/duel.service'
-import { fullGraphData, graphData } from '../../tests/__mocks__/chartData.mock'
-import mockClient from '../../tests/__mocks__/client'
+import { fullGraphData, graphData } from 'tests/__mocks__/chartData.mock'
+import mockClient from 'tests/__mocks__/client'
 import {
   allDuelData,
   duelData,
   duelEntity,
-} from '../../tests/__mocks__/duelData.mock'
+} from 'tests/__mocks__/duelData.mock'
 import {
   fluidStatusConnectedData,
   fluidStatusData,
-} from '../../tests/__mocks__/fluidStatusData.mock'
+} from 'tests/__mocks__/fluidStatusData.mock'
 
 const mockGetPerformanceIndicators = jest.fn()
 const mockGetGraphData = jest.fn()
diff --git a/src/services/ecogesture.service.spec.ts b/src/services/ecogesture.service.spec.ts
index 30cd5ee552fbd5c4842a93eebe223a2ebd2bbeaf..db5c4424d0d4fb2745fadad377e8b274703e77b8 100644
--- a/src/services/ecogesture.service.spec.ts
+++ b/src/services/ecogesture.service.spec.ts
@@ -3,16 +3,16 @@ import ecogestureData from 'db/ecogestureData.json'
 import { EquipmentType, IndividualOrCollective, WarmingType } from 'enums'
 import { Ecogesture } from 'models'
 import { ProfileEcogesture } from 'models/profileEcogesture.model'
-import { hashFile } from 'utils/hash'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   BoilerEcogesture,
   BoilerEcogestureFalse,
   ecogesturesECSData,
   ecogesturesHeatingData,
   mockedEcogesturesData,
-} from '../../tests/__mocks__/ecogesturesData.mock'
-import { mockProfileEcogesture } from '../../tests/__mocks__/profileEcogesture.mock'
+} from 'tests/__mocks__/ecogesturesData.mock'
+import { mockProfileEcogesture } from 'tests/__mocks__/profileEcogesture.mock'
+import { hashFile } from 'utils/hash'
 import EcogestureService from './ecogesture.service'
 
 // Add types definition to json data
diff --git a/src/services/enedisMonthlyAnalysisData.service.spec.ts b/src/services/enedisMonthlyAnalysisData.service.spec.ts
index 3a5f15f44a8073bea2069c245bc55eae6f91d0a1..ee545f25b65d955de84d44c0401c616706498b09 100644
--- a/src/services/enedisMonthlyAnalysisData.service.spec.ts
+++ b/src/services/enedisMonthlyAnalysisData.service.spec.ts
@@ -1,13 +1,13 @@
 import { QueryResult } from 'cozy-client'
 import { EnedisMonthlyAnalysisData } from 'models/enedisMonthlyAnalysis'
 import { MaxPowerEntity } from 'models/maxPower.model'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   maxPowerData,
   mockDataLoadEnedisAnalysis,
   mockEnedisMonthlyAnalysis,
   mockEnedisMonthlyAnalysisArray,
-} from '../../tests/__mocks__/enedisMonthlyAnalysisData.mock'
+} from 'tests/__mocks__/enedisMonthlyAnalysisData.mock'
 import EnedisMonthlyAnalysisDataService from './enedisMonthlyAnalysisData.service'
 
 describe('Enedis Monthly Analysis service', () => {
diff --git a/src/services/exploration.service.spec.ts b/src/services/exploration.service.spec.ts
index f6c84e02eaf7b26b429b24823c0f1dd313619727..966588ab3a73bb935c6567f902cb5497a5f7bd29 100644
--- a/src/services/exploration.service.spec.ts
+++ b/src/services/exploration.service.spec.ts
@@ -1,18 +1,18 @@
 import { QueryResult } from 'cozy-client'
 import { UserExplorationState } from 'enums'
 import { ExplorationEntity, UserChallenge, UserExploration } from 'models'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   allExplorationEntities,
   explorationEntity,
   userExplorationDone,
   userExplorationStarted,
   userExplorationUnlocked,
-} from '../../tests/__mocks__/explorationData.mock'
+} from 'tests/__mocks__/explorationData.mock'
 import {
   userChallengeExplo1OnGoing,
   userChallengeExplo2OnGoing,
-} from '../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/userChallengeData.mock'
 import ExplorationService from './exploration.service'
 
 describe('Exploration service', () => {
diff --git a/src/services/fluid.service.spec.ts b/src/services/fluid.service.spec.ts
index e5e3694f204b7b94b63f69662054bd218a238f4c..26c3114ba4afaf6b84b6a3911408969362d87ff6 100644
--- a/src/services/fluid.service.spec.ts
+++ b/src/services/fluid.service.spec.ts
@@ -2,11 +2,11 @@
 import { FluidSlugType, FluidState, FluidType } from 'enums'
 import { DateTime } from 'luxon'
 import { FluidStatus } from 'models'
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
-import { triggerStateData } from '../../tests/__mocks__/triggerStateData.mock'
-import { triggersData } from '../../tests/__mocks__/triggersData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { triggerStateData } from 'tests/__mocks__/triggerStateData.mock'
+import { triggersData } from 'tests/__mocks__/triggersData.mock'
 import FluidService from './fluid.service'
 
 const mockGetAccountByType = jest.fn()
diff --git a/src/services/fluidsPrices.service.spec.ts b/src/services/fluidsPrices.service.spec.ts
index 0e2a551a32f6e168238dae1649f09429d5148e08..f1455d8a27f36cb6a10135f317f6bcf42599459d 100644
--- a/src/services/fluidsPrices.service.spec.ts
+++ b/src/services/fluidsPrices.service.spec.ts
@@ -2,11 +2,11 @@ import { QueryResult } from 'cozy-client'
 import { FluidType } from 'enums'
 import { DateTime } from 'luxon'
 import { FluidPrice } from 'models'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   allLastFluidPrices,
   fluidPrices,
-} from '../../tests/__mocks__/fluidPrice.mock'
+} from 'tests/__mocks__/fluidPrice.mock'
 import FluidPricesService from './fluidsPrices.service'
 
 describe('FluidPrices service', () => {
diff --git a/src/services/initialization.service.spec.ts b/src/services/initialization.service.spec.ts
index b8a43812700f8a7c6014351d9b7c355d09592bc9..fe608098c1e6f7d4ddc9426357ac6991399bd4ec 100644
--- a/src/services/initialization.service.spec.ts
+++ b/src/services/initialization.service.spec.ts
@@ -6,22 +6,22 @@ import quizEntityData from 'db/quizEntity.json'
 import { FluidType } from 'enums'
 import { DateTime } from 'luxon'
 import { Profile, UserChallenge } from 'models'
-import { getActualAnalysisDate } from 'utils/date'
-import { hashFile } from 'utils/hash'
-import { allChallengeEntityData } from '../../tests/__mocks__/challengeEntity.mock'
-import { graphData } from '../../tests/__mocks__/chartData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { allDuelEntity } from '../../tests/__mocks__/duelData.mock'
-import { allExplorationEntities } from '../../tests/__mocks__/explorationData.mock'
-import { fluidPrices } from '../../tests/__mocks__/fluidPrice.mock'
-import { fluidStatusData } from '../../tests/__mocks__/fluidStatusData.mock'
-import { allQuizEntities } from '../../tests/__mocks__/quizData.mock'
-import { mockProfileState } from '../../tests/__mocks__/store'
+import { allChallengeEntityData } from 'tests/__mocks__/challengeEntity.mock'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { allDuelEntity } from 'tests/__mocks__/duelData.mock'
+import { allExplorationEntities } from 'tests/__mocks__/explorationData.mock'
+import { fluidPrices } from 'tests/__mocks__/fluidPrice.mock'
+import { fluidStatusData } from 'tests/__mocks__/fluidStatusData.mock'
+import { allQuizEntities } from 'tests/__mocks__/quizData.mock'
+import { mockProfileState } from 'tests/__mocks__/store'
 import {
   mockOutdatedTerm,
   mockUpToDateTerm,
-} from '../../tests/__mocks__/termsData.mock'
-import { userChallengeData } from '../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/termsData.mock'
+import { userChallengeData } from 'tests/__mocks__/userChallengeData.mock'
+import { getActualAnalysisDate } from 'utils/date'
+import { hashFile } from 'utils/hash'
 import InitializationService from './initialization.service'
 
 const mockCreateIndexKonnector = jest.fn()
diff --git a/src/services/konnector.service.spec.ts b/src/services/konnector.service.spec.ts
index 844fa0748a3415d23276f0b56e0fb98d804414e3..d13fc9c5f119218c3e0527efcf68d527897c2589 100644
--- a/src/services/konnector.service.spec.ts
+++ b/src/services/konnector.service.spec.ts
@@ -1,10 +1,10 @@
 import { QueryResult } from 'cozy-client'
 import { Konnector } from 'models'
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
-import { triggersData } from '../../tests/__mocks__/triggersData.mock'
-import { triggerStateData } from '../../tests/__mocks__/triggerStateData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { triggerStateData } from 'tests/__mocks__/triggerStateData.mock'
+import { triggersData } from 'tests/__mocks__/triggersData.mock'
 import KonnectorService from './konnector.service'
 
 const mockGetTrigger = jest.fn()
diff --git a/src/services/konnectorStatus.service.spec.ts b/src/services/konnectorStatus.service.spec.ts
index 2f4a8a7864398235aa82c6f92c4c67ed0c7fa4ba..8363fb7e41eed435cefd8b1150434a443ef95b2a 100644
--- a/src/services/konnectorStatus.service.spec.ts
+++ b/src/services/konnectorStatus.service.spec.ts
@@ -1,5 +1,5 @@
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
 import KonnectorStatusService from './konnectorStatus.service'
 
 const mockGetAccountByType = jest.fn()
diff --git a/src/services/mail.service.spec.ts b/src/services/mail.service.spec.ts
index b67f09c8fb724dec1a27fe63beea7360c2d33c2b..b18adf458dad610fc87334ab389df431f0972c65 100644
--- a/src/services/mail.service.spec.ts
+++ b/src/services/mail.service.spec.ts
@@ -1,4 +1,4 @@
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import MailService from './mail.service'
 
 describe('Mail service', () => {
diff --git a/src/services/partnersInfo.service.spec.ts b/src/services/partnersInfo.service.spec.ts
index ffb46973ef0254e7772d44917dfe3565a880f38f..e6d00896edac3059ab1fd874c960978b1cc48d1d 100644
--- a/src/services/partnersInfo.service.spec.ts
+++ b/src/services/partnersInfo.service.spec.ts
@@ -1,5 +1,5 @@
 import { PartnersInfo } from 'models/partnersInfo.model'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import PartnersInfoService from './partnersInfo.service'
 
 jest.mock('services/environment.service', () => {
diff --git a/src/services/profile.service.spec.ts b/src/services/profile.service.spec.ts
index c699a6559b8abe6c7beb5558c2937983fd9301ec..e23cf9877fb13d3404c8f4ce9ee8416183f5efec 100644
--- a/src/services/profile.service.spec.ts
+++ b/src/services/profile.service.spec.ts
@@ -1,8 +1,8 @@
 import { QueryResult } from 'cozy-client'
 import { DateTime } from 'luxon'
 import { Profile } from 'models'
-import mockClient from '../../tests/__mocks__/client'
-import { mockProfileState } from '../../tests/__mocks__/store'
+import mockClient from 'tests/__mocks__/client'
+import { mockProfileState } from 'tests/__mocks__/store'
 import ProfileService from './profile.service'
 
 describe('UserProfile service', () => {
diff --git a/src/services/profileEcogesture.service.spec.ts b/src/services/profileEcogesture.service.spec.ts
index 79974fbc44a2e0cb56de5f9dd5d151274549421e..a5271479517b324b3d10fa8171cb1d4942c1207e 100644
--- a/src/services/profileEcogesture.service.spec.ts
+++ b/src/services/profileEcogesture.service.spec.ts
@@ -1,8 +1,8 @@
 import { QueryResult } from 'cozy-client'
 import { EquipmentType } from 'enums'
 import { ProfileEcogesture } from 'models/profileEcogesture.model'
-import mockClient from '../../tests/__mocks__/client'
-import { mockProfileEcogestureUpdated } from '../../tests/__mocks__/profileEcogesture.mock'
+import mockClient from 'tests/__mocks__/client'
+import { mockProfileEcogestureUpdated } from 'tests/__mocks__/profileEcogesture.mock'
 import ProfileEcogestureService from './profileEcogesture.service'
 
 const profileEcogestureService = new ProfileEcogestureService(mockClient)
diff --git a/src/services/profileType.service.spec.ts b/src/services/profileType.service.spec.ts
index 42993963cfc34ad18f2efe55d2c19f1f175d9d71..fc9dc8e3be3fc03e20381cf6d5f58039e74ede58 100644
--- a/src/services/profileType.service.spec.ts
+++ b/src/services/profileType.service.spec.ts
@@ -10,7 +10,7 @@ import {
 } from 'enums'
 import { DateTime } from 'luxon'
 import { ProfileType } from 'models/profileType.model'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   mockCorrectedConsumption,
   mockEstimatedConsumption,
@@ -36,7 +36,7 @@ import {
   mockTestProfile3,
   mockWaterRawNeeds,
   mockWaterSpreadNeeds,
-} from '../../tests/__mocks__/profileType.mock'
+} from 'tests/__mocks__/profileType.mock'
 import ProfileTypeService from './profileType.service'
 import ProfileTypeFormService from './profileTypeForm.service'
 
diff --git a/src/services/profileTypeEntity.service.spec.ts b/src/services/profileTypeEntity.service.spec.ts
index 1fc0e9b6615d78e35e6ae087f6c0cd743dece966..a1b91cc8cec4fe419595209ce77b2f7a43c48dbf 100644
--- a/src/services/profileTypeEntity.service.spec.ts
+++ b/src/services/profileTypeEntity.service.spec.ts
@@ -1,7 +1,7 @@
 import { QueryResult } from 'cozy-client'
 import { ProfileType } from 'models'
-import mockClient from '../../tests/__mocks__/client'
-import { profileTypeData } from '../../tests/__mocks__/profileType.mock'
+import mockClient from 'tests/__mocks__/client'
+import { profileTypeData } from 'tests/__mocks__/profileType.mock'
 import ProfileTypeEntityService from './profileTypeEntity.service'
 
 describe('UserProfileTypeEntity service', () => {
diff --git a/src/services/queryRunner.service.spec.ts b/src/services/queryRunner.service.spec.ts
index 79bde6490903cce77020f228612f5116fb4f9f03..9627d2adfdaf906a5f5683b911373c538032b655 100644
--- a/src/services/queryRunner.service.spec.ts
+++ b/src/services/queryRunner.service.spec.ts
@@ -2,11 +2,11 @@ import { QueryResult } from 'cozy-client'
 import { DataloadState, FluidType, TimeStep } from 'enums'
 import { DateTime } from 'luxon'
 import { Dataload, DataloadEntity } from 'models'
-import mockClient from '../../tests/__mocks__/client'
-import { loadDayData } from '../../tests/__mocks__/loadDayData.mock'
-import { loadMinuteData } from '../../tests/__mocks__/loadMinuteData.mock'
-import { loadMonthData } from '../../tests/__mocks__/loadMonthData.mock'
-import { loadYearData } from '../../tests/__mocks__/loadYearData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { loadDayData } from 'tests/__mocks__/loadDayData.mock'
+import { loadMinuteData } from 'tests/__mocks__/loadMinuteData.mock'
+import { loadMonthData } from 'tests/__mocks__/loadMonthData.mock'
+import { loadYearData } from 'tests/__mocks__/loadYearData.mock'
 import QueryRunner from './queryRunner.service'
 
 const unknownTimeStep = 99 as TimeStep
diff --git a/src/services/quiz.service.spec.ts b/src/services/quiz.service.spec.ts
index d9673eb4b123808768e903d6099414f115edef45..9e5e91850849aaf19bf72e13ab02723e18ab8d05 100644
--- a/src/services/quiz.service.spec.ts
+++ b/src/services/quiz.service.spec.ts
@@ -19,8 +19,8 @@ import {
   fullMonthGraphData,
   graphData,
   graphMonthData,
-} from '../../tests/__mocks__/chartData.mock'
-import mockClient from '../../tests/__mocks__/client'
+} from 'tests/__mocks__/chartData.mock'
+import mockClient from 'tests/__mocks__/client'
 import {
   UserQuizDone,
   UserQuizReseted,
@@ -30,7 +30,7 @@ import {
   quizDefault,
   quizEntity,
   userQuiz,
-} from '../../tests/__mocks__/quizData.mock'
+} from 'tests/__mocks__/quizData.mock'
 import QuizService from './quiz.service'
 
 const localSpy = jest.spyOn(DateTime, 'local')
diff --git a/src/services/terms.service.spec.ts b/src/services/terms.service.spec.ts
index 2d6e2768acae8a6e6ef1bb94b507b07b8ddade2f..08ba3d743a772d705e57c22e0fc795ff53b864d9 100644
--- a/src/services/terms.service.spec.ts
+++ b/src/services/terms.service.spec.ts
@@ -1,13 +1,13 @@
 import { QueryResult } from 'cozy-client'
 import { DateTime } from 'luxon'
 import { Term } from 'models'
-import mockClient from '../../tests/__mocks__/client'
-import mockConfig from '../../tests/__mocks__/mockConfig.mock'
+import mockClient from 'tests/__mocks__/client'
+import mockConfig from 'tests/__mocks__/mockConfig.mock'
 import {
   mockOutdatedTerm,
   mockTermsData,
   mockUpToDateTerm,
-} from '../../tests/__mocks__/termsData.mock'
+} from 'tests/__mocks__/termsData.mock'
 import TermsService from './terms.service'
 
 const localSpy = jest.spyOn(DateTime, 'local')
diff --git a/src/services/triggers.service.spec.ts b/src/services/triggers.service.spec.ts
index f4aabb01a55ccf0a6202d7b4b3a1bdb7b092d032..58b444dc71d7ad8f1b31f12f2db835f0eaf305c0 100644
--- a/src/services/triggers.service.spec.ts
+++ b/src/services/triggers.service.spec.ts
@@ -1,10 +1,10 @@
 import { QueryResult } from 'cozy-client'
 import { Trigger, TriggerState } from 'models'
-import { accountsData } from '../../tests/__mocks__/accountsData.mock'
-import mockClient from '../../tests/__mocks__/client'
-import { konnectorsData } from '../../tests/__mocks__/konnectorsData.mock'
-import { triggersData } from '../../tests/__mocks__/triggersData.mock'
-import { triggerStateData } from '../../tests/__mocks__/triggerStateData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import mockClient from 'tests/__mocks__/client'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { triggerStateData } from 'tests/__mocks__/triggerStateData.mock'
+import { triggersData } from 'tests/__mocks__/triggersData.mock'
 import TriggerService from './triggers.service'
 
 const mockCreateTrigger = jest.fn()
diff --git a/src/services/usageEvent.service.spec.ts b/src/services/usageEvent.service.spec.ts
index 3296cd2e5170dd75b0c2759a68c6124c4f08eda4..64aa8e84fa697a57666078143f72785e78e800a3 100644
--- a/src/services/usageEvent.service.spec.ts
+++ b/src/services/usageEvent.service.spec.ts
@@ -2,7 +2,7 @@ import { QueryResult } from 'cozy-client'
 import { UsageEventType } from 'enums'
 import { DateTime } from 'luxon'
 import { AddEventParams, UsageEventEntity } from 'models'
-import mockClient from '../../tests/__mocks__/client'
+import mockClient from 'tests/__mocks__/client'
 import {
   allUsageEventsData,
   connectionAttemptEGLError,
@@ -11,7 +11,7 @@ import {
   connectionUsageEventsData,
   usageEventData,
   usageEventEntityData,
-} from '../../tests/__mocks__/usageEventsData.mock'
+} from 'tests/__mocks__/usageEventsData.mock'
 import UsageEventService from './usageEvent.service'
 
 const localSpy = jest.spyOn(DateTime, 'local')
diff --git a/src/store/analysis/analysis.slice.spec.ts b/src/store/analysis/analysis.slice.spec.ts
index cfe3161895ece34893cce6e4250d1ccd9d1d247e..8e8ac488ee08b829a2b2493d8b5ccc9fb20bb851 100644
--- a/src/store/analysis/analysis.slice.spec.ts
+++ b/src/store/analysis/analysis.slice.spec.ts
@@ -1,5 +1,5 @@
 import { DateTime } from 'luxon'
-import { mockAnalysisState } from '../../../tests/__mocks__/store'
+import { mockAnalysisState } from 'tests/__mocks__/store'
 import { analysisSlice, setAnalysisMonth, setPeriod } from './analysis.slice'
 
 describe('analysis reducer', () => {
diff --git a/src/store/challenge/challenge.slice.spec.ts b/src/store/challenge/challenge.slice.spec.ts
index fe8d9a1ea76fa6500485d2964d76515ae249ead7..759c4c86823be1a0873a149863cd5718506207a4 100644
--- a/src/store/challenge/challenge.slice.spec.ts
+++ b/src/store/challenge/challenge.slice.spec.ts
@@ -1,11 +1,11 @@
 import { DataloadState, UserChallengeState } from 'enums'
 import { DateTime } from 'luxon'
 import { ChallengeState, Dataload, UserChallenge } from 'models'
-import { mockChallengeState } from '../../../tests/__mocks__/store'
+import { mockChallengeState } from 'tests/__mocks__/store'
 import {
   userChallengeData,
   userChallengeDefault,
-} from '../../../tests/__mocks__/userChallengeData.mock'
+} from 'tests/__mocks__/userChallengeData.mock'
 import {
   challengeSlice,
   setChallengeConsumption,
diff --git a/src/store/chart/chart.slice.spec.ts b/src/store/chart/chart.slice.spec.ts
index 3bade62d16b0452481158badd1558e359ca42edc..e0d04f15c9bcbd3d39a7a2777ee51f9ced145d26 100644
--- a/src/store/chart/chart.slice.spec.ts
+++ b/src/store/chart/chart.slice.spec.ts
@@ -1,7 +1,7 @@
 import { TimeStep } from 'enums'
 import { DateTime } from 'luxon'
-import { graphData } from '../../../tests/__mocks__/chartData.mock'
-import { mockChartState } from '../../../tests/__mocks__/store'
+import { graphData } from 'tests/__mocks__/chartData.mock'
+import { mockChartState } from 'tests/__mocks__/store'
 import {
   chartSlice,
   setCurrentDataChart,
diff --git a/src/store/global/global.slice.spec.ts b/src/store/global/global.slice.spec.ts
index 0d83f40b31762e2f49d52d1448c91eeec0528670..43f74e7bfe0c34d3bb534b966d7d62bd49132d7e 100644
--- a/src/store/global/global.slice.spec.ts
+++ b/src/store/global/global.slice.spec.ts
@@ -3,10 +3,10 @@ import { FluidSlugType, FluidState, FluidType, ScreenType, Usage } from 'enums'
 import { DateTime } from 'luxon'
 import { FluidStatus, PartnersInfo, TermsStatus } from 'models'
 import { SgeStore } from 'models/sgeStore.model'
-import { accountsData } from '../../../tests/__mocks__/accountsData.mock'
-import { konnectorsData } from '../../../tests/__mocks__/konnectorsData.mock'
-import { mockGlobalState } from '../../../tests/__mocks__/store'
-import { triggersData } from '../../../tests/__mocks__/triggersData.mock'
+import { accountsData } from 'tests/__mocks__/accountsData.mock'
+import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
+import { mockGlobalState } from 'tests/__mocks__/store'
+import { triggersData } from 'tests/__mocks__/triggersData.mock'
 import {
   changeScreenType,
   globalSlice,
diff --git a/src/store/modal/modal.slice.spec.ts b/src/store/modal/modal.slice.spec.ts
index 8ba681d55cf3ecfaaa0e615d17d5596e693bd2c2..f9f98b9a361882b03d822a27eb47db29a16dab92 100644
--- a/src/store/modal/modal.slice.spec.ts
+++ b/src/store/modal/modal.slice.spec.ts
@@ -1,6 +1,6 @@
 import { ModalState } from 'models'
-import { mockCustomPopup } from '../../../tests/__mocks__/customPopup.mock'
-import { mockModalState } from '../../../tests/__mocks__/store'
+import { mockCustomPopup } from 'tests/__mocks__/customPopup.mock'
+import { mockModalState } from 'tests/__mocks__/store'
 import {
   modalSlice,
   openConnectionModal,
diff --git a/src/store/profile/profile.action.spec.ts b/src/store/profile/profile.action.spec.ts
index bac7ff63cf8efe2454df8f859067983d6b51040e..3514e50cad202df07975b4caab6134815be9c97f 100644
--- a/src/store/profile/profile.action.spec.ts
+++ b/src/store/profile/profile.action.spec.ts
@@ -1,7 +1,4 @@
-import {
-  createMockEcolyoStore,
-  mockProfileState,
-} from '../../../tests/__mocks__/store'
+import { createMockEcolyoStore, mockProfileState } from 'tests/__mocks__/store'
 import { UPDATE_PROFILE, updateProfile } from './profile.actions'
 
 const mockUpdateProfile = jest.fn()
diff --git a/src/store/profile/profile.reducer.spec.ts b/src/store/profile/profile.reducer.spec.ts
index 7f3ef296d3edbd6368f79aba18ad0e09554ffa22..637260069d2e4b9477c9c654a32976e26931dc85 100644
--- a/src/store/profile/profile.reducer.spec.ts
+++ b/src/store/profile/profile.reducer.spec.ts
@@ -1,5 +1,5 @@
 import { defaultAction } from 'store/store'
-import { mockProfileState } from '../../../tests/__mocks__/store'
+import { mockProfileState } from 'tests/__mocks__/store'
 import { UPDATE_PROFILE } from './profile.actions'
 import { profileReducer } from './profile.reducer'
 
diff --git a/src/store/profileEcogesture/profileEcogesture.action.spec.ts b/src/store/profileEcogesture/profileEcogesture.action.spec.ts
index 9b4a93ec519b0f56d2a055eafecb96e0df47257c..45337183ac538c100c005897ca9c74964cce3d84 100644
--- a/src/store/profileEcogesture/profileEcogesture.action.spec.ts
+++ b/src/store/profileEcogesture/profileEcogesture.action.spec.ts
@@ -1,5 +1,5 @@
-import { mockProfileEcogesture } from '../../../tests/__mocks__/profileEcogesture.mock'
-import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
+import { mockProfileEcogesture } from 'tests/__mocks__/profileEcogesture.mock'
+import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import {
   UPDATE_PROFILE_ECOGESTURE,
   updateProfileEcogesture,
diff --git a/src/store/profileEcogesture/profileEcogesture.reducer.spec.ts b/src/store/profileEcogesture/profileEcogesture.reducer.spec.ts
index fad1d9947e64de3e11065bce36fee2d559efb7db..bd6e460239b73ac44d98e1a2081d45891e9fb9ad 100644
--- a/src/store/profileEcogesture/profileEcogesture.reducer.spec.ts
+++ b/src/store/profileEcogesture/profileEcogesture.reducer.spec.ts
@@ -2,7 +2,7 @@ import { defaultAction } from 'store/store'
 import {
   mockProfileEcogesture,
   mockProfileEcogestureUpdated,
-} from '../../../tests/__mocks__/profileEcogesture.mock'
+} from 'tests/__mocks__/profileEcogesture.mock'
 import { UPDATE_PROFILE_ECOGESTURE } from './profileEcogesture.actions'
 import { profileEcogestureReducer } from './profileEcogesture.reducer'
 
diff --git a/src/store/profileType/profileType.slice.spec.ts b/src/store/profileType/profileType.slice.spec.ts
index c23f76d7e35feb46bcbeded7a37e4845c0b53334..d359df254235ff64b45bfb2e7ea14daf509740ea 100644
--- a/src/store/profileType/profileType.slice.spec.ts
+++ b/src/store/profileType/profileType.slice.spec.ts
@@ -13,7 +13,7 @@ import {
 } from 'enums'
 import { DateTime } from 'luxon'
 import { ProfileType } from 'models'
-import { mockProfileTypeState } from '../../../tests/__mocks__/store'
+import { mockProfileTypeState } from 'tests/__mocks__/store'
 import { profileTypeSlice, setProfileType } from './profileType.slice'
 
 describe('profileType reducer', () => {
diff --git a/src/utils/date.spec.ts b/src/utils/date.spec.ts
index 9bed97a99fb06c100e6b87659f810b65aaf20ffe..2e3d5ee8c3b814c17f041def6f0f6a6c2fc4a9e0 100644
--- a/src/utils/date.spec.ts
+++ b/src/utils/date.spec.ts
@@ -1,7 +1,7 @@
 import { FluidType, TimeStep } from 'enums'
 import { DateTime } from 'luxon'
 import { Dataload } from 'models'
-import { graphData } from '../../tests/__mocks__/chartData.mock'
+import { graphData } from 'tests/__mocks__/chartData.mock'
 import {
   compareDates,
   convertDateToMonthYearString,
diff --git a/src/utils/hash.spec.ts b/src/utils/hash.spec.ts
index bc97808dec2ca2510587fd8e96605b1c16aff61b..0edc793c186e28d821bc301fadb7ddb7a2f5dd34 100644
--- a/src/utils/hash.spec.ts
+++ b/src/utils/hash.spec.ts
@@ -1,4 +1,4 @@
-import { mockedEcogesturesData } from '../../tests/__mocks__/ecogesturesData.mock'
+import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import { hashFile } from './hash'
 
 describe('hash utils test', () => {
diff --git a/tsconfig.json b/tsconfig.json
index 02ef5015853296073d1fee881418debfea51057d..918223a92ae41951a898f2a5c62cdab1262f56d2 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,7 +1,7 @@
 {
   "compilerOptions": {
     "target": "esnext",
-    "baseUrl": "src",
+    "baseUrl": ".",
     "allowJs": true,
     "skipLibCheck": true,
     "esModuleInterop": true,
@@ -16,7 +16,8 @@
     "jsx": "react",
     "lib": ["esnext", "dom"],
     "paths": {
-      "*": ["*", "../node_modules/*", "types/*"]
+      "tests/*": ["tests/*"],
+      "*": ["src/*", "../node_modules/*", "types/*"]
     }
   },
   "include": ["src/**/*", "tests/**/*"]