diff --git a/.eslintrc.js b/.eslintrc.js
index 7195bf9c036c34a5f76b7e01f0dab71503d9d750..d85ce97acd245a1f0aa77649004e879f1966034e 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -83,9 +83,15 @@ module.exports = {
     },
     {
       files: ['**/*.spec.{ts,tsx}'],
-      extends: ['plugin:jest/recommended'],
+      extends: ['plugin:jest/recommended', 'plugin:testing-library/react'],
       rules: {
         'jest/no-mocks-import': 0,
+
+        // For testing View components which renders other components -> implementation tests ?
+        'testing-library/no-container': 0,
+
+        // Allows checking classes on containers -> could be fixed
+        'testing-library/no-node-access': 0,
       },
     },
   ],
diff --git a/.gitlab/merge_request_templates/[QA] Ecolyo.md b/.gitlab/merge_request_templates/[QA] Ecolyo.md
index 7ed6971bfe60d29ae6168c2150a81df3df1bb8eb..f25ce9e92e801cfb3765fb56a30f45bc1d6f9ffc 100644
--- a/.gitlab/merge_request_templates/[QA] Ecolyo.md	
+++ b/.gitlab/merge_request_templates/[QA] Ecolyo.md	
@@ -43,6 +43,7 @@
 #### Prix
 
 - [ ] modifier le prix d'un des fluides (électricité ou gaz) dans le backoffice de recette, relancer les connecteurs pour mettre à jour les prix (= correspond à la quantité multipliée par le prix modifié). Attention à ne modifier des prix que sur la dernière année.
+- [ ] mettre à jour les prix par défaut de l'appli avec les derniers prix disponibles dans le back-office
 
 ### 6. **Analyse**
 
diff --git a/package.json b/package.json
index adff49a25992557534268fab62911f12085dd130..05ae37a8cdfc4f544f291c7976243908171e3b1b 100644
--- a/package.json
+++ b/package.json
@@ -86,9 +86,9 @@
   "devDependencies": {
     "@babel/preset-typescript": "^7.7.4",
     "@eslint-react/eslint-plugin": "^1.14.3",
-    "@testing-library/dom": "^9.3.3",
-    "@testing-library/jest-dom": "^6.4.2",
-    "@testing-library/react": "^14.3.0",
+    "@testing-library/dom": "^10.4.0",
+    "@testing-library/jest-dom": "^6.6.3",
+    "@testing-library/react": "^16.0.1",
     "@testing-library/user-event": "^14.5.2",
     "@types/d3": "^7.4.3",
     "@types/file-saver": "^2.0.5",
@@ -118,6 +118,7 @@
     "eslint-plugin-prettier": "^5.0.0",
     "eslint-plugin-react": "7.37.1",
     "eslint-plugin-react-hooks": "^5.0.0",
+    "eslint-plugin-testing-library": "^6.4.0",
     "git-directory-deploy": "1.5.1",
     "jest-canvas-mock": "^2.4.0",
     "jest-junit": "^16.0.0",
diff --git a/src/components/Action/ActionBegin/ActionBegin.spec.tsx b/src/components/Action/ActionBegin/ActionBegin.spec.tsx
index 1b9a39cd673a8469b693c38b939c7dc41aaaac36..83e22e8c42c1dd2884bc003072d697ef4972090f 100644
--- a/src/components/Action/ActionBegin/ActionBegin.spec.tsx
+++ b/src/components/Action/ActionBegin/ActionBegin.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -83,9 +83,7 @@ describe('ActionBegin component', () => {
       </Provider>
     )
     await waitFor(() => null, { container })
-    await act(async () => {
-      await userEvent.click(screen.getByText('action.apply'))
-    })
+    await userEvent.click(screen.getByText('action.apply'))
     expect(await screen.findByRole('dialog')).toBeInTheDocument()
   })
 })
diff --git a/src/components/Action/ActionCard/ActionCard.spec.tsx b/src/components/Action/ActionCard/ActionCard.spec.tsx
index ff72792f0fd47ce97480d55aa72e01fc4533066e..d9a0dabf384a769eafd0cc91121f6b1f94acc334 100644
--- a/src/components/Action/ActionCard/ActionCard.spec.tsx
+++ b/src/components/Action/ActionCard/ActionCard.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -43,9 +43,7 @@ describe('ActionCard component', () => {
       </Provider>
     )
     await waitFor(() => null, { container })
-    await act(async () => {
-      await userEvent.click(await screen.findByRole('button'))
-    })
+    await userEvent.click(await screen.findByRole('button'))
     expect(await screen.findByRole('dialog')).toBeInTheDocument()
   })
 })
diff --git a/src/components/Action/ActionChoose/ActionChoose.spec.tsx b/src/components/Action/ActionChoose/ActionChoose.spec.tsx
index 4f556e86b365cccc6c3c1a0ec7349f66527c4972..b71221906dd5000d1e15c139f94dd4fa58342a5d 100644
--- a/src/components/Action/ActionChoose/ActionChoose.spec.tsx
+++ b/src/components/Action/ActionChoose/ActionChoose.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -74,11 +74,7 @@ describe('ActionChoose component', () => {
       </Provider>
     )
     await waitFor(() => null, { container })
-
-    await act(async () => {
-      await userEvent.click(await screen.findByText('action.other'))
-    })
-
+    await userEvent.click(await screen.findByText('action.other'))
     const list = container.getElementsByTagName('mock-ActionList')[0]
     expect(list).toBeInTheDocument()
   })
diff --git a/src/components/Action/ActionDone/ActionDone.spec.tsx b/src/components/Action/ActionDone/ActionDone.spec.tsx
index f377200ae1ac9975b1c0611ae2401f70bda628eb..6a574b524fdb941af99e8dec01ff9478adff9570 100644
--- a/src/components/Action/ActionDone/ActionDone.spec.tsx
+++ b/src/components/Action/ActionDone/ActionDone.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -35,9 +35,7 @@ describe('ActionDone component', () => {
         <ActionDone currentChallenge={userChallengeData[1]} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('action.ok'))
-    })
+    await userEvent.click(screen.getByText('action.ok'))
     expect(updateChallengeSpy).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Action/ActionModal/ActionModal.spec.tsx b/src/components/Action/ActionModal/ActionModal.spec.tsx
index 37e94eda6c1e803758c3574930f5a831d1fb9a30..087ae6d59a17c59a1bbe5bdcdaedea2de870b80c 100644
--- a/src/components/Action/ActionModal/ActionModal.spec.tsx
+++ b/src/components/Action/ActionModal/ActionModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -49,9 +49,7 @@ describe('ActionModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('action_modal.accept'))
-    })
+    await userEvent.click(screen.getByText('action_modal.accept'))
     expect(updateChallengeSpy).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx b/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
index ed1789703e930b669c776175fc812a17f48beef9..79f004bd58960ac78371b024b383bae0287c30d6 100644
--- a/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
+++ b/src/components/Action/ActionOnGoing/ActionOnGoing.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { UserActionState } from 'enums'
 import { DateTime } from 'luxon'
@@ -44,9 +44,7 @@ describe('ActionOnGoing component', () => {
         <ActionOnGoing userAction={userAction1} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('action.details'))
-    })
-    expect(screen.findByRole('dialog')).toBeTruthy()
+    await userEvent.click(screen.getByText('action.details'))
+    expect(screen.getByRole('dialog')).toBeTruthy()
   })
 })
