# test_task3072_benchmark_required.py 의 TestBenchmarkGroundingRequired 안에 추가.
# (setup/_post 픽스처를 그대로 재사용한다)

    def test_rejection_leaves_no_job_registered(self):
        """★★ 거부 시 큐 레지스트리에 job 이 실제로 남지 않는다.

        `job_id not in resp.json()` 만으로는 부족하다 — 400 본문은 항상 {"detail":...}
        이라 가드가 create_job 뒤로 밀려도 그 단언은 참이다(ANU 변이 실증).
        """
        before = len(main.generation_queue._gen_jobs)
        resp = self._post({
            "topic": "대장암 자가진단",
            "contentType": "naver-blog",
            "skills": ["base", "benchmark"],
            "settings": {},
        })
        assert resp.status_code == 400, resp.text
        after = len(main.generation_queue._gen_jobs)
        assert after == before, (
            f"거부인데 job 레코드가 늘었다: {before} -> {after} "
            "(가드가 create_job 뒤로 밀리면 거부마다 job 이 누수된다)"
        )
