diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e6661dbfcc524b436c7a5e8d67ce1f93124ac433..3c12ea75791485aad6dfeb95d44c25b577a73372 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,5 @@
 default:
-  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:14.19.3-alpine
+  image: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/node:16.19.1-alpine
   services:
     - name: ${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/docker:20.10.9-dind
       alias: docker
diff --git a/package.json b/package.json
index bb2761d794eecab9bb0a5541d3b507faa862424a..884278f061cbc2e7dcb4bd008e1ed45890124718 100644
--- a/package.json
+++ b/package.json
@@ -87,7 +87,7 @@
     "@types/enzyme": "^3.10.8",
     "@types/file-saver": "^2.0.5",
     "@types/history": "^5.0.0",
-    "@types/jest": "^29.0.0",
+    "@types/jest": "^29.4.0",
     "@types/lodash": "^4.14.149",
     "@types/luxon": "^3.0.0",
     "@types/node-fetch": "^2.5.7",
@@ -116,8 +116,8 @@
     "eslint-plugin-react-hooks": "^4.2.0",
     "git-directory-deploy": "1.5.1",
     "husky": "^8.0.1",
-    "jest-canvas-mock": "^2.3.0",
-    "jest-junit": "^14.0.0",
+    "jest-canvas-mock": "^2.4.0",
+    "jest-junit": "^15.0.0",
     "lint-staged": ">=8",
     "loglevel": "^1.6.6",
     "luxon": "^3.0.0",
diff --git a/src/components/Action/ActionCard.spec.tsx b/src/components/Action/ActionCard.spec.tsx
index b91d9de04786fb04148019726bc3c6a397ab8368..db4315c17d86bb499e36897017baa0fe738c1105 100644
--- a/src/components/Action/ActionCard.spec.tsx
+++ b/src/components/Action/ActionCard.spec.tsx
@@ -1,4 +1,5 @@
 import { Button } from '@material-ui/core'
+import defaultIcon from 'assets/icons/visu/duel/default.svg'
 import EcogestureModal from 'components/Ecogesture/EcogestureModal'
 import { mount } from 'enzyme'
 import React from 'react'
@@ -21,7 +22,8 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
-const mockImportIconById = jest.fn()
+
+const mockImportIconById = jest.fn(() => defaultIcon)
 jest.mock('utils/utils', () => {
   return {
     importIconById: jest.fn(() => {
diff --git a/src/components/Action/ActionChoose.spec.tsx b/src/components/Action/ActionChoose.spec.tsx
index d1c67697be9abf67bf3f5fc4fad3c55749b509d8..41a5db7fddb76e0eed26fa8cb77650eafe14b6b7 100644
--- a/src/components/Action/ActionChoose.spec.tsx
+++ b/src/components/Action/ActionChoose.spec.tsx
@@ -17,6 +17,15 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+
+const mockGetEcogesturesByIds = jest.fn(() => [])
+jest.mock('services/ecogesture.service', () => {
+  return jest.fn(() => {
+    return {
+      getEcogesturesByIds: mockGetEcogesturesByIds,
+    }
+  })
+})
 const mockStore = configureStore([])
 
 describe('ActionChoose component', () => {
diff --git a/src/components/Action/ActionList.spec.tsx b/src/components/Action/ActionList.spec.tsx
index 038cc7e91c6719a71b88aa12fa2488bdbe714f83..85516527b9cc7b8cbba8b9bf854dc0f5be14063a 100644
--- a/src/components/Action/ActionList.spec.tsx
+++ b/src/components/Action/ActionList.spec.tsx
@@ -23,6 +23,16 @@ jest.mock('services/action.service', () => {
   })
 })
 
+jest.mock('cozy-ui/transpiled/react/I18n', () => {
+  return {
+    useI18n: jest.fn(() => {
+      return {
+        t: (str: string) => str,
+      }
+    }),
+  }
+})
+
 describe('ActionList component', () => {
   it('should be rendered correctly', () => {
     mockgetDefaultActions.mockResolvedValueOnce(defaultEcogestureData)
diff --git a/src/components/Action/ActionView.spec.tsx b/src/components/Action/ActionView.spec.tsx
index d6bd172a6fc807182814ba36a57c93cbf684779b..e10f9778f36aa4950e842de684702d7332c9cbe5 100644
--- a/src/components/Action/ActionView.spec.tsx
+++ b/src/components/Action/ActionView.spec.tsx
@@ -29,6 +29,7 @@ jest.mock('react-router-dom', () => ({
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 jest.mock('components/Header/Header', () => 'mock-header')
 jest.mock('components/Content/Content', () => 'mock-content')
+jest.mock('components/Action/ActionBegin', () => 'mock-action-begin')
 
 const mockStore = configureStore([])
 describe('ActionView component', () => {
diff --git a/src/components/Analysis/MaxConsumptionCard.spec.tsx b/src/components/Analysis/MaxConsumptionCard.spec.tsx
index f5cad1f946cd0de6d4fb192fed62d931a5184364..5a3ac902d1c0823b6692c2953888b9a9626cd28e 100644
--- a/src/components/Analysis/MaxConsumptionCard.spec.tsx
+++ b/src/components/Analysis/MaxConsumptionCard.spec.tsx
@@ -5,6 +5,7 @@ import React from 'react'
 import * as reactRedux from 'react-redux'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
+import mockClient from '../../../tests/__mocks__/client'
 import { globalStateData } from '../../../tests/__mocks__/globalStateData.mock'
 import MaxConsumptionCard from './MaxConsumptionCard'
 
@@ -17,6 +18,23 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+
+const mockGetMaxLoad = jest.fn(() => 0)
+jest.mock('services/consumption.service', () => {
+  return jest.fn(() => {
+    return {
+      getMaxLoad: mockGetMaxLoad,
+    }
+  })
+})
+jest.mock('cozy-client', () => {
+  return {
+    useClient: jest.fn(() => {
+      return mockClient
+    }),
+  }
+})
+
 const mockStore = configureStore([])
 const mockUseSelector = jest.spyOn(reactRedux, 'useSelector')
 
diff --git a/src/components/Analysis/MonthlyAnalysis.spec.tsx b/src/components/Analysis/MonthlyAnalysis.spec.tsx
index 21cfb67c11be43c25e72274b0ad9b1fa6c280122..ea7ede3c010c4eb3cd9a501bceb4b6c03706195f 100644
--- a/src/components/Analysis/MonthlyAnalysis.spec.tsx
+++ b/src/components/Analysis/MonthlyAnalysis.spec.tsx
@@ -1,4 +1,5 @@
 import MonthlyAnalysis from 'components/Analysis/MonthlyAnalysis'
+import { FluidType } from 'enum/fluid.enum'
 import { mount } from 'enzyme'
 import { DateTime } from 'luxon'
 import React from 'react'
@@ -6,7 +7,6 @@ import * as reactRedux from 'react-redux'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
 import { globalStateData } from '../../../tests/__mocks__/globalStateData.mock'
-import { userChallengeExplo1OnGoing } from '../../../tests/__mocks__/userChallengeData.mock'
 
 jest.mock('cozy-ui/transpiled/react/I18n', () => {
   return {
@@ -17,12 +17,20 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+jest.mock('services/consumption.service')
+jest.mock(
+  'components/PerformanceIndicator/FluidPerformanceIndicator',
+  () => 'mock-fluid-performance-indicator'
+)
+
 const mockStore = configureStore([])
 
 const mockUseSelector = jest.spyOn(reactRedux, 'useSelector')
 
 describe('MonthlyAnalysis component', () => {
-  mockUseSelector.mockReturnValue(userChallengeExplo1OnGoing)
+  mockUseSelector.mockReturnValue({
+    fluidTypes: [FluidType.ELECTRICITY, FluidType.GAS],
+  })
 
   it('should be rendered correctly', () => {
     const store = mockStore({
diff --git a/src/components/Analysis/PieChart.spec.tsx b/src/components/Analysis/PieChart.spec.tsx
index 371b1e57c542b68586cae370d9d4268e16db8f87..84bba0ee8718f6d486f76884a1b214e248b027ab 100644
--- a/src/components/Analysis/PieChart.spec.tsx
+++ b/src/components/Analysis/PieChart.spec.tsx
@@ -17,6 +17,16 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+
+const mockGetAllLastPrices = jest.fn()
+jest.mock('services/fluidsPrices.service', () => {
+  return jest.fn(() => {
+    return {
+      getAllLastPrices: mockGetAllLastPrices,
+    }
+  })
+})
+
 const mockStore = configureStore([])
 
 describe('PieChart component', () => {
diff --git a/src/components/Challenge/ChallengeCardUnlocked.spec.tsx b/src/components/Challenge/ChallengeCardUnlocked.spec.tsx
index 3a8dcbb186ec5b0930ac94e722e45bae3d847810..d705c58d051219aff5aecefd1eb41bc1e62b1409 100644
--- a/src/components/Challenge/ChallengeCardUnlocked.spec.tsx
+++ b/src/components/Challenge/ChallengeCardUnlocked.spec.tsx
@@ -1,8 +1,10 @@
+import defaultIcon from 'assets/icons/visu/challenge/challengeLocked.svg'
 import { FluidType } from 'enum/fluid.enum'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
+import UsageEventService from 'services/usageEvent.service'
 import { globalStateData } from '../../../tests/__mocks__/globalStateData.mock'
 import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
 import ChallengeCardUnlocked from './ChallengeCardUnlocked'
@@ -26,13 +28,16 @@ jest.mock('services/challenge.service', () => {
     }
   })
 })
-const mockImportIconById = jest.fn()
+const mockImportIconById = jest.fn(() => defaultIcon)
 jest.mock('utils/utils', () => {
   return {
     importIconById: jest.fn(() => mockImportIconById),
     getChallengeTitleWithLineReturn: jest.fn(() => 'Challenge 1'),
   }
 })
+jest.mock('services/usageEvent.service')
+const mockAddEvent = jest.fn()
+UsageEventService.addEvent = mockAddEvent
 
 const mockStore = configureStore([])
 
diff --git a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
index f332cd631c72abc6e3a1e4f54a6a7daf20d5ad74..50dde72a4dac679eee16dd9de80d2c7d6ce737a1 100644
--- a/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
+++ b/src/components/ConsumptionVisualizer/DataloadConsumptionVisualizer.spec.tsx
@@ -25,6 +25,15 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
   }
 })
 
+const mockGetAllLastPrices = jest.fn()
+jest.mock('services/fluidsPrices.service', () => {
+  return jest.fn(() => {
+    return {
+      getAllLastPrices: mockGetAllLastPrices,
+    }
+  })
+})
+
 const mockStore = configureStore([])
 const mockChartStateLoaded = { ...mockInitialChartState, loading: false }
 const emptyDataLoad = { ...baseDataLoad, value: -1 }
diff --git a/src/components/ConsumptionVisualizer/EstimatedConsumptionModal.spec.tsx b/src/components/ConsumptionVisualizer/EstimatedConsumptionModal.spec.tsx
index 30499b12e2959060c4529a247b2ebed526db0ee4..6c6816dff5e797fce51b7a35c762fe908a279628 100644
--- a/src/components/ConsumptionVisualizer/EstimatedConsumptionModal.spec.tsx
+++ b/src/components/ConsumptionVisualizer/EstimatedConsumptionModal.spec.tsx
@@ -15,6 +15,15 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
   }
 })
 
+const mockGetAllLastPrices = jest.fn()
+jest.mock('services/fluidsPrices.service', () => {
+  return jest.fn(() => {
+    return {
+      getAllLastPrices: mockGetAllLastPrices,
+    }
+  })
+})
+
 const mockStore = configureStore([])
 const mockHandleClose = jest.fn()
 describe('EstimatedConsumptionModal component', () => {
diff --git a/src/components/Duel/DuelUnlocked.spec.tsx b/src/components/Duel/DuelUnlocked.spec.tsx
index cbc81c630edb99cb32fdb76bff01414b870abd21..cf155a120faac08c69d2141685bf8e48968b2b42 100644
--- a/src/components/Duel/DuelUnlocked.spec.tsx
+++ b/src/components/Duel/DuelUnlocked.spec.tsx
@@ -1,4 +1,5 @@
 import Button from '@material-ui/core/Button'
+import defaultIcon from 'assets/icons/visu/duel/default.svg'
 import StyledIcon from 'components/CommonKit/Icon/StyledIcon'
 import DuelUnlocked from 'components/Duel/DuelUnlocked'
 import { FluidType } from 'enum/fluid.enum'
@@ -7,6 +8,7 @@ import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
+import UsageEventService from 'services/usageEvent.service'
 import { formatNumberValues } from 'utils/utils'
 import { globalStateData } from '../../../tests/__mocks__/globalStateData.mock'
 import { userChallengeData } from '../../../tests/__mocks__/userChallengeData.mock'
@@ -20,7 +22,7 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
-const mockImportIconById = jest.fn()
+const mockImportIconById = jest.fn(() => defaultIcon)
 const mockFormatNumberValues = jest.fn()
 jest.mock('utils/utils', () => {
   return {
@@ -43,9 +45,21 @@ jest.mock('services/challenge.service', () => {
   })
 })
 
+const mockAddEvent = jest.fn()
+jest.mock('services/usageEvent.service')
+UsageEventService.addEvent = mockAddEvent
+
 const mockStore = configureStore([])
 
 describe('DuelUnlocked component', () => {
+  beforeAll(() => {
+    jest.useFakeTimers()
+  })
+
+  afterAll(() => {
+    jest.useRealTimers()
+  })
+
   it('should be rendered correctly', () => {
     const store = mockStore({
       ecolyo: {
diff --git a/src/components/Ecogesture/EcogestureEmptyList.tsx b/src/components/Ecogesture/EcogestureEmptyList.tsx
index dfeb15139aa0387088e93412481be8f1bb93991b..521cf35fd068c437da07b0ed2be69cd6ea6ba983 100644
--- a/src/components/Ecogesture/EcogestureEmptyList.tsx
+++ b/src/components/Ecogesture/EcogestureEmptyList.tsx
@@ -53,7 +53,7 @@ const EcogestureEmptyList: React.FC<EcogestureEmptyListProps> = ({
 
           {isSelectionDone && (
             <Button
-              aria-label={t('ecogesture.emptyList.reinit')}
+              aria-label={t('ecogesture.reinit')}
               onClick={handleReinitClick}
               classes={{
                 root: 'reinit-button btn-profile-next rounded',
diff --git a/src/components/Ecogesture/SingleEcogesture.tsx b/src/components/Ecogesture/SingleEcogesture.tsx
index 563ed8ca74f5473180c379c32f8b85380ac2a025..ec5c06c56355dd76471d70663579cf2bfa864e80 100644
--- a/src/components/Ecogesture/SingleEcogesture.tsx
+++ b/src/components/Ecogesture/SingleEcogesture.tsx
@@ -134,13 +134,13 @@ const SingleEcogesture: React.FC = () => {
     return (
       <>
         <CozyBar
-          titleKey={t('common.title_ecogesture')}
+          titleKey={'common.title_ecogesture'}
           displayBackArrow={true}
           backFunction={() => navigate('/ecogestures')}
         />
         <Header
           setHeaderHeight={defineHeaderHeight}
-          desktopTitleKey={t('common.title_ecogesture')}
+          desktopTitleKey={'common.title_ecogesture'}
           displayBackArrow={true}
         />
         <Content height={headerHeight}>
diff --git a/src/components/Onboarding/WelcomeModal.spec.tsx b/src/components/Onboarding/WelcomeModal.spec.tsx
index 32a1543149d0d63b6b375cae68d5d2e210d3675e..c6ed7950f96f56e6a5ac137545cc20a7a1001dae 100644
--- a/src/components/Onboarding/WelcomeModal.spec.tsx
+++ b/src/components/Onboarding/WelcomeModal.spec.tsx
@@ -4,6 +4,7 @@ import toJson from 'enzyme-to-json'
 import React from 'react'
 import { Provider } from 'react-redux'
 import configureStore from 'redux-mock-store'
+import thunk from 'redux-thunk'
 import * as profileActions from 'store/profile/profile.actions'
 import mockClient from '../../../tests/__mocks__/client'
 import { profileData } from '../../../tests/__mocks__/profileData.mock'
@@ -60,8 +61,9 @@ jest.mock('mjml-browser', () => {
     }
   })
 })
+jest.mock('services/profile.service')
 
-const mockStore = configureStore([])
+const mockStore = configureStore([thunk.withExtraArgument({ mockClient })])
 const updateProfileSpy = jest.spyOn(profileActions, 'updateProfile')
 
 describe('WelcomeModal component', () => {
diff --git a/src/components/Options/exportOptions.spec.tsx b/src/components/Options/exportOptions.spec.tsx
index f9248186d09ff934f3b3ca8532afd8beac73aebb..360828b02ce15580dbe5257801d8dc2c1c2ca397 100644
--- a/src/components/Options/exportOptions.spec.tsx
+++ b/src/components/Options/exportOptions.spec.tsx
@@ -13,12 +13,16 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+const mockGetExportableFluids = jest.fn(() => {
+  return []
+})
 jest.mock('services/consumption.service', () => {
   return jest.fn(() => {
     return {
       fetchAllFirstDateData: jest.fn(() => {
         return [null, null, null]
       }),
+      getExportableFluids: mockGetExportableFluids,
     }
   })
 })
diff --git a/src/components/ProfileType/ProfileTypeFinished.spec.tsx b/src/components/ProfileType/ProfileTypeFinished.spec.tsx
index 9e5393094f4f30c5ef0e3ed5cb8654c2572ea8c9..0b4dda62045cb71531415c19515d58f3d05a7d67 100644
--- a/src/components/ProfileType/ProfileTypeFinished.spec.tsx
+++ b/src/components/ProfileType/ProfileTypeFinished.spec.tsx
@@ -2,6 +2,7 @@ import { Button } from '@material-ui/core'
 import { mount } from 'enzyme'
 import React from 'react'
 import { Provider } from 'react-redux'
+import UsageEventService from 'services/usageEvent.service'
 import { mockProfileType } from '../../../tests/__mocks__/profileType.mock'
 import { createMockEcolyoStore } from '../../../tests/__mocks__/store'
 import ProfileTypeFinished from './ProfileTypeFinished'
@@ -24,6 +25,20 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
     }),
   }
 })
+const mockAddEvent = jest.fn()
+jest.mock('services/usageEvent.service')
+UsageEventService.addEvent = mockAddEvent
+
+const mockGetAllProfileTypes = jest.fn()
+const mockDeleteProfileTypes = jest.fn()
+jest.mock('services/profileTypeEntity.service', () => {
+  return jest.fn(() => {
+    return {
+      getAllProfileTypes: mockGetAllProfileTypes,
+      deleteProfileTypes: mockDeleteProfileTypes,
+    }
+  })
+})
 
 describe('ProfileTypeFinished component', () => {
   const store = createMockEcolyoStore()
diff --git a/src/components/Terms/TermsView.spec.tsx b/src/components/Terms/TermsView.spec.tsx
index 015e409851c0a385dfbec77498bde7ab86e96b1b..377c3e49cfb52fea474d0d98cfe63946bbf8c340 100644
--- a/src/components/Terms/TermsView.spec.tsx
+++ b/src/components/Terms/TermsView.spec.tsx
@@ -20,10 +20,12 @@ jest.mock('cozy-ui/transpiled/react/I18n', () => {
 })
 
 const mockCreateTerm = jest.fn()
+const mockGetTermsVersionType = jest.fn()
 jest.mock('services/terms.service', () => {
   return jest.fn(() => {
     return {
       createTerm: mockCreateTerm,
+      getTermsVersionType: mockGetTermsVersionType,
     }
   })
 })
diff --git a/src/migrations/migration.spec.ts b/src/migrations/migration.spec.ts
index 925d7af862ace14e120359bbbce7dae571d0227c..25ef2b9aabddf6ec4267c8d568cc080390e2eeb7 100644
--- a/src/migrations/migration.spec.ts
+++ b/src/migrations/migration.spec.ts
@@ -114,7 +114,9 @@ describe('migration', () => {
     const result = await migrate(migration, mockClient)
     expect(result).toEqual({
       type: MIGRATION_RESULT_FAILED,
-      errors: ["TypeError: Cannot read property 'data' of undefined"],
+      errors: [
+        "TypeError: Cannot read properties of undefined (reading 'data')",
+      ],
     })
   })
 
diff --git a/yarn.lock b/yarn.lock
index ca4d2f7fbcccea50f4ef9752ca13ce6d5a579920..b9f5def0a02167acc632d3bfade469518c031bd8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2807,10 +2807,10 @@
     jest-diff "^26.0.0"
     pretty-format "^26.0.0"
 
-"@types/jest@^29.0.0":
-  version "29.0.3"
-  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.3.tgz#b61a5ed100850686b8d3c5e28e3a1926b2001b59"
-  integrity sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og==
+"@types/jest@^29.4.0":
+  version "29.4.0"
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206"
+  integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==
   dependencies:
     expect "^29.0.0"
     pretty-format "^29.0.0"
@@ -9835,7 +9835,7 @@ istanbul-reports@^3.0.2:
     html-escaper "^2.0.0"
     istanbul-lib-report "^3.0.0"
 
-jest-canvas-mock@^2.3.0:
+jest-canvas-mock@^2.4.0:
   version "2.4.0"
   resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.4.0.tgz#947b71442d7719f8e055decaecdb334809465341"
   integrity sha512-mmMpZzpmLzn5vepIaHk5HoH3Ka4WykbSoLuG/EKoJd0x0ID/t+INo1l8ByfcUJuDM+RIsL4QDg/gDnBbrj2/IQ==
@@ -10023,10 +10023,10 @@ jest-jasmine2@^26.6.3:
     pretty-format "^26.6.2"
     throat "^5.0.0"
 
-jest-junit@^14.0.0:
-  version "14.0.0"
-  resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-14.0.0.tgz#f69fc31bab32224848f443480c2c808fccb2a802"
-  integrity sha512-kALvBDegstTROfDGXH71UGD7k5g7593Y1wuX1wpWT+QTYcBbmtuGOA8UlAt56zo/B2eMIOcaOVEON3j0VXVa4g==
+jest-junit@^15.0.0:
+  version "15.0.0"
+  resolved "https://registry.yarnpkg.com/jest-junit/-/jest-junit-15.0.0.tgz#a47544ab42e9f8fe7ada56306c218e09e52bd690"
+  integrity sha512-Z5sVX0Ag3HZdMUnD5DFlG+1gciIFSy7yIVPhOdGUi8YJaI9iLvvBb530gtQL2CHmv0JJeiwRZenr0VrSR7frvg==
   dependencies:
     mkdirp "^1.0.4"
     strip-ansi "^6.0.1"