diff --git a/src/components/Action/ActionView.tsx b/src/components/Action/ActionView.tsx
index cec6bf7390596269e671603b50f7e191e8514eb3..9c04e57df0f28df38b7c475cd27857948e77be46 100644
--- a/src/components/Action/ActionView.tsx
+++ b/src/components/Action/ActionView.tsx
@@ -22,14 +22,11 @@ const ActionView = () => {
 
   const renderAction = (challenge: UserChallenge) => {
     switch (challenge.action.state) {
-      case UserActionState.UNSTARTED:
-        return (
-          <ActionChoose userChallenge={challenge} setFocus={focusMainContent} />
-        )
       case UserActionState.ONGOING:
         return <ActionOnGoing userAction={challenge.action} />
       case UserActionState.NOTIFICATION:
         return <ActionDone currentChallenge={challenge} />
+      case UserActionState.UNSTARTED:
       default:
         return (
           <ActionChoose userChallenge={challenge} setFocus={focusMainContent} />
diff --git a/src/components/Analysis/Comparison/Comparison.spec.tsx b/src/components/Analysis/Comparison/Comparison.spec.tsx
index f3f48b67887ae96120ddee71a3850db2e2cbf35f..ace9e1791a3bb52945ac9089e4f4c90359eabfd0 100644
--- a/src/components/Analysis/Comparison/Comparison.spec.tsx
+++ b/src/components/Analysis/Comparison/Comparison.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { FluidType } from 'enums'
 import { PerformanceIndicator } from 'models'
@@ -89,15 +89,11 @@ describe('Comparison component', () => {
       name: `analysis.compare.month_tab`,
     })
 
-    await act(async () => {
-      await userEvent.click(yearlyButton)
-      expect(mockDispatch).toHaveBeenCalledWith(setPeriod('year'))
-    })
+    await userEvent.click(yearlyButton)
+    expect(mockDispatch).toHaveBeenCalledWith(setPeriod('year'))
 
-    await act(async () => {
-      await userEvent.click(monthlyButton)
-      expect(mockDispatch).toHaveBeenCalledWith(setPeriod('month'))
-    })
+    await userEvent.click(monthlyButton)
+    expect(mockDispatch).toHaveBeenCalledWith(setPeriod('month'))
   })
 
   it('renders performance indicators', async () => {
diff --git a/src/components/Analysis/Comparison/FluidPerformanceIndicator.spec.tsx b/src/components/Analysis/Comparison/FluidPerformanceIndicator.spec.tsx
index 32487e9d45ea6dad7f55f3a589e9c9df973449b4..f1e7c08d2176ff38dc474e19bb5887eab7b333d8 100644
--- a/src/components/Analysis/Comparison/FluidPerformanceIndicator.spec.tsx
+++ b/src/components/Analysis/Comparison/FluidPerformanceIndicator.spec.tsx
@@ -1,5 +1,5 @@
 import { AnyAction } from '@reduxjs/toolkit'
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { FluidType } from 'enums'
 import { DateTime } from 'luxon'
@@ -64,9 +64,7 @@ describe('FluidPerformanceIndicator component', () => {
       screen.getByTestId('fluid-comparison-ELECTRICITY')
     ).toHaveTextContent('+10,00 % / avril 2024')
 
-    await act(async () => {
-      await userEvent.click(screen.getByRole('listitem'))
-    })
+    await userEvent.click(screen.getByRole('listitem'))
 
     expect(mockedNavigate).toHaveBeenCalledWith('/consumption/electricity')
     expect(dispatchSpy).toHaveBeenCalledWith({
@@ -103,9 +101,7 @@ describe('FluidPerformanceIndicator component', () => {
       '-10,00 % / avril 2024'
     )
 
-    await act(async () => {
-      await userEvent.click(screen.getByRole('listitem'))
-    })
+    await userEvent.click(screen.getByRole('listitem'))
 
     expect(mockedNavigate).toHaveBeenCalledWith('/consumption/water')
     expect(dispatchSpy).toHaveBeenCalledWith({
diff --git a/src/components/Analysis/Comparison/TemperatureComparison.spec.tsx b/src/components/Analysis/Comparison/TemperatureComparison.spec.tsx
index 4be5c05413861145c8ed46d2b6a3d9cdeba5d0a6..b976032d9f35d4b58ab4136655b72411a35a0174 100644
--- a/src/components/Analysis/Comparison/TemperatureComparison.spec.tsx
+++ b/src/components/Analysis/Comparison/TemperatureComparison.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { DateTime } from 'luxon'
 import React from 'react'
@@ -80,11 +80,9 @@ describe('TemperatureComparison component', () => {
       </Provider>
     )
     await waitFor(() => container)
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('analysis.temperature_comparison.info_button')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('analysis.temperature_comparison.info_button')
+    )
     expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
 })
diff --git a/src/components/Analysis/Comparison/TemperatureComparisonModal/TemperatureComparisonModal.spec.tsx b/src/components/Analysis/Comparison/TemperatureComparisonModal/TemperatureComparisonModal.spec.tsx
index 783e566a34c6903a1c00b977362dbbc610f2c628..dd13f814d5e29ebc2164941ed1bd87cb6f93d758 100644
--- a/src/components/Analysis/Comparison/TemperatureComparisonModal/TemperatureComparisonModal.spec.tsx
+++ b/src/components/Analysis/Comparison/TemperatureComparisonModal/TemperatureComparisonModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -26,9 +26,7 @@ describe('TemperatureComparisonModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('button')[0])
-    })
+    await userEvent.click(screen.getAllByRole('button')[0])
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Analysis/Comparison/__snapshots__/FluidPerformanceIndicator.spec.tsx.snap b/src/components/Analysis/Comparison/__snapshots__/FluidPerformanceIndicator.spec.tsx.snap
index 2cad8935b39f7aae84d1b5c4cf405b5775e2f630..9ed1eb2d209c839e07e8c0edf7d40b1adfa0f91b 100644
--- a/src/components/Analysis/Comparison/__snapshots__/FluidPerformanceIndicator.spec.tsx.snap
+++ b/src/components/Analysis/Comparison/__snapshots__/FluidPerformanceIndicator.spec.tsx.snap
@@ -118,7 +118,16 @@ exports[`FluidPerformanceIndicator component should render elec indicators corre
     />
     <span
       class="MuiTouchRipple-root"
-    />
+    >
+      <span
+        class="MuiTouchRipple-ripple MuiTouchRipple-rippleVisible"
+        style="width: 2.8284271247461903px; height: 2.8284271247461903px; top: -1.4142135623730951px; left: -1.4142135623730951px;"
+      >
+        <span
+          class="MuiTouchRipple-child MuiTouchRipple-childLeaving"
+        />
+      </span>
+    </span>
   </button>
 </div>
 `;
diff --git a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
index 7cb6a06109365de9896a3718bc9331d70b7a8684..b18f888595a552c694c5afab6c02ad1a82919eea 100644
--- a/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
+++ b/src/components/Analysis/ProfileComparator/ProfileComparator.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -97,9 +97,7 @@ describe('AnalysisConsumption component', () => {
     expect(rows.length).toBe(4)
     expect(screen.getByTestId('iconGoToProfile')).toBeInTheDocument()
     expect(screen.queryByTestId('goToProfile')).not.toBeInTheDocument()
-    await act(async () => {
-      await userEvent.click(screen.getByTestId('iconGoToProfile'))
-    })
+    await userEvent.click(screen.getByTestId('iconGoToProfile'))
     expect(mockedNavigate).toHaveBeenCalledWith('/profileType')
   })
 })
diff --git a/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx b/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
index ad82a0b1c6f4203ab0ccd64506e0190f967dd254..e0d9a85ab2bc6dbfa595a7fc9d861e6bb13d418c 100644
--- a/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
+++ b/src/components/Challenge/ChallengeCardDone/ChallengeCardDone.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import ChallengeCardDone from 'components/Challenge/ChallengeCardDone/ChallengeCardDone'
 import React from 'react'
@@ -45,9 +45,7 @@ describe('ChallengeCardDone component', () => {
         </Provider>
       )
       const resetButton = screen.getByText('challenge.card_done.reset_defi')
-      await act(async () => {
-        await userEvent.click(resetButton)
-      })
+      await userEvent.click(resetButton)
       expect(mockDispatch).toHaveBeenCalledWith({
         type: 'challenge/updateUserChallengeList',
       })
diff --git a/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx b/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx
index 989c92034e5d09f8569b48831ba6376fb7f8d0c2..2f86bd92d4c4d1a861b125bad9f2d3286a04ce92 100644
--- a/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx
+++ b/src/components/Challenge/ChallengeCardLast/ChallengeCardLast.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import ChallengeCardLast from './ChallengeCardLast'
@@ -16,9 +16,7 @@ describe('ChallengeCardLast component', () => {
     global.open = jest.fn()
 
     render(<ChallengeCardLast />)
-    await act(async () => {
-      await userEvent.click(screen.getByText('challenge.card_last.button'))
-    })
+    await userEvent.click(screen.getByText('challenge.card_last.button'))
     expect(window.open).toHaveBeenCalledTimes(1)
     expect(global.open).toHaveBeenCalledWith(
       `${__SAU_IDEA_DIRECT_LINK__}?version=0.0.0`
diff --git a/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
index 99ed04a63287af471dcb82c5f20411a1bc1a5025..61b2d3e3a4cdbe5cf60fe5ad5d71c83809b88966 100644
--- a/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
+++ b/src/components/Challenge/ChallengeCardUnlocked/ChallengeCardUnlocked.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { FluidState, FluidType } from 'enums'
 import React from 'react'
@@ -39,12 +39,10 @@ describe('ChallengeCardUnlocked component', () => {
         <ChallengeCardUnlocked userChallenge={userChallengeData[0]} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('challenge.card_unlocked.button_launch')
-      )
-    })
-    expect(screen.queryAllByRole('dialog').length).toBeTruthy()
+    await userEvent.click(
+      screen.getByText('challenge.card_unlocked.button_launch')
+    )
+    expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
 
   it('should not display ChallengeNoFluidModal and update userChallenge when launching challenge with configured fluid', async () => {
@@ -64,11 +62,9 @@ describe('ChallengeCardUnlocked component', () => {
         <ChallengeCardUnlocked userChallenge={userChallengeData[0]} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('challenge.card_unlocked.button_launch')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('challenge.card_unlocked.button_launch')
+    )
     expect(screen.queryAllByRole('dialog').length).toBeFalsy()
     expect(mockStartUserChallenge).toHaveBeenCalledWith(userChallengeData[0])
   })
diff --git a/src/components/Charts/Bar.spec.tsx b/src/components/Charts/Bar.spec.tsx
index 92699761a995d28a1bb2f8df72239b084d4a11a0..f87d5d1d7b26eacbdc519c8abb28b9d2d34290ed 100644
--- a/src/components/Charts/Bar.spec.tsx
+++ b/src/components/Charts/Bar.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render } from '@testing-library/react'
+import { render } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { scaleLinear } from 'd3'
 import { FluidType, TimeStep } from 'enums'
@@ -127,9 +127,7 @@ describe('Bar component test', () => {
         </svg>
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(container.querySelector('rect') as Element)
-    })
+    await userEvent.click(container.querySelector('rect') as Element)
     expect(setSelectedDateSpy).toHaveBeenCalledTimes(1)
     expect(setSelectedDateSpy).toHaveBeenCalledWith(
       graphData.actualData[0].date
diff --git a/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx b/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
index 0d8be396b947acfd4f3ea589bacc19da9cabb42f..eb41fa2659e378b8d87fd4078973799fece58457 100644
--- a/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
+++ b/src/components/CommonKit/FormNavigation/FormNavigation.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import FormNavigation from './FormNavigation'
@@ -15,15 +15,9 @@ describe('FormNavigation component', () => {
         disablePrevButton={false}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('profile_type.form.button_previous')
-      )
-    })
+    await userEvent.click(screen.getByText('profile_type.form.button_previous'))
     expect(mockHandlePrevious).toHaveBeenCalled()
-    await act(async () => {
-      await userEvent.click(screen.getByText('profile_type.form.button_next'))
-    })
+    await userEvent.click(screen.getByText('profile_type.form.button_next'))
     expect(mockHandleNext).toHaveBeenCalled()
   })
 })
diff --git a/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx b/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
index c50602afd0333899a595edeea61b110b58e4c025..4b1ecfae6c01ecc386c551f0e4d587427e5aa1d6 100644
--- a/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
+++ b/src/components/Connection/ExpiredConsentModal/ExpiredConsentModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { FluidType } from 'enums'
 import React from 'react'
@@ -45,9 +45,7 @@ describe('ExpiredConsentModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('consent_outdated.go'))
-    })
+    await userEvent.click(screen.getByText('consent_outdated.go'))
     expect(mockAppDispatch).toHaveBeenCalledTimes(1)
     expect(mockedNavigate).toHaveBeenCalledTimes(1)
   })
@@ -65,9 +63,7 @@ describe('ExpiredConsentModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('consent_outdated.yes'))
-    })
+    await userEvent.click(screen.getByText('consent_outdated.yes'))
     expect(mockAppDispatch).toHaveBeenCalledTimes(1)
     expect(mockedNavigate).toHaveBeenCalledTimes(1)
   })
