@@ -80,10 +80,16 @@ def test_ci_required_aggregates_existing_job_names(self):
8080 self .assertIn ('name: UI E2E boot (Chromium + simulated API)' , text )
8181 self .assertIn ('name: CI required' , text )
8282 self .assertIn ('if: always()' , text )
83- self .assertIn ('needs: [guard, ui-check, ui-e2e]' , text )
84- self .assertNotIn ('code-health-comment' , text .split ('needs: [guard, ui-check, ui-e2e]' , 1 )[1 ][:200 ])
85- self .assertNotIn ('independent-qa' , text .split ('needs: [guard, ui-check, ui-e2e]' , 1 )[1 ][:200 ])
86- self .assertNotIn ('Independent QA' , text .split ('needs: [guard, ui-check, ui-e2e]' , 1 )[1 ][:400 ])
83+ dependencies = 'needs: [guard, ui-check, ui-e2e, ui-speech-windows]'
84+ self .assertIn (dependencies , text )
85+ self .assertNotIn ('code-health-comment' , text .split (dependencies , 1 )[1 ][:200 ])
86+ self .assertNotIn ('independent-qa' , text .split (dependencies , 1 )[1 ][:200 ])
87+ self .assertNotIn ('Independent QA' , text .split (dependencies , 1 )[1 ][:400 ])
88+ self .assertIn ('Speech E2E Windows (real H.264 + AAC)=${{ needs.ui-speech-windows.result }}' , text )
89+ windows = text .split (' ui-speech-windows:' , 1 )[1 ].split (' code-health-comment:' , 1 )[0 ]
90+ self .assertIn ('HOCUSPOCUS_REQUIRE_SPEECH_AAC: "1"' , windows )
91+ self .assertIn ('playwright install chromium msedge' , windows )
92+ self .assertIn ('scene3d-speech.spec.ts scene3d-media-screen.spec.ts' , windows )
8793
8894 def test_agent_qa_policy_still_lists_ci_required (self ):
8995 text = (ROOT / 'docs/development/AGENT_QA_POLICY.md' ).read_text (encoding = 'utf-8' )
0 commit comments