create(['nom' => 'Classe A']); $autre = Classe::factory()->create(['user_id' => $classe->user_id, 'nom' => 'Classe B']); commeProf($this, $classe->prof) ->get(route('mes-classes.show', $classe)) ->assertOk() ->assertSee('Classe A') ->assertSee('Classe B') // le sélecteur de classe liste bien les deux ->assertSee('0', false) // Élèves : 0 ->assertDontSee('Mains levées') ->assertDontSee('Dans la séance'); }); test('une séance en cours montre les vrais élèves, leur état et leur dernière correction', function () { $classe = Classe::factory()->create(); $lab = Lab::factory()->create(['titre' => 'Lab 08']); $seance = Seance::create(['classe_id' => $classe->id, 'lab_id' => $lab->id, 'statut' => Seance::EN_COURS, 'demarree_a' => now()]); $eleveActif = Eleve::factory()->create(['classe_id' => $classe->id, 'prenom' => 'Léa']); $eleveEchec = Eleve::factory()->create(['classe_id' => $classe->id, 'prenom' => 'Yanis']); $sessionActive = LabSession::create(['seance_id' => $seance->id, 'eleve_id' => $eleveActif->id, 'lab_id' => $lab->id, 'etat' => LabSession::ACTIF]); Correction::create(['lab_session_id' => $sessionActive->id, 'reussi' => true, 'note' => 8, 'note_max' => 10, 'details' => []]); LabSession::create(['seance_id' => $seance->id, 'eleve_id' => $eleveEchec->id, 'lab_id' => $lab->id, 'etat' => LabSession::ECHEC, 'raison_echec' => 'CREATE_FAILED']); commeProf($this, $classe->prof) ->get(route('mes-classes.show', $classe)) ->assertOk() ->assertSee('Lab 08') ->assertSee('Léa') ->assertSee('Réussi') ->assertSee('8/10') ->assertSee('Yanis') ->assertSee('Échec (3 essais)') ->assertSee('1/2') // dans la séance : 1 admis/actif sur 2 élèves ->assertSee('100%') // réussite moyenne : la seule correction existante a réussi ->assertDontSee('Mains levées'); // pas de visio ouverte : la carte n'existe pas }); test('un prof ne voit pas la séance en cours d’une autre classe', function () { $classe = Classe::factory()->create(); $autreClasse = Classe::factory()->create(); $lab = Lab::factory()->create(); Seance::create(['classe_id' => $autreClasse->id, 'lab_id' => $lab->id, 'statut' => Seance::EN_COURS, 'demarree_a' => now()]); commeProf($this, $classe->prof) ->get(route('mes-classes.show', $classe)) ->assertOk() ->assertDontSee('Dans la séance'); });