@@ -82,9 +78,7 @@ describe('ExpiredConsentModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('consent_outdated.no'))
-    })
+    await userEvent.click(screen.getByText('consent_outdated.no'))
     expect(mockHandleCloseClick).toHaveBeenCalled()
   })
 })
diff --git a/src/components/Connection/SGEConnect/SgeInit.spec.tsx b/src/components/Connection/SGEConnect/SgeInit.spec.tsx
index 5bb551e8e671f95b1527a92b4623c5f29cafdd0e..94359bd560908f1538f634439fa24213c04f7ecb 100644
--- a/src/components/Connection/SGEConnect/SgeInit.spec.tsx
+++ b/src/components/Connection/SGEConnect/SgeInit.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -27,9 +27,7 @@ describe('SgeInit component', () => {
         <SgeInit />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('auth.enedissgegrandlyon.connect'))
-    })
+    await userEvent.click(screen.getByText('auth.enedissgegrandlyon.connect'))
     expect(mockedNavigate).toHaveBeenCalled()
   })
 })
diff --git a/src/components/Connection/SGEConnect/StepAddress.spec.tsx b/src/components/Connection/SGEConnect/StepAddress.spec.tsx
index 8ba9d944327c3f733a1d564b4d57d41c2e13c8fd..8442690c836adefca6833b05c3cd38cf9552c723 100644
--- a/src/components/Connection/SGEConnect/StepAddress.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepAddress.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { mockSgeState } from 'tests/__mocks__/forms.mock'
@@ -15,37 +15,35 @@ describe('StepAddress component', () => {
   })
 
   describe('should change inputs', () => {
-    beforeEach(() => {
+    it('should change address value', async () => {
       render(
         <StepAddress sgeState={mockSgeState} onChange={mockHandleChange} />
       )
-    })
-    it('should change address value', async () => {
       const input = screen.getByRole('textbox', {
         name: 'auth.enedissgegrandlyon.address',
       })
-      await act(async () => {
-        await userEvent.type(input, 't')
-      })
+      await userEvent.type(input, 't')
       expect(mockHandleChange).toHaveBeenCalledWith('address', 't')
     })
     it('should change zipCode value', async () => {
+      render(
+        <StepAddress sgeState={mockSgeState} onChange={mockHandleChange} />
+      )
       const input = screen.getByRole('spinbutton', {
         name: 'auth.enedissgegrandlyon.zipCode',
       })
-      await act(async () => {
-        await userEvent.type(input, '1')
-      })
+      await userEvent.type(input, '1')
       expect(mockHandleChange).toHaveBeenCalledWith('zipCode', '1', 5)
     })
 
     it('should change city value', async () => {
+      render(
+        <StepAddress sgeState={mockSgeState} onChange={mockHandleChange} />
+      )
       const input = screen.getByRole('textbox', {
         name: 'auth.enedissgegrandlyon.city',
       })
-      await act(async () => {
-        await userEvent.type(input, 'c')
-      })
+      await userEvent.type(input, 'c')
       expect(mockHandleChange).toHaveBeenCalledWith('city', 'c')
     })
   })
diff --git a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
index db0bb7e1d6909e0773a57d14d1a092b7840fb256..952ec45f9d0646df2d0dfe45a4627912bd174383 100644
--- a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { mockSgeState } from 'tests/__mocks__/forms.mock'
@@ -21,25 +21,19 @@ describe('StepIdentityAndPdl component', () => {
     const firstNameInput = screen.getByRole('textbox', {
       name: 'auth.enedissgegrandlyon.firstName',
     })
-    await act(async () => {
-      await userEvent.type(firstNameInput, 'n')
-    })
+    await userEvent.type(firstNameInput, 'n')
     expect(mockHandleChange).toHaveBeenCalledWith('firstName', 'n')
 
     const lastNameInput = screen.getByRole('textbox', {
       name: 'auth.enedissgegrandlyon.lastName',
     })
-    await act(async () => {
-      await userEvent.type(lastNameInput, 'n')
-    })
+    await userEvent.type(lastNameInput, 'n')
     expect(mockHandleChange).toHaveBeenCalledWith('lastName', 'n')
 
     const pdlInput = screen.getByRole('spinbutton', {
       name: 'auth.enedissgegrandlyon.pdlLabel',
     })
-    await act(async () => {
-      await userEvent.type(pdlInput, '0')
-    })
+    await userEvent.type(pdlInput, '0')
     expect(mockHandleChange).toHaveBeenCalledWith('pdl', '0', 14)
   })
 
@@ -47,11 +41,9 @@ describe('StepIdentityAndPdl component', () => {
     render(
       <StepIdentityAndPdl sgeState={mockSgeState} onChange={mockHandleChange} />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('auth.enedissgegrandlyon.pdlModal.title')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('auth.enedissgegrandlyon.pdlModal.title')
+    )
     expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
 
diff --git a/src/components/Consumption/WaterPricing/WaterPricing.spec.tsx b/src/components/Consumption/WaterPricing/WaterPricing.spec.tsx
index 14ac6b98f94280ec7d37b1994496a85450c9d90e..52df0177446942fd653da9f5dc014996bd96d323 100644
--- a/src/components/Consumption/WaterPricing/WaterPricing.spec.tsx
+++ b/src/components/Consumption/WaterPricing/WaterPricing.spec.tsx
@@ -23,7 +23,7 @@ describe('WaterPricing component', () => {
         <WaterPricing />
       </Provider>
     )
-    userEvent.click(screen.getByRole('button'))
+    await userEvent.click(screen.getByRole('button'))
     expect(await screen.findByRole('dialog')).toBeInTheDocument()
   })
 })
diff --git a/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx b/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
index a270965bd3f07f817384b2ee62920df46f23bd5b..5ee8e21d1441a8d3d03d6fe2a31a7ac09f6c92ba 100644
--- a/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadNoValue.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { DataloadState, FluidType } from 'enums'
 import React from 'react'
@@ -121,11 +121,9 @@ describe('DataloadNoValue component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('consumption_visualizer.missing_data')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('consumption_visualizer.missing_data')
+    )
     expect(mockDispatch).toHaveBeenCalledWith({
       type: 'chart/setShowConnectionDetails',
       payload: true,
diff --git a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
index 4c6660d40956aaa653649e0b93d0064038c68592..b91c97ed18e5bd012fe66080be1e5efd9763f2c6 100644
--- a/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
+++ b/src/components/ConsumptionVisualizer/InfoDataConsumptionVisualizer.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { DataloadState, FluidType } from 'enums'
 import { DateTime } from 'luxon'
@@ -199,11 +199,9 @@ describe('InfoDataConsumptionVisualizer component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('consumption_visualizer.last_available_data')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('consumption_visualizer.last_available_data')
+    )
     expect(mockAppDispatch).toHaveBeenCalled()
   })
 
@@ -218,11 +216,9 @@ describe('InfoDataConsumptionVisualizer component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('consumption_visualizer.why_no_data')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('consumption_visualizer.why_no_data')
+    )
     expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
 })
diff --git a/src/components/CustomPopup/CustomPopupModal.spec.tsx b/src/components/CustomPopup/CustomPopupModal.spec.tsx
index 5f3786a07ae9a3ee5fa7a06262232da12879cc40..c31b814860dda9edeb149ce119c456e070ffcd94 100644
--- a/src/components/CustomPopup/CustomPopupModal.spec.tsx
+++ b/src/components/CustomPopup/CustomPopupModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import {
@@ -68,11 +68,9 @@ describe('CustomPopupModal component', () => {
         handleCloseClick={mockHandleClose}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('consumption.partner_issue_modal.ok')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('consumption.partner_issue_modal.ok')
+    )
     expect(mockHandleClose).toHaveBeenCalled()
   })
 })
diff --git a/src/components/DateNavigator/DateNavigator.spec.tsx b/src/components/DateNavigator/DateNavigator.spec.tsx
index 29f83296380f5c16c5c913ba90c6e36beba16723..986aaa40b0db9c9b5972a1de3fc3e46046e98fef 100644
--- a/src/components/DateNavigator/DateNavigator.spec.tsx
+++ b/src/components/DateNavigator/DateNavigator.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { TimeStep } from 'enums'
 import { DateTime } from 'luxon'
