refactor(simulations): supprimer SujetSelector + selectSujet orphelins (FTD-22)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hermann_Kitio 2026-04-21 02:56:02 +03:00
parent 6bfdf15db9
commit 4712a3a16e
4 changed files with 40 additions and 170 deletions

View file

@ -3,7 +3,7 @@
*
* Transitions couvertes :
* idle choosing-subject (selectTask success, tâche avec catalogue)
* choosing-subject task-selected (selectSujet)
* choosing-subject task-selected (changeSubject + setStep depuis /sujets)
* task-selected correcting (submitText déclenché)
* correcting done (correctEe success)
* correcting task-selected (correctEe error)
@ -17,7 +17,7 @@ import { MemoryRouter } from 'react-router-dom'
import React from 'react'
import { describe, it, expect, vi, beforeEach } from 'vitest'
import { useSimulation } from '../useSimulation'
import { SimulationFlowProvider } from '../../state/SimulationFlowProvider'
import { SimulationFlowProvider, useSimulationFlow } from '../../state/SimulationFlowProvider'
import { createSimulation } from '@/entities/production/api'
import { correctEe } from '@/entities/report/api'
import type { Production } from '@/entities/production/types'
@ -142,11 +142,21 @@ describe('useSimulation — submitText', () => {
let resolveCorrect!: (r: Report) => void
mockCorrectEe.mockImplementation(() => new Promise(r => { resolveCorrect = r }))
const { result } = renderHook(() => useSimulation(), { wrapper: createWrapper() })
const { result } = renderHook(
() => {
const sim = useSimulation()
const { setStep } = useSimulationFlow()
return { ...sim, setStep }
},
{ wrapper: createWrapper() },
)
act(() => result.current.selectTask({ tache: 'EE_T1', mode: 'entrainement' }))
await waitFor(() => expect(result.current.step).toBe('choosing-subject'))
act(() => result.current.selectSujet(mockSujet))
act(() => {
result.current.changeSubject(mockSujet)
result.current.setStep('task-selected')
})
await waitFor(() => expect(result.current.step).toBe('task-selected'))
act(() => result.current.submitText('Mon texte de production.'))
@ -161,11 +171,21 @@ describe('useSimulation — submitText', () => {
mockCreateSimulation.mockResolvedValue(mockProduction)
mockCorrectEe.mockRejectedValue({ code: 'SIMULATION_NOT_FOUND', message: 'Not found' })
const { result } = renderHook(() => useSimulation(), { wrapper: createWrapper() })
const { result } = renderHook(
() => {
const sim = useSimulation()
const { setStep } = useSimulationFlow()
return { ...sim, setStep }
},
{ wrapper: createWrapper() },
)
act(() => result.current.selectTask({ tache: 'EE_T1', mode: 'entrainement' }))
await waitFor(() => expect(result.current.step).toBe('choosing-subject'))
act(() => result.current.selectSujet(mockSujet))
act(() => {
result.current.changeSubject(mockSujet)
result.current.setStep('task-selected')
})
await waitFor(() => expect(result.current.step).toBe('task-selected'))
act(() => result.current.submitText('Mon texte.')
@ -188,11 +208,21 @@ describe('useSimulation — reset', () => {
it('reset depuis task-selected remet step à idle et production à null', async () => {
mockCreateSimulation.mockResolvedValue(mockProduction)
const { result } = renderHook(() => useSimulation(), { wrapper: createWrapper() })
const { result } = renderHook(
() => {
const sim = useSimulation()
const { setStep } = useSimulationFlow()
return { ...sim, setStep }
},
{ wrapper: createWrapper() },
)
act(() => result.current.selectTask({ tache: 'EE_T1', mode: 'entrainement' }))
await waitFor(() => expect(result.current.step).toBe('choosing-subject'))
act(() => result.current.selectSujet(mockSujet))
act(() => {
result.current.changeSubject(mockSujet)
result.current.setStep('task-selected')
})
await waitFor(() => expect(result.current.step).toBe('task-selected'))
act(() => result.current.reset())