Skip to content

Commit 249b4d6

Browse files
committed
fix: plane on teletravail
1 parent 55ca224 commit 249b4d6

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

src/components/outils/TeletravailSimulator.tsx

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import Image from 'next/image'
55
import { useEffect, useMemo, useRef } from 'react'
66
import useParamContext from 'src/providers/ParamProvider'
77
import { Category } from 'types/category'
8-
import { ComputedEquivalent, DeplacementType } from 'types/equivalent'
8+
import { ComputedEquivalent, DeplacementEquivalent, DeplacementType } from 'types/equivalent'
99
import { categories } from 'data/categories'
1010
import { deplacements } from 'data/categories/deplacement'
1111
import formatNumber from 'utils/formatNumber'
1212
import { track } from 'utils/matomo'
13+
import { filterByDistance } from 'utils/transport'
1314
import useItineraries from 'hooks/useItineraries'
1415
import LocalNumber from 'components/base/LocalNumber'
1516
import Etiquette from 'components/comparateur/Etiquette'
@@ -45,11 +46,19 @@ const TeletravailSimulator = () => {
4546
} = useParamContext()
4647

4748
const t = useTranslations('transport.teletravail')
48-
const deplacement = useMemo(
49-
() => transports.find((x) => x.slug === transport) as ComputedEquivalent & { type: DeplacementType },
50-
[transport]
51-
)
5249
const { data: itineraries } = useItineraries(start, end, 'télétravail')
50+
const deplacement = useMemo(() => {
51+
if (transport === 'avion') {
52+
const avions = transports.filter((x) => x.slug.startsWith('avion')) as DeplacementEquivalent[]
53+
const distance = itineraries?.plane || 0
54+
return (avions.find((avion) => filterByDistance(avion.display, distance)) || avions[0]) as ComputedEquivalent & {
55+
type: DeplacementType
56+
}
57+
} else {
58+
return transports.find((x) => x.slug === transport) as ComputedEquivalent & { type: DeplacementType }
59+
}
60+
}, [transport, itineraries])
61+
5362
const total = useMemo(() => {
5463
if (itineraries && deplacement) {
5564
const distance = itineraries[deplacement.type]
@@ -151,7 +160,7 @@ const TeletravailSimulator = () => {
151160
<span className={styles.header}>{t('or')}</span>
152161
<span className={styles.greenValue}>
153162
<span className={styles.number} data-testid='teletravail-saved-percent'>
154-
<LocalNumber number={formatNumber((0.75 * homeOffice * total) / 99)} />
163+
<LocalNumber number={formatNumber((0.75 * homeOffice * total) / 91)} />
155164
</span>{' '}
156165
%
157166
</span>

teste/teletravail.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ test("Recherche de la ville de départ et d'arrivée", async ({ page }) => {
5656
await expect(page.getByTestId('input-teletravail-value')).toHaveValue('1')
5757
await expect(page.getByTestId('teletravail-generated-value')).toHaveText('71.8')
5858
await expect(page.getByTestId('teletravail-saved-value')).toHaveText('26.9')
59-
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('0.27')
59+
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('0.3')
6060
await expect(page.getByTestId('etiquette-value')).toHaveText('26.9 kg CO₂e')
6161

6262
await page.getByTestId('input-teletravail-value').fill('4')
6363
await expect(page.getByTestId('input-presentiel-value')).toHaveValue('2')
6464
await expect(page.getByTestId('teletravail-generated-value')).toHaveText('71.8')
6565
await expect(page.getByTestId('teletravail-saved-value')).toHaveText('108')
66-
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('1.09')
66+
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('1.18')
6767
await expect(page.getByTestId('etiquette-value')).toHaveText('108 kg CO₂e')
6868

6969
await page.getByTestId('header-share-button').click()
@@ -84,7 +84,7 @@ test('Teletravail default values', async ({ page }) => {
8484
)
8585
await expect(page.getByTestId('teletravail-generated-value')).toHaveText('71.8', { timeout: 10000 })
8686
await expect(page.getByTestId('teletravail-saved-value')).toHaveText('108')
87-
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('1.09')
87+
await expect(page.getByTestId('teletravail-saved-percent')).toHaveText('1.18')
8888
await expect(page.getByTestId('etiquette-value')).toHaveText('108 kg CO₂e')
8989
})
9090

0 commit comments

Comments
 (0)