@@ -39,17 +39,13 @@ describe('DateNavigator component', () => {
         timeStep={TimeStep.MONTH}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('consumption.accessibility.button_previous_value')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('consumption.accessibility.button_previous_value')
+    )
     expect(mockHandlePrevDate).toHaveBeenCalledTimes(1)
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('consumption.accessibility.button_next_value')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('consumption.accessibility.button_next_value')
+    )
     expect(mockHandleNextDate).toHaveBeenCalledTimes(1)
   })
 
diff --git a/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx b/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
index ac8509e849ed3878b23ce96f47f6d703ca926ec0..6175753f3c9c7e7e7973a782b46ab2c900a178c4 100644
--- a/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
+++ b/src/components/Duel/DuelUnlocked/DuelUnlocked.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { FluidType, UserChallengeUpdateFlag } from 'enums'
 import React from 'react'
@@ -53,9 +53,7 @@ describe('DuelUnlocked component', () => {
         <DuelUnlocked userChallenge={userChallengeData[0]} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('duel.button_start'))
-    })
+    await userEvent.click(screen.getByText('duel.button_start'))
     expect(mockUserChallengeUpdateFlag).toHaveBeenCalledWith(
       userChallengeData[0],
       UserChallengeUpdateFlag.DUEL_START
diff --git a/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
index 20f5c94c90cbe9613cafdb70e5e70a8c4db99aff..b43a3c1ece6ceedcd74b308561b888302dc627dd 100644
--- a/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
+++ b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureEmptyList from './EcogestureEmptyList'
@@ -31,11 +31,9 @@ describe('EcogestureEmptyList component', () => {
         openResetEcogestureModal={jest.fn()}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByRole('button', { name: 'ecogesture.emptyList.btn1' })
-      )
-    })
+    await userEvent.click(
+      screen.getByRole('button', { name: 'ecogesture.emptyList.btn1' })
+    )
     expect(mockChangeTab).toHaveBeenCalledTimes(1)
   })
   it('should launch ecogesture form', async () => {
@@ -47,11 +45,9 @@ describe('EcogestureEmptyList component', () => {
         openResetEcogestureModal={jest.fn()}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByRole('button', { name: 'ecogesture.emptyList.btn2' })
-      )
-    })
+    await userEvent.click(
+      screen.getByRole('button', { name: 'ecogesture.emptyList.btn2' })
+    )
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-form')
   })
   it('should render doing text with empty list on completed selection', () => {
diff --git a/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
index 8c97e6e22465d3046251099ac39e70f912b76a35..e5b578c55554a11511375a491fd086c38f56370f 100644
--- a/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
+++ b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { useI18n } from 'cozy-ui/transpiled/react/providers/I18n'
 import React from 'react'
@@ -25,7 +25,7 @@ describe('EcogestureInitModal component', () => {
   })
 
   it('should not render the modal when open is false', () => {
-    const { queryByRole } = render(
+    render(
       <Provider store={store}>
         <EcogestureInitModal
           open={false}
@@ -34,7 +34,7 @@ describe('EcogestureInitModal component', () => {
         />
       </Provider>
     )
-    expect(queryByRole('dialog')).toBeNull()
+    expect(screen.queryByRole('dialog')).toBeNull()
   })
 
   it('should render correctly when open is true', () => {
@@ -63,9 +63,7 @@ describe('EcogestureInitModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText(t('ecogesture.initModal.btn2')))
-    })
+    await userEvent.click(screen.getByText(t('ecogesture.initModal.btn2')))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-form?modal=false')
     expect(mockOnAccept).toHaveBeenCalled()
   })
@@ -83,9 +81,7 @@ describe('EcogestureInitModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText(t('ecogesture.initModal.btn1')))
-    })
+    await userEvent.click(screen.getByText(t('ecogesture.initModal.btn1')))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogestures')
     expect(mockOnClose).toHaveBeenCalled()
   })
diff --git a/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
index 1e7f223c9b4436f8eb7dd1b6c1a7e9979d048c19..a11635a0814c48954f45a9944baf73cda645d8ec 100644
--- a/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
+++ b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -59,12 +59,8 @@ describe('EcogesturesList component', () => {
         </BrowserRouter>
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('ecogesture.MENU_TITLE'))
-    })
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('menuitem')[1])
-    })
+    await userEvent.click(screen.getByText('ecogesture.MENU_TITLE'))
+    await userEvent.click(screen.getAllByRole('menuitem')[1])
     expect(updateEcogestureFilter).toHaveBeenCalledTimes(1)
   })
 
@@ -81,9 +77,7 @@ describe('EcogesturesList component', () => {
         </BrowserRouter>
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('ecogesture.button_selection'))
-    })
+    await userEvent.click(screen.getByText('ecogesture.button_selection'))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-selection')
   })
 })
diff --git a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
index 7ae9d83388a642af0afa226befd9d44c17467d89..985e265f47af627be786f917745b0e5eb0eb4832 100644
--- a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
+++ b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureNotFound from './EcogestureNotFound'
@@ -22,9 +22,7 @@ describe('EcogestureNotFound component', () => {
   })
   it('should click on button and be redirected', async () => {
     render(<EcogestureNotFound text="test" returnPage="ecogestures" />)
-    await act(async () => {
-      await userEvent.click(screen.getByText('error_page.back'))
-    })
+    await userEvent.click(screen.getByText('error_page.back'))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogestures')
   })
 })
