diff --git a/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx b/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
index 4bb4deaf40cd412c0305cb3c6510d41c9d042b26..7bf0a567e00af787773164dc4b57a4b2adf090bc 100644
--- a/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
+++ b/src/components/Ecogesture/EcogestureCard/EcogestureCard.spec.tsx
@@ -1,10 +1,8 @@
 import { render, waitFor } from '@testing-library/react'
 import EcogestureCard from 'components/Ecogesture/EcogestureCard/EcogestureCard'
-import { mount } from 'enzyme'
 import React from 'react'
 import { BrowserRouter } from 'react-router-dom'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
-import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 describe('EcogestureCard component', () => {
   it('should be rendered correctly', async () => {
@@ -17,12 +15,12 @@ describe('EcogestureCard component', () => {
     expect(container).toMatchSnapshot()
   })
   it('should be with default icon', async () => {
-    const wrapper = mount(
+    const { container } = render(
       <BrowserRouter>
         <EcogestureCard ecogesture={mockedEcogesturesData[0]} />
       </BrowserRouter>
     )
-    await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('.Icon').exists()).toBeTruthy()
+    await waitFor(() => null, { container })
+    expect(container.getElementsByClassName('Icon').length).toBeTruthy()
   })
 })
diff --git a/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
index 650084258d585c8cee9829dc983aff1a3fca2e4c..700c11a8efa8c5877468079223efc666210373b4 100644
--- a/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
+++ b/src/components/Ecogesture/EcogestureEmptyList/EcogestureEmptyList.spec.tsx
@@ -1,6 +1,5 @@
-import Button from '@material-ui/core/Button'
-import { render } from '@testing-library/react'
-import { mount } from 'enzyme'
+import { render, screen } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureEmptyList from './EcogestureEmptyList'
 
@@ -24,8 +23,8 @@ describe('EcogestureEmptyList component', () => {
     )
     expect(container).toMatchSnapshot()
   })
-  it('should return to all ecogestures', () => {
-    const wrapper = mount(
+  it('should return to all ecogestures', async () => {
+    render(
       <EcogestureEmptyList
         setTab={mockChangeTab}
         isObjective={false}
@@ -33,11 +32,11 @@ describe('EcogestureEmptyList component', () => {
         handleReinitClick={mockHandleClick}
       />
     )
-    wrapper.find(Button).first().simulate('click')
+    await userEvent.click(screen.getAllByRole('button')[0])
     expect(mockChangeTab).toHaveBeenCalledTimes(1)
   })
-  it('should launch ecogesture form', () => {
-    const wrapper = mount(
+  it('should launch ecogesture form', async () => {
+    render(
       <EcogestureEmptyList
         setTab={mockChangeTab}
         isObjective={false}
@@ -45,11 +44,11 @@ describe('EcogestureEmptyList component', () => {
         handleReinitClick={mockHandleClick}
       />
     )
-    wrapper.find(Button).at(1).simulate('click')
+    await userEvent.click(screen.getAllByRole('button')[1])
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-form')
   })
   it('should render doing text with empty list on completed selection', () => {
-    const wrapper = mount(
+    render(
       <EcogestureEmptyList
         setTab={mockChangeTab}
         isObjective={false}
@@ -57,12 +56,12 @@ describe('EcogestureEmptyList component', () => {
         handleReinitClick={mockHandleClick}
       />
     )
-    expect(wrapper.find('.text-16-normal').first().text()).toBe(
-      'ecogesture.emptyList.doing1_done'
-    )
+    expect(
+      screen.getByText('ecogesture.emptyList.doing1_done')
+    ).toBeInTheDocument()
   })
   it('should render objective text with empty list on completed selection', () => {
-    const wrapper = mount(
+    render(
       <EcogestureEmptyList
         setTab={mockChangeTab}
         isObjective={true}
@@ -70,8 +69,8 @@ describe('EcogestureEmptyList component', () => {
         handleReinitClick={mockHandleClick}
       />
     )
-    expect(wrapper.find('.text-16-normal').first().text()).toBe(
-      'ecogesture.emptyList.obj1_done'
-    )
+    expect(
+      screen.getByText('ecogesture.emptyList.obj1_done')
+    ).toBeInTheDocument()
   })
 })
diff --git a/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
index dde721578578d724cae9afc64681a0aab0e85ddc..bca146d8c915dad2fc87fdc2b59cd5cfe2528fb7 100644
--- a/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
+++ b/src/components/Ecogesture/EcogestureInitModal/EcogestureInitModal.spec.tsx
@@ -1,6 +1,5 @@
-import { Button } from '@material-ui/core'
-import { render } from '@testing-library/react'
-import { mount } from 'enzyme'
+import { render, screen } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureInitModal from './EcogestureInitModal'
 
@@ -17,26 +16,26 @@ describe('EcogestureInitModal component', () => {
     )
     expect(baseElement).toMatchSnapshot()
   })
-  it('should close modal', () => {
-    const wrapper = mount(
+  it('should close modal', async () => {
+    render(
       <EcogestureInitModal
         open={true}
         handleCloseClick={mockHandleClose}
         handleLaunchForm={mockHandleLaunchForm}
       />
     )
-    wrapper.find(Button).first().simulate('click')
+    await userEvent.click(screen.getAllByRole('button')[1])
     expect(mockHandleClose).toHaveBeenCalledTimes(1)
   })
   it('should close modal and launch form', async () => {
-    const wrapper = mount(
+    render(
       <EcogestureInitModal
         open={true}
         handleCloseClick={mockHandleClose}
         handleLaunchForm={mockHandleLaunchForm}
       />
     )
-    wrapper.find(Button).at(1).simulate('click')
+    await userEvent.click(screen.getAllByRole('button')[2])
     expect(mockHandleLaunchForm).toHaveBeenCalledTimes(1)
   })
 })
diff --git a/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
index c6be11ce126c2999165f23cce9ad8169473c78d8..b230d0fd10a2a02fddb498042d9b629af2034c81 100644
--- a/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
+++ b/src/components/Ecogesture/EcogestureList/EcogestureList.spec.tsx
@@ -1,15 +1,19 @@
-import { Button, MenuItem } from '@material-ui/core'
-import { render } from '@testing-library/react'
-import { mount } from 'enzyme'
+import { render, screen, waitFor } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
 import * as storeHooks from 'store/hooks'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import { createMockEcolyoStore } from 'tests/__mocks__/store'
-import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import EcogestureList from './EcogestureList'
 
+const mockedNavigate = jest.fn()
+jest.mock('react-router-dom', () => ({
+  ...jest.requireActual('react-router-dom'),
+  useNavigate: () => mockedNavigate,
+}))
+
 jest.mock(
   'components/Ecogesture/EcogestureCard/EcogestureCard',
   () => 'mock-ecogesturecard'
@@ -44,7 +48,7 @@ describe('EcogesturesList component', () => {
   })
 
   it('should open the filter menu and select all ecogesture', async () => {
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <BrowserRouter>
           <EcogestureList
@@ -56,16 +60,14 @@ describe('EcogesturesList component', () => {
         </BrowserRouter>
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-    wrapper.find('.btnFilter').first().simulate('click')
-    wrapper.find(Button).first().simulate('click')
-    expect(wrapper.find('.filter-menu').exists()).toBeTruthy()
-    wrapper.find(MenuItem).at(1).simulate('click')
+    await waitFor(() => null, { container })
+    await userEvent.click(screen.getAllByRole('button')[0])
+    await userEvent.click(screen.getAllByRole('menuitem')[1])
     expect(updateEcogestureFilter).toHaveBeenCalledTimes(1)
   })
 
-  it('should display the selection section', async () => {
-    const wrapper = mount(
+  it('should go to "/ecogesture-selection"', async () => {
+    const { container } = render(
       <Provider store={store}>
         <BrowserRouter>
           <EcogestureList
@@ -77,7 +79,8 @@ describe('EcogesturesList component', () => {
         </BrowserRouter>
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('.selection').exists()).toBeTruthy()
+    await waitFor(() => null, { container })
+    await userEvent.click(screen.getAllByRole('button')[1])
+    expect(mockedNavigate).toHaveBeenCalledWith('/ecogesture-selection')
   })
 })
diff --git a/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx b/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
index 8cfd17faf6db498327f1a08d2520afb395bdd7c4..c1b52cc4ae8a501cf334847c1a5706b1f74ab65b 100644
--- a/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
+++ b/src/components/Ecogesture/EcogestureModal/EcogestureModal.spec.tsx
@@ -1,15 +1,14 @@
+import { render, screen, waitFor } from '@testing-library/react'
 import EcogestureModal from 'components/Ecogesture/EcogestureModal/EcogestureModal'
-import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import { createMockEcolyoStore } from 'tests/__mocks__/store'
-import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 
 describe('EcogestureModal component', () => {
   it('should be rendered correctly', async () => {
     const store = createMockEcolyoStore()
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <EcogestureModal
           open={true}
@@ -19,9 +18,9 @@ describe('EcogestureModal component', () => {
         />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-    expect(wrapper.find('.em-title').text()).toEqual(
-      mockedEcogesturesData[0].shortName
-    )
+    await waitFor(() => null, { container })
+    expect(
+      screen.getByText(mockedEcogesturesData[0].shortName)
+    ).toBeInTheDocument()
   })
 })
diff --git a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
index 60e0cfa1fac12399a020142ee9496d870dd7c837..28d77f7ca042e4cd09c9c22769d48655913f13cc 100644
--- a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
+++ b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.spec.tsx
@@ -1,6 +1,5 @@
-import { Button } from '@material-ui/core'
-import { render } from '@testing-library/react'
-import { mount } from 'enzyme'
+import { render, screen } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import EcogestureNotFound from './EcogestureNotFound'
 
@@ -21,11 +20,9 @@ describe('EcogestureNotFound component', () => {
     )
     expect(container).toMatchSnapshot()
   })
-  it('should click on button and be redirected', () => {
-    const wrapper = mount(
-      <EcogestureNotFound text="test" returnPage="ecogestures" />
-    )
-    wrapper.find(Button).simulate('click')
+  it('should click on button and be redirected', async () => {
+    render(<EcogestureNotFound text="test" returnPage="ecogestures" />)
+    await userEvent.click(screen.getByRole('button'))
     expect(mockedNavigate).toHaveBeenCalledWith('/ecogestures')
   })
 })
diff --git a/src/components/Ecogesture/EcogestureTabsView.spec.tsx b/src/components/Ecogesture/EcogestureTabsView.spec.tsx
index e0b184d524c1f7ee70872291c75a57b33f828434..4d68fe4730ab8f3043b23408ae75f214b1a41623 100644
--- a/src/components/Ecogesture/EcogestureTabsView.spec.tsx
+++ b/src/components/Ecogesture/EcogestureTabsView.spec.tsx
@@ -1,15 +1,11 @@
-import { IconButton, Tab } from '@material-ui/core'
 import { render, screen, waitFor } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import EcogestureTabsView from 'components/Ecogesture/EcogestureTabsView'
-import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import * as profileActions from 'store/profile/profile.slice'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import { createMockEcolyoStore } from 'tests/__mocks__/store'
-import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
-import EcogestureEmptyList from './EcogestureEmptyList/EcogestureEmptyList'
-import EcogestureInitModal from './EcogestureInitModal/EcogestureInitModal'
 
 const mockGetAllEcogestures = jest.fn()
 jest.mock('services/ecogesture.service', () => {
@@ -59,46 +55,43 @@ describe('EcogestureView component', () => {
   it('should render ecogesture init modal', async () => {
     const updateProfileSpy = jest.spyOn(profileActions, 'updateProfile')
 
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <EcogestureTabsView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-
-    expect(wrapper.find(EcogestureInitModal).exists()).toBeTruthy()
-    wrapper.find(IconButton).first().simulate('click')
-    await waitForComponentToPaint(wrapper)
-
+    await waitFor(() => null, { container })
+    expect(screen.getByRole('dialog')).toBeInTheDocument()
+    await userEvent.click(screen.getAllByRole('button')[0])
     expect(updateProfileSpy).toHaveBeenCalledWith({
       haveSeenEcogestureModal: true,
     })
   })
 
   it('should render empty list', async () => {
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <EcogestureTabsView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-
-    expect(wrapper.find(EcogestureEmptyList).exists()).toBeTruthy()
+    await waitFor(() => null, { container })
+    expect(
+      container.getElementsByClassName('ec-empty-container').length
+    ).toBeTruthy()
   })
 
   it('should change tab', async () => {
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <EcogestureTabsView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-
-    wrapper.find(Tab).first().simulate('click')
+    await waitFor(() => null, { container })
+    await userEvent.click(screen.getAllByRole('button')[1])
     mockGetAllEcogestures.mockResolvedValueOnce([])
-
-    await waitForComponentToPaint(wrapper)
-
-    expect(wrapper.find(EcogestureEmptyList).exists()).toBeTruthy()
+    await waitFor(() => null, { container })
+    expect(
+      container.getElementsByClassName('ec-empty-container').length
+    ).toBeTruthy()
   })
 })
diff --git a/src/components/Ecogesture/SingleEcogestureView.spec.tsx b/src/components/Ecogesture/SingleEcogestureView.spec.tsx
index a2ec8525df0ca5410f63b68d8e0ec084b25277c6..5f89c46a40f1459f52cfd96a25921a9cfa704b22 100644
--- a/src/components/Ecogesture/SingleEcogestureView.spec.tsx
+++ b/src/components/Ecogesture/SingleEcogestureView.spec.tsx
@@ -1,10 +1,9 @@
-import { render, waitFor } from '@testing-library/react'
-import { mount } from 'enzyme'
+import { render, screen, waitFor } from '@testing-library/react'
+import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { mockedEcogesturesData } from 'tests/__mocks__/ecogesturesData.mock'
 import { createMockEcolyoStore } from 'tests/__mocks__/store'
-import { waitForComponentToPaint } from 'tests/__mocks__/testUtils'
 import SingleEcogestureView from './SingleEcogestureView'
 
 jest.mock(
@@ -37,52 +36,49 @@ describe('SingleEcogesture component', () => {
     expect(container).toMatchSnapshot()
   })
 
-  it('should change doing status', async () => {
+  it('should be able to show more details and change status', async () => {
     mockGetEcogesturesByIds.mockResolvedValue([mockedEcogesturesData[0]])
-
-    const updatedEcogesture = { ...mockedEcogesturesData[0], doing: true }
+    const updatedEcogesture = { ...mockedEcogesturesData[0], objective: true }
     mockUpdateEcogesture.mockResolvedValueOnce(updatedEcogesture)
-    const wrapper = mount(
+
+    const { container } = render(
       <Provider store={store}>
         <SingleEcogestureView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-    wrapper.find('.doing-btn').first().simulate('click')
-    await waitForComponentToPaint(wrapper)
+    await waitFor(() => null, { container })
+    const [, objective] = screen.getAllByRole('button')
+    await userEvent.click(objective)
     expect(mockUpdateEcogesture).toHaveBeenCalledWith(updatedEcogesture)
   })
-  it('should change objective status', async () => {
-    mockGetEcogesturesByIds.mockResolvedValue([mockedEcogesturesData[0]])
 
-    const updatedEcogesture = { ...mockedEcogesturesData[0], objective: true }
+  it('should change doing status', async () => {
+    mockGetEcogesturesByIds.mockResolvedValue([mockedEcogesturesData[0]])
+    const updatedEcogesture = { ...mockedEcogesturesData[0], doing: true }
     mockUpdateEcogesture.mockResolvedValueOnce(updatedEcogesture)
 
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <SingleEcogestureView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-    wrapper.find('.objective-btn').first().simulate('click')
-    await waitForComponentToPaint(wrapper)
+    await waitFor(() => null, { container })
+    const [, , doing] = screen.getAllByRole('button')
+    await userEvent.click(doing)
     expect(mockUpdateEcogesture).toHaveBeenCalledWith(updatedEcogesture)
   })
+
   it('should toggle more details', async () => {
     mockGetEcogesturesByIds.mockResolvedValue([mockedEcogesturesData[0]])
 
-    const wrapper = mount(
+    const { container } = render(
       <Provider store={store}>
         <SingleEcogestureView />
       </Provider>
     )
-    await waitForComponentToPaint(wrapper)
-
-    wrapper.find('.showMore').first().simulate('click')
-    await waitForComponentToPaint(wrapper)
-
-    expect(wrapper.find('.showMore').first().text()).toBe(
-      'ecogesture_modal.show_less'
-    )
+    await waitFor(() => null, { container })
+    const [showMore] = screen.getAllByRole('button')
+    await userEvent.click(showMore)
+    expect(screen.getByText('ecogesture_modal.show_less')).toBeInTheDocument()
   })
 })