diff --git a/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
index a60db8c120a72cd988cd862249a154a3137b604d..7d13763d5173b8e38d8c1af479e72014810b4856 100644
--- a/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
+++ b/src/components/EcogestureForm/EcogestureFormSingleChoice/EcogestureFormSingleChoice.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -49,11 +49,9 @@ describe('EcogestureFormSingleChoice component', () => {
       </Provider>
     )
     await userEvent.click(screen.getAllByRole('radio')[0])
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('profile_type.accessibility.button_next')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('profile_type.accessibility.button_next')
+    )
     expect(mockHandleNextStep).toHaveBeenCalledTimes(1)
   })
   it('should go back', async () => {
@@ -69,11 +67,9 @@ describe('EcogestureFormSingleChoice component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('profile_type.accessibility.button_previous')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('profile_type.accessibility.button_previous')
+    )
     expect(mockHandlePreviousStep).toHaveBeenCalledTimes(1)
   })
   it('should keep previous answer', () => {
diff --git a/src/components/EcogestureForm/EcogestureFormView.spec.tsx b/src/components/EcogestureForm/EcogestureFormView.spec.tsx
index 82ec1fe642adf423f7ab5b75fac72f5635dbd77e..4475d9b9d1a2e9f07c81e0284af0e47b76a5bae2 100644
--- a/src/components/EcogestureForm/EcogestureFormView.spec.tsx
+++ b/src/components/EcogestureForm/EcogestureFormView.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -69,12 +69,10 @@ describe('EcogestureFormView component', () => {
         <EcogestureFormView />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('radio')[0])
-      await userEvent.click(
-        screen.getByLabelText('profile_type.accessibility.button_next')
-      )
-    })
+    await userEvent.click(screen.getAllByRole('radio')[0])
+    await userEvent.click(
+      screen.getByLabelText('profile_type.accessibility.button_next')
+    )
     expect(
       container.getElementsByClassName('ecogesture-form-single').length
     ).toBeTruthy()
diff --git a/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
index 5608a326dbb4161f40386bff9d8e374be2603b14..306dcebd02a81602a6166630a3374c241503d623 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionDetail/EcogestureSelectionDetail.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
@@ -20,48 +20,56 @@ describe('EcogestureSelectionDetail component', () => {
   })
 
   describe('should click on buttons', () => {
-    let container: HTMLElement
-    beforeEach(async () => {
-      container = render(
+    it('should toggle more details', async () => {
+      render(
         <EcogestureSelectionDetail
           ecogesture={mockedEcogesturesData[0]}
           validate={mockValidate}
           title={mockedEcogesturesData[0].shortName}
         />
-      ).container
-      await waitFor(() => null, { container })
-    })
-
-    it('should toggle more details', async () => {
-      await act(async () => {
-        await userEvent.click(screen.getByText('ecogesture_modal.show_more'))
-      })
+      )
+      await userEvent.click(screen.getByText('ecogesture_modal.show_more'))
       expect(screen.getByText('ecogesture_modal.show_less')).toBeInTheDocument()
     })
     it('should call validate with objective to true', async () => {
-      await act(async () => {
-        await userEvent.click(
-          screen.getByText('ecogesture_selection.button_objective')
-        )
-      })
+      render(
+        <EcogestureSelectionDetail
+          ecogesture={mockedEcogesturesData[0]}
+          validate={mockValidate}
+          title={mockedEcogesturesData[0].shortName}
+        />
+      )
+      await userEvent.click(
+        screen.getByText('ecogesture_selection.button_objective')
+      )
       expect(mockValidate).toHaveBeenCalledWith(true, false)
     })
 
     it('should call validate with doing to true', async () => {
-      await act(async () => {
-        await userEvent.click(
-          screen.getByText('ecogesture_selection.button_doing')
-        )
-      })
+      render(
+        <EcogestureSelectionDetail
+          ecogesture={mockedEcogesturesData[0]}
+          validate={mockValidate}
+          title={mockedEcogesturesData[0].shortName}
+        />
+      )
+      await userEvent.click(
+        screen.getByText('ecogesture_selection.button_doing')
+      )
       expect(mockValidate).toHaveBeenCalledWith(false, true)
     })
 
     it('should call validate with objective and doing to false', async () => {
-      await act(async () => {
-        await userEvent.click(
-          screen.getByText('ecogesture_selection.button_skip')
-        )
-      })
+      render(
+        <EcogestureSelectionDetail
+          ecogesture={mockedEcogesturesData[0]}
+          validate={mockValidate}
+          title={mockedEcogesturesData[0].shortName}
+        />
+      )
+      await userEvent.click(
+        screen.getByText('ecogesture_selection.button_skip')
+      )
       expect(mockValidate).toHaveBeenCalledWith(false, false)
     })
   })
diff --git a/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx
index b17eb56aa8c598a687b102eb3b88085a36071122..a4c6b73ab2b42fc7293b5e868683b3cd7d75c38d 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionEnd/EcogestureSelectionEnd.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureSelectionEnd from './EcogestureSelectionEnd'
@@ -21,9 +21,7 @@ describe('EcogestureSelectionEnd component', () => {
 
   it('should close modal and update profile', async () => {
     render(<EcogestureSelectionEnd />)
-    await act(async () => {
-      await userEvent.click(screen.getByText('ecogesture_selection.button_ok'))
-    })
+    await userEvent.click(screen.getByText('ecogesture_selection.button_ok'))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogestures?tab=0')
   })
 })
diff --git a/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx
index 6b72660464b8a92259ffd9acfa628856cec44276..f4a85b890e492e8bf6a992067af953f7297935dc 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionModal/EcogestureSelectionModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import EcogestureSelectionModal from './EcogestureSelectionModal'
@@ -22,11 +22,9 @@ describe('EcogestureInitModal component', () => {
         handleCloseClick={mockHandleClose}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('ecogesture_selection.selectionModal.button_close')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('ecogesture_selection.selectionModal.button_close')
+    )
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx b/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx
index e8f57688cdabd241c507f523ee6b74cb2ad9c6e4..6ddd00ef4900716ace91d0203f6fdb07b97256a4 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionRestart/EcogestureSelectionRestart.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import EcogestureSelectionRestart from './EcogestureSelectionRestart'
@@ -20,21 +20,17 @@ describe('EcogestureSelectionRestart component', () => {
 
   it('should call go to the ecogesture view when user click on the button', async () => {
     render(<EcogestureSelectionRestart listLength={10} restart={mockRestart} />)
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('ecogesture_selection.button_go_to_ecogesture')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('ecogesture_selection.button_go_to_ecogesture')
+    )
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogestures?tab=0')
   })
 
   it('should call the restart when user click on the button', async () => {
     render(<EcogestureSelectionRestart listLength={10} restart={mockRestart} />)
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('ecogesture_selection.button_continue')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('ecogesture_selection.button_continue')
+    )
     expect(mockRestart).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Exploration/ExplorationFinished.spec.tsx b/src/components/Exploration/ExplorationFinished.spec.tsx
index 8dc48fdbcde9eb7af951be0d7a5414cc81e3b824..05b28a78a917a090ee13a401c55fc6dbc91e2706 100644
--- a/src/components/Exploration/ExplorationFinished.spec.tsx
+++ b/src/components/Exploration/ExplorationFinished.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -26,9 +26,7 @@ describe('ExplorationFinished', () => {
     expect(
       screen.getByText(userChallengeData[0].exploration.message_success)
     ).toBeInTheDocument()
-    await act(async () => {
-      await userEvent.click(screen.getByText('exploration.button_confirm'))
-    })
+    await userEvent.click(screen.getByText('exploration.button_confirm'))
     expect(mockNavigate).toHaveBeenCalledWith(-1)
   })
 })
diff --git a/src/components/Feedback/FeedbackModal.spec.tsx b/src/components/Feedback/FeedbackModal.spec.tsx
index 2444ef63d92c6c1c0a76635f7474c207172fc39e..7b18719b571501e7377732c44ee9ccfcc791f78f 100644
--- a/src/components/Feedback/FeedbackModal.spec.tsx
+++ b/src/components/Feedback/FeedbackModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import FeedbackModal from 'components/Feedback/FeedbackModal'
 import React from 'react'
@@ -40,9 +40,7 @@ describe('FeedbackModal component', () => {
         <FeedbackModal />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('feedback.lets_go'))
-    })
+    await userEvent.click(screen.getByText('feedback.lets_go'))
     expect(window.open).toHaveBeenCalledTimes(1)
     expect(global.open).toHaveBeenCalledWith(`${__SAU_LINK__}?version=0.0.0`)
   })
diff --git a/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
index d76c9b35da62a001282fd36892735eca246deedf..c5272e89359580cefb5b97f9ad78fdb6505784f9 100644
--- a/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
+++ b/src/components/FluidChart/TimeStepSelector/TimeStepSelector.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import TimeStepSelector from 'components/FluidChart/TimeStepSelector/TimeStepSelector'
 import { FluidType, TimeStep } from 'enums'
@@ -68,9 +68,7 @@ describe('TimeStepSelector component', () => {
         <TimeStepSelector fluidType={FluidType.WATER} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('button')[2])
-    })
+    await userEvent.click(screen.getAllByRole('button')[2])
     expect(setCurrentTimeStepSpy).toHaveBeenCalledTimes(1)
     expect(setCurrentTimeStepSpy).toHaveBeenCalledWith(TimeStep.MONTH)
     expect(setCurrentIndexSpy).toHaveBeenCalledTimes(1)
diff --git a/src/components/Header/CozyBar.spec.tsx b/src/components/Header/CozyBar.spec.tsx
index f8ecdef730022fd348c818dd48754893f69c73cc..31eeffaff78e7cc3a9788257e457a99fe0d9d35f 100644
--- a/src/components/Header/CozyBar.spec.tsx
+++ b/src/components/Header/CozyBar.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import CozyBar from 'components/Header/CozyBar'
 import { ScreenType } from 'enums'
@@ -44,11 +44,9 @@ describe('CozyBar component', () => {
         </Provider>
       )
       expect(container).toMatchSnapshot()
-      await act(async () => {
-        await userEvent.click(
-          screen.getByLabelText('header.accessibility.button_back')
-        )
-      })
+      await userEvent.click(
+        screen.getByLabelText('header.accessibility.button_back')
+      )
       expect(mockedNavigate).toHaveBeenCalled()
     })
 
@@ -60,11 +58,9 @@ describe('CozyBar component', () => {
         </Provider>
       )
       expect(container).toMatchSnapshot()
-      await act(async () => {
-        await userEvent.click(
-          screen.getByLabelText('header.accessibility.button_back')
-        )
-      })
+      await userEvent.click(
+        screen.getByLabelText('header.accessibility.button_back')
+      )
       expect(mockBackFunction).toHaveBeenCalled()
     })
   })
@@ -76,11 +72,9 @@ describe('CozyBar component', () => {
       </Provider>
     )
     const updateModalSpy = jest.spyOn(ModalAction, 'openFeedbackModal')
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('header.accessibility.button_open_feedbacks')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('header.accessibility.button_open_feedbacks')
+    )
     expect(updateModalSpy).toHaveBeenCalledWith(true)
   })
 
diff --git a/src/components/Header/Header.spec.tsx b/src/components/Header/Header.spec.tsx
index 5d50f14bff0361e403092469c586778eaa1489b0..4b4c86456dd0d7af9a3aefda5bc95f2ef1283136 100644
--- a/src/components/Header/Header.spec.tsx
+++ b/src/components/Header/Header.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import Header from 'components/Header/Header'
 import { ScreenType } from 'enums'
@@ -54,12 +54,12 @@ describe('Header component', () => {
   })
 
   it('should not display desktop title text when desktopTitleKey not provided', () => {
-    const { queryByText } = render(
+    render(
       <Provider store={desktopStore}>
         <Header desktopTitleKey="" />
       </Provider>
     )
-    expect(queryByText(/.+/)).not.toBeInTheDocument()
+    expect(screen.queryByText(/.+/)).not.toBeInTheDocument()
   })
 
   it('should display title and back button when desktopTitle key provided and displayBackArrow is true', () => {
@@ -95,11 +95,9 @@ describe('Header component', () => {
           <Header desktopTitleKey="KEY" displayBackArrow={true} />
         </Provider>
       )
-      await act(async () => {
-        await userEvent.click(
-          screen.getByLabelText('header.accessibility.button_back')
-        )
-      })
+      await userEvent.click(
+        screen.getByLabelText('header.accessibility.button_back')
+      )
       expect(mockedNavigate).toHaveBeenCalled()
     })
 
@@ -114,11 +112,9 @@ describe('Header component', () => {
           />
         </Provider>
       )
-      await act(async () => {
-        await userEvent.click(
-          screen.getByLabelText('header.accessibility.button_back')
-        )
-      })
+      await userEvent.click(
+        screen.getByLabelText('header.accessibility.button_back')
+      )
       expect(mockBack).toHaveBeenCalled()
     })
   })
@@ -130,11 +126,9 @@ describe('Header component', () => {
       </Provider>
     )
     const updateModalSpy = jest.spyOn(ModalAction, 'openFeedbackModal')
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('header.accessibility.button_open_feedbacks')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('header.accessibility.button_open_feedbacks')
+    )
     expect(updateModalSpy).toHaveBeenCalledWith(true)
   })
 })
diff --git a/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx b/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
index 72388b748c22057ec7520884c6de66ef07bdd6ba..547047dcc4a4dd2441bec532298a23a5f55fe152 100644
--- a/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
+++ b/src/components/Konnector/ConnectionNotFound/ConnectionNotFound.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import ConnectionNotFound from './ConnectionNotFound'
@@ -16,9 +16,7 @@ describe('ConnectionNotFound component test', () => {
   it('should open konnector url when button is clicked', async () => {
     global.open = jest.fn()
     render(<ConnectionNotFound konnectorSlug={konnectorSlug} />)
-    await act(async () => {
-      await userEvent.click(screen.getByText('konnector_form.button_install'))
-    })
+    await userEvent.click(screen.getByText('konnector_form.button_install'))
     expect(global.open).toHaveBeenCalledWith(
       'http://localhost/#/discover/enedissgegrandlyon',
       '_blank'
diff --git a/src/components/Konnector/KonnectorModal.spec.tsx b/src/components/Konnector/KonnectorModal.spec.tsx
index 32d0a9b8bad35cfaba93c98984b7e483e1d38bbc..9b9806b12c72ce2e1b10fc0a1640ab4f6724fdf9 100644
--- a/src/components/Konnector/KonnectorModal.spec.tsx
+++ b/src/components/Konnector/KonnectorModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { FluidType, KonnectorError } from 'enums'
 import React from 'react'
@@ -64,9 +64,7 @@ describe('KonnectorModal component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('konnector_modal.button_validate'))
-    })
+    await userEvent.click(screen.getByText('konnector_modal.button_validate'))
     expect(mockHandleCloseClick).toHaveBeenCalled()
   })
   it('should render login error', () => {
diff --git a/src/components/Konnector/KonnectorModalFooter.spec.tsx b/src/components/Konnector/KonnectorModalFooter.spec.tsx
index 42e3e61b7f0d93c4aaa63ae640775e09ce726a86..85b112936545a0fca39ac4dae645494a51cea7e9 100644
--- a/src/components/Konnector/KonnectorModalFooter.spec.tsx
+++ b/src/components/Konnector/KonnectorModalFooter.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import { ERROR_EVENT } from 'cozy-harvest-lib/dist/models/flowEvents'
 import { KonnectorError } from 'enums'
@@ -105,9 +105,7 @@ describe('KonnectorModalFooter component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('konnector_modal.button_go'))
-    })
+    await userEvent.click(screen.getByText('konnector_modal.button_go'))
     expect(mockDelete).toHaveBeenCalled()
     expect(mockedNavigate).toHaveBeenCalledTimes(1)
   })
@@ -124,9 +122,7 @@ describe('KonnectorModalFooter component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('konnector_modal.button_go'))
-    })
+    await userEvent.click(screen.getByText('konnector_modal.button_go'))
     expect(mockDelete).toHaveBeenCalled()
     expect(mockedNavigate).toHaveBeenCalledTimes(1)
   })
@@ -143,11 +139,7 @@ describe('KonnectorModalFooter component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('konnector_modal.button_check_info')
-      )
-    })
+    await userEvent.click(screen.getByText('konnector_modal.button_check_info'))
     expect(mockedNavigate).toHaveBeenCalledTimes(1)
     expect(mockDelete).toHaveBeenCalledTimes(0)
   })
diff --git a/src/components/Konnector/KonnectorViewerList.spec.tsx b/src/components/Konnector/KonnectorViewerList.spec.tsx
index ec1693348682457abc3d37507be0785984157e98..a199d3f5bd640d26c29c9227502c78467885a487 100644
--- a/src/components/Konnector/KonnectorViewerList.spec.tsx
+++ b/src/components/Konnector/KonnectorViewerList.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -28,11 +28,9 @@ describe('KonnectorViewerList component', () => {
         <KonnectorViewerList />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('konnector_options.label_connect_to_electricity')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('konnector_options.label_connect_to_electricity')
+    )
     expect(mockedNavigate).toHaveBeenCalled()
   })
 })
diff --git a/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx b/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
index 56cd7cac4a4229f25e985ebecba5e9045cb9cbb4..1a9d02c1b20af8b9894ee526b474fbd713b75022 100644
--- a/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportDoneModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import ExportDoneModal from './exportDoneModal'
@@ -27,9 +27,7 @@ describe('exportDoneModal component', () => {
         handleCloseClick={mockHandleClose}
       />
     )
-    await act(async () => {
-      await userEvent.click(screen.getByText('export.modal_done.button_close'))
-    })
+    await userEvent.click(screen.getByText('export.modal_done.button_close'))
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx b/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
index 8fe1bce5b001c91dc854b98722a482ba50a95be7..f2ccf3ef1377bbd5189e7bf5583dd99b61ec8b25 100644
--- a/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportLoadingModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { allFluids } from 'utils/utils'
@@ -27,11 +27,9 @@ describe('ExportLoadingModal component', () => {
         selectedFluids={allFluids}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('export.modal_loading.button_cancel')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('export.modal_loading.button_cancel')
+    )
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx b/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
index a903a4151cdf312142c580be8e965d776c50966d..60f866d6ccd71827f65d5276cf4e78197e301ec6 100644
--- a/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
+++ b/src/components/Options/ExportData/Modals/exportStartModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import ExportStartModal from './exportStartModal'
@@ -24,11 +24,7 @@ describe('exportStartModal component', () => {
         handleDownloadClick={jest.fn()}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('export.modal_start.button_cancel')
-      )
-    })
+    await userEvent.click(screen.getByText('export.modal_start.button_cancel'))
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx b/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
index 1ecad5c9a8a396d1ab3087f8c050d4b78cb3a2ac..98c930c28da001585087f5422eb2b8fa329cb645 100644
--- a/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
+++ b/src/components/Options/ProfileTypeOptions/ProfileTypeOptions.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import ProfileTypeOptions from 'components/Options/ProfileTypeOptions/ProfileTypeOptions'
 import {
@@ -31,9 +31,7 @@ describe('ProfileTypeOptions component', () => {
       </Provider>
     )
     expect(container.getElementsByClassName('profile-icon').length).toBeTruthy()
-    await act(async () => {
-      await userEvent.click(screen.getByText('profile_type.read_profile'))
-    })
+    await userEvent.click(screen.getByText('profile_type.read_profile'))
     expect(mockedNavigate).toHaveBeenCalled()
   })
   it('should be rendered when user complete profile type form', () => {
diff --git a/src/components/Options/ReportOptions/ReportOptions.spec.tsx b/src/components/Options/ReportOptions/ReportOptions.spec.tsx
index ff979961be610940b17fc79bc0c10b065714caaa..ed695a25b4f2497ee894d18549da35415483fd52 100644
--- a/src/components/Options/ReportOptions/ReportOptions.spec.tsx
+++ b/src/components/Options/ReportOptions/ReportOptions.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import ReportOptions from 'components/Options/ReportOptions/ReportOptions'
 import React from 'react'
@@ -41,9 +41,7 @@ describe('ReportOptions component', () => {
         <ReportOptions />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('checkbox')[0])
-    })
+    await userEvent.click(screen.getAllByRole('checkbox')[0])
     expect(updateProfileSpy).toHaveBeenCalledTimes(1)
     expect(updateProfileSpy).toHaveBeenCalledWith({
       sendAnalysisNotification: false,
@@ -59,9 +57,7 @@ describe('ReportOptions component', () => {
         <ReportOptions />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('checkbox')[0])
-    })
+    await userEvent.click(screen.getAllByRole('checkbox')[0])
     expect(updateProfileSpy).toHaveBeenCalledTimes(1)
     expect(updateProfileSpy).toHaveBeenCalledWith({
       sendAnalysisNotification: true,
@@ -80,9 +76,7 @@ describe('ReportOptions component', () => {
         </Provider>
       )
       expect(screen.getAllByRole('checkbox')[1]).not.toBeChecked()
-      await act(async () => {
-        await userEvent.click(screen.getAllByRole('checkbox')[1])
-      })
+      await userEvent.click(screen.getAllByRole('checkbox')[1])
       expect(updateProfileSpy).toHaveBeenCalledTimes(1)
       expect(updateProfileSpy).toHaveBeenCalledWith({
         sendConsumptionAlert: true,
diff --git a/src/components/Options/Unsubscribe/Unsubscribe.spec.tsx b/src/components/Options/Unsubscribe/Unsubscribe.spec.tsx
index 9a9ac90550c1ace8b3d4adc06a97e27198e8eb61..e77db8515bbd5adb25400d8c0b94b4883e5e3a14 100644
--- a/src/components/Options/Unsubscribe/Unsubscribe.spec.tsx
+++ b/src/components/Options/Unsubscribe/Unsubscribe.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import Unsubscribe from './Unsubscribe'
@@ -20,9 +20,7 @@ describe('Unsubscribe component', () => {
   it('should click the subscribe button', async () => {
     const { container } = render(<Unsubscribe />)
     await waitFor(() => null, { container })
-    await act(async () => {
-      await userEvent.click(screen.getByText('unsubscribe.button_subscribe'))
-    })
+    await userEvent.click(screen.getByText('unsubscribe.button_subscribe'))
     expect(mockUpdateProfile).toHaveBeenCalled()
 
     // then should only display one button
diff --git a/src/components/PartnerIssue/PartnerIssueModal.spec.tsx b/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
index 41789bf10ed7bf69f7abe1b9afc611921fb1f6a7..1e2788f24b42ba6659bf68a7571de5e7d1ca2cf5 100644
--- a/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
+++ b/src/components/PartnerIssue/PartnerIssueModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { FluidType } from 'enums'
 import React from 'react'
@@ -49,11 +49,9 @@ describe('PartnerIssueModal component', () => {
         issuedFluid={FluidType.ELECTRICITY}
       />
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByText('consumption.partner_issue_modal.ok')
-      )
-    })
+    await userEvent.click(
+      screen.getByText('consumption.partner_issue_modal.ok')
+    )
     expect(mockHandleClose).toHaveBeenCalled()
   })
 
diff --git a/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
index 7c697496455ff16cdba2c8e3a05572b776a743a8..2c48d9bf8d7e2defbb4da9422de83e6ff33d474f 100644
--- a/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFinished/ProfileTypeFinished.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -45,11 +45,9 @@ describe('ProfileTypeFinished component', () => {
         <ProfileTypeFinished profileType={mockProfileType} />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByLabelText('profile_type.accessibility.button_validate')
-      )
-    })
+    await userEvent.click(
+      screen.getByLabelText('profile_type.accessibility.button_validate')
+    )
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-selection')
   })
 })
diff --git a/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx b/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
index 11d1e2a39aea132089405f564acdd26a7a19ba40..23bf1373f5abf5ff653c33324513f48e18f2c5b8 100644
--- a/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
+++ b/src/components/Quiz/QuizBegin/QuizBegin.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { UserChallengeUpdateFlag } from 'enums'
 import React from 'react'
@@ -24,9 +24,7 @@ describe('QuizBegin component', () => {
       </Provider>
     )
     expect(container.getElementsByClassName('quiz-icon')[0]).toBeInTheDocument()
-    await act(async () => {
-      await userEvent.click(screen.getByText('duel.button_start'))
-    })
+    await userEvent.click(screen.getByText('duel.button_start'))
     expect(mockUserChallengeUpdateFlag).toHaveBeenCalledWith(
       userChallengeData[0],
       UserChallengeUpdateFlag.QUIZ_START
diff --git a/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx b/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
index 64c31a9f68eaeba845876e8e4e4a7cc58ff0da9c..5a2787144a98612fe9f9c2a56c790bf25330c48b 100644
--- a/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
+++ b/src/components/Quiz/QuizFinish/QuizFinish.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -29,9 +29,7 @@ describe('QuizFinish', () => {
       </Provider>
     )
     expect(container.getElementsByClassName('quiz-icon')[0]).toBeInTheDocument()
-    await act(async () => {
-      await userEvent.click(screen.getByText('quiz.button_go_back'))
-    })
+    await userEvent.click(screen.getByText('quiz.button_go_back'))
     expect(mockUserChallengeUpdateFlag).toHaveBeenCalled()
     expect(mockedNavigate).toHaveBeenCalledWith('/challenges')
   })
diff --git a/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
index 24613141899dab79b74d474a8f10ddae3f4a677a..9d922a93ba4aa9f417f110d2856c632f3db0dda3 100644
--- a/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContent.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -53,9 +53,7 @@ describe('QuizQuestionContent component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('button')[0])
-    })
+    await userEvent.click(screen.getAllByRole('button')[0])
     expect(mockedNavigate).toHaveBeenCalledWith('/challenges')
   })
 })
diff --git a/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
index 9271ef602efce1995073d6e7612b0bebf283979a..11808e83dd887b29f6f23323047750891af52351 100644
--- a/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
+++ b/src/components/Quiz/QuizQuestion/QuizQuestionContentCustom.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -42,9 +42,7 @@ describe('QuizCustomQuestionContent component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('button')[0])
-    })
+    await userEvent.click(screen.getAllByRole('button')[0])
     expect(mockHistoryPush).toHaveBeenCalledWith('/challenges')
     expect(screen.getByText(questionEntity.questionLabel)).toBeInTheDocument()
     expect(screen.getAllByRole('radio').length).toBe(3)
@@ -60,10 +58,8 @@ describe('QuizCustomQuestionContent component', () => {
         />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(screen.getAllByRole('radio')[0])
-      await userEvent.click(screen.getByText('quiz.button_validate'))
-    })
+    await userEvent.click(screen.getAllByRole('radio')[0])
+    await userEvent.click(screen.getByText('quiz.button_validate'))
     expect(mockUpdateUserQuiz).toHaveBeenCalledWith(
       userChallengeData[0].quiz,
       questionEntity.answers[0].isTrue
diff --git a/src/components/Splash/SplashScreenError.spec.tsx b/src/components/Splash/SplashScreenError.spec.tsx
index 2aefa0711d893cb9594977a0c7f9e51014649ae5..fdc4e5fa594aaaf15732ef0aee420bf1b119dc23 100644
--- a/src/components/Splash/SplashScreenError.spec.tsx
+++ b/src/components/Splash/SplashScreenError.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import { InitStepsErrors } from 'models/initialisationSteps.model'
 import React from 'react'
@@ -24,9 +24,7 @@ describe('SplashScreenError component', () => {
   })
   it('should reload the page', async () => {
     render(<SplashScreenError error={InitStepsErrors.CONSENT_ERROR} />)
-    await act(async () => {
-      await userEvent.click(screen.getByRole('button'))
-    })
+    await userEvent.click(screen.getByRole('button'))
     expect(window.location.reload).toHaveBeenCalled()
   })
 })
diff --git a/src/components/Terms/TermsView.spec.tsx b/src/components/Terms/TermsView.spec.tsx
index 0c9e0a9c5e324ea38e73d2918bd4f424bfc2aab5..ff62f04f70cfde21f034230478c353c830315083 100644
--- a/src/components/Terms/TermsView.spec.tsx
+++ b/src/components/Terms/TermsView.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen, waitFor } from '@testing-library/react'
+import { render, screen, waitFor } from '@testing-library/react'
 import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -51,13 +51,11 @@ describe('TermsView component', () => {
         <TermsView />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByRole('button', {
-          name: 'dataShare.validCGU_button',
-        })
-      )
-    })
+    await userEvent.click(
+      screen.getByRole('button', {
+        name: 'dataShare.validCGU_button',
+      })
+    )
     expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
 
@@ -67,11 +65,9 @@ describe('TermsView component', () => {
         <TermsView />
       </Provider>
     )
-    await act(async () => {
-      await userEvent.click(
-        screen.getByRole('button', { name: 'dataShare.validLegal_button' })
-      )
-    })
+    await userEvent.click(
+      screen.getByRole('button', { name: 'dataShare.validLegal_button' })
+    )
     expect(screen.getByRole('dialog')).toBeInTheDocument()
   })
   it('should be unable to click "validate" button first then enable checkboxes and valid consent', async () => {
@@ -90,11 +86,9 @@ describe('TermsView component', () => {
     expect(mockUpdateProfile).toHaveBeenCalledTimes(0)
 
     const [boxGCU, boxLegal] = screen.getAllByRole('checkbox')
-    await act(async () => {
-      await userEvent.click(boxGCU)
-      await userEvent.click(boxLegal)
-      await userEvent.click(acceptButton)
-    })
+    await userEvent.click(boxGCU)
+    await userEvent.click(boxLegal)
+    await userEvent.click(acceptButton)
 
     expect(mockAppDispatch).toHaveBeenCalledTimes(4)
   })
diff --git a/src/components/WelcomeModal/WelcomeModal.spec.tsx b/src/components/WelcomeModal/WelcomeModal.spec.tsx
index d05b9ee6d6fbae6ec6c4ea177bc63c33cd023b8b..7b61c549f3fd9680229cb3a1115dfc67ef6a5429 100644
--- a/src/components/WelcomeModal/WelcomeModal.spec.tsx
+++ b/src/components/WelcomeModal/WelcomeModal.spec.tsx
@@ -1,4 +1,4 @@
-import { act, render, screen } from '@testing-library/react'
+import { render, screen } from '@testing-library/react'
 import userEvent from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
@@ -62,19 +62,15 @@ describe('WelcomeModal component', () => {
   })
 
   describe('should test modal interactivity', () => {
-    beforeEach(() => {
+    it('should send mail and update profile when user click on the ok button', async () => {
       render(
         <Provider store={store}>
           <WelcomeModal open={true} />
         </Provider>
       )
-    })
-    it('should send mail and update profile when user click on the ok button', async () => {
-      await act(async () => {
-        await userEvent.click(
-          screen.getByText('onboarding.welcomeModal.button_valid')
-        )
-      })
+      await userEvent.click(
+        screen.getByText('onboarding.welcomeModal.button_valid')
+      )
       expect(mockSendMail).toHaveBeenCalled()
       expect(updateProfileSpy).toHaveBeenCalledWith({
         isFirstConnection: false,
@@ -85,13 +81,16 @@ describe('WelcomeModal component', () => {
     })
 
     it('should send mail and update profile when modal is closed by user', async () => {
-      await act(async () => {
-        await userEvent.click(
-          screen.getAllByLabelText(
-            'onboarding.welcomeModal.accessibility.button_valid'
-          )[0]
-        )
-      })
+      render(
+        <Provider store={store}>
+          <WelcomeModal open={true} />
+        </Provider>
+      )
+      await userEvent.click(
+        screen.getAllByLabelText(
+          'onboarding.welcomeModal.accessibility.button_valid'
+        )[0]
+      )
       expect(mockSendMail).toHaveBeenCalled()
       expect(updateProfileSpy).toHaveBeenCalledWith({
         isFirstConnection: false,
diff --git a/yarn.lock b/yarn.lock
index c3f1f7084efb72bc82a171bbbd142d9e9b171d07..40a519faf77d3213b90797cbe190abc9132139da 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,10 +7,10 @@
   resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
   integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
 
-"@adobe/css-tools@^4.3.2":
-  version "4.3.3"
-  resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.3.tgz#90749bde8b89cd41764224f5aac29cd4138f75ff"
-  integrity sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==
+"@adobe/css-tools@^4.4.0":
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63"
+  integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==
 
 "@alloc/types@^1.2.1":
   version "1.3.0"
@@ -2821,56 +2821,39 @@
   dependencies:
     "@sinonjs/commons" "^1.7.0"
 
-"@testing-library/dom@^9.0.0":
-  version "9.3.4"
-  resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.4.tgz#50696ec28376926fec0a1bf87d9dbac5e27f60ce"
-  integrity sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==
+"@testing-library/dom@^10.4.0":
+  version "10.4.0"
+  resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8"
+  integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==
   dependencies:
     "@babel/code-frame" "^7.10.4"
     "@babel/runtime" "^7.12.5"
     "@types/aria-query" "^5.0.1"
-    aria-query "5.1.3"
+    aria-query "5.3.0"
     chalk "^4.1.0"
     dom-accessibility-api "^0.5.9"
     lz-string "^1.5.0"
     pretty-format "^27.0.2"
 
-"@testing-library/dom@^9.3.3":
-  version "9.3.3"
-  resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5"
-  integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==
+"@testing-library/jest-dom@^6.6.3":
+  version "6.6.3"
+  resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz#26ba906cf928c0f8172e182c6fe214eb4f9f2bd2"
+  integrity sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==
   dependencies:
-    "@babel/code-frame" "^7.10.4"
-    "@babel/runtime" "^7.12.5"
-    "@types/aria-query" "^5.0.1"
-    aria-query "5.1.3"
-    chalk "^4.1.0"
-    dom-accessibility-api "^0.5.9"
-    lz-string "^1.5.0"
-    pretty-format "^27.0.2"
-
-"@testing-library/jest-dom@^6.4.2":
-  version "6.4.2"
-  resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz#38949f6b63722900e2d75ba3c6d9bf8cffb3300e"
-  integrity sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==
-  dependencies:
-    "@adobe/css-tools" "^4.3.2"
-    "@babel/runtime" "^7.9.2"
+    "@adobe/css-tools" "^4.4.0"
     aria-query "^5.0.0"
     chalk "^3.0.0"
     css.escape "^1.5.1"
     dom-accessibility-api "^0.6.3"
-    lodash "^4.17.15"
+    lodash "^4.17.21"
     redent "^3.0.0"
 
-"@testing-library/react@^14.3.0":
-  version "14.3.0"
-  resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.3.0.tgz#8183eb5a5f465b5b8cc495fcbd9bad0a16b8dd3b"
-  integrity sha512-AYJGvNFMbCa5vt1UtDCa/dcaABrXq8gph6VN+cffIx0UeA0qiGqS+sT60+sb+Gjc8tGXdECWYQgaF0khf8b+Lg==
+"@testing-library/react@^16.0.1":
+  version "16.0.1"
+  resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.0.1.tgz#29c0ee878d672703f5e7579f239005e4e0faa875"
+  integrity sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==
   dependencies:
     "@babel/runtime" "^7.12.5"
-    "@testing-library/dom" "^9.0.0"
-    "@types/react-dom" "^18.0.0"
 
 "@testing-library/user-event@^14.5.2":
   version "14.5.2"
@@ -3228,6 +3211,11 @@
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
   integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
 
+"@types/json-schema@^7.0.9":
+  version "7.0.15"
+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+  integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
 "@types/lodash@^4.14.149", "@types/lodash@^4.14.170", "@types/lodash@^4.14.175":
   version "4.14.182"
   resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.182.tgz#05301a4d5e62963227eaafe0ce04dd77c54ea5c2"
@@ -3291,13 +3279,6 @@
   resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.5.tgz#75a2a8e7d8ab4b230414505d92335d1dcb53a6df"
   integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==
 
-"@types/react-dom@^18.0.0":
-  version "18.2.24"
-  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.24.tgz#8dda8f449ae436a7a6e91efed8035d4ab03ff759"
-  integrity sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==
-  dependencies:
-    "@types/react" "*"
-
 "@types/react-dom@^18.2.11":
   version "18.2.11"
   resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.11.tgz#4332c315544698a0875dfdb6e320dda59e1b3d58"
@@ -3358,6 +3339,11 @@
   resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.23.0.tgz#0a6655b3e2708eaabca00b7372fafd7a792a7b09"
   integrity sha512-YIoDCTH3Af6XM5VuwGG/QL/CJqga1Zm3NkU3HZ4ZHK2fRMPYP1VczsTUqtsf43PH/iJNVlPHAo2oWX7BSdB2Hw==
 
+"@types/semver@^7.3.12":
+  version "7.5.8"
+  resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.8.tgz#8268a8c57a3e4abd25c165ecd36237db7948a55e"
+  integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==
+
 "@types/semver@^7.5.0":
   version "7.5.3"
   resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
@@ -3436,6 +3422,14 @@
     "@typescript-eslint/visitor-keys" "6.19.1"
     debug "^4.3.4"
 
+"@typescript-eslint/scope-manager@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
+  integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
+
 "@typescript-eslint/scope-manager@6.19.1":
   version "6.19.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.1.tgz#2f527ee30703a6169a52b31d42a1103d80acd51b"
@@ -3496,6 +3490,11 @@
     debug "^4.3.4"
     ts-api-utils "^1.3.0"
 
+"@typescript-eslint/types@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
+  integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
+
 "@typescript-eslint/types@6.19.1":
   version "6.19.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.1.tgz#2d4c9d492a63ede15e7ba7d129bdf7714b77f771"
@@ -3521,6 +3520,19 @@
   resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.9.0.tgz#b733af07fb340b32e962c6c63b1062aec2dc0fe6"
   integrity sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==
 
+"@typescript-eslint/typescript-estree@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
+  integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/visitor-keys" "5.62.0"
+    debug "^4.3.4"
+    globby "^11.1.0"
+    is-glob "^4.0.3"
+    semver "^7.3.7"
+    tsutils "^3.21.0"
+
 "@typescript-eslint/typescript-estree@6.19.1":
   version "6.19.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.1.tgz#796d88d88882f12e85bb33d6d82d39e1aea54ed1"
@@ -3613,6 +3625,20 @@
     "@typescript-eslint/types" "8.8.1"
     "@typescript-eslint/typescript-estree" "8.8.1"
 
+"@typescript-eslint/utils@^5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
+  integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
+  dependencies:
+    "@eslint-community/eslint-utils" "^4.2.0"
+    "@types/json-schema" "^7.0.9"
+    "@types/semver" "^7.3.12"
+    "@typescript-eslint/scope-manager" "5.62.0"
+    "@typescript-eslint/types" "5.62.0"
+    "@typescript-eslint/typescript-estree" "5.62.0"
+    eslint-scope "^5.1.1"
+    semver "^7.3.7"
+
 "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0":
   version "8.9.0"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.9.0.tgz#748bbe3ea5bee526d9786d9405cf1b0df081c299"
@@ -3623,6 +3649,14 @@
     "@typescript-eslint/types" "8.9.0"
     "@typescript-eslint/typescript-estree" "8.9.0"
 
+"@typescript-eslint/visitor-keys@5.62.0":
+  version "5.62.0"
+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
+  integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
+  dependencies:
+    "@typescript-eslint/types" "5.62.0"
+    eslint-visitor-keys "^3.3.0"
+
 "@typescript-eslint/visitor-keys@6.19.1":
   version "6.19.1"
   resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.1.tgz#2164073ed4fc34a5ff3b5e25bb5a442100454c4c"
@@ -4073,20 +4107,20 @@ argsarray@0.0.1:
   resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb"
   integrity sha512-u96dg2GcAKtpTrBdDoFIM7PjcBA+6rSP0OR94MOReNRyUECL6MtQt5XXmRr4qrftYaef9+l5hcpO5te7sML1Cg==
 
-aria-query@5.1.3, aria-query@~5.1.3:
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
-  integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
-  dependencies:
-    deep-equal "^2.0.5"
-
-aria-query@^5.0.0:
+aria-query@5.3.0, aria-query@^5.0.0:
   version "5.3.0"
   resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
   integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
   dependencies:
     dequal "^2.0.3"
 
+aria-query@~5.1.3:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
+  integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
+  dependencies:
+    deep-equal "^2.0.5"
+
 arr-diff@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@@ -8461,6 +8495,13 @@ eslint-plugin-react@7.37.1:
     string.prototype.matchall "^4.0.11"
     string.prototype.repeat "^1.0.0"
 
+eslint-plugin-testing-library@^6.4.0:
+  version "6.4.0"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-6.4.0.tgz#1ba8a7422e3e31cc315a73ff17c34908f56f9838"
+  integrity sha512-yeWF+YgCgvNyPNI9UKnG0FjeE2sk93N/3lsKqcmR8dSfeXJwFT5irnWo7NjLf152HkRzfoFjh3LsBUrhvFz4eA==
+  dependencies:
+    "@typescript-eslint/utils" "^5.62.0"
+
 eslint-plugin-vue@5.2.3:
   version "5.2.3"
   resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz#3ee7597d823b5478804b2feba9863b1b74273961"
@@ -16139,7 +16180,7 @@ semver@^7.3.6, semver@^7.5.4:
   dependencies:
     lru-cache "^6.0.0"
 
-semver@^7.6.0, semver@^7.6.3:
+semver@^7.3.7, semver@^7.6.0, semver@^7.6.3:
   version "7.6.3"
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
   integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
@@ -17623,7 +17664,7 @@ ts-pattern@^5.4.0:
   resolved "https://registry.yarnpkg.com/ts-pattern/-/ts-pattern-5.4.0.tgz#efbe74d1ffbb63b80298dbc89b6ec442eab095fa"
   integrity sha512-hgfOMfjlrARCnYtGD/xEAkFHDXuSyuqjzFSltyQCbN689uNvoQL20TVN2XFcLMjfNuwSsQGU+xtH6MrjIwhwUg==
 
-tslib@^1.11.1, tslib@^1.9.0, tslib@^1.9.3:
+tslib@^1.11.1, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3:
   version "1.14.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
   integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -17638,6 +17679,13 @@ tslib@^2.6.2:
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
   integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
 
+tsutils@^3.21.0:
+  version "3.21.0"
+  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
+  integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
+  dependencies:
+    tslib "^1.8.1"
+
 tty-browserify@0.0.0:
   version "0.0.0"
   resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"