# D3RO Voice Red E2E 500+ — AI 콘텐츠 신고 기준일: 2026-08-25 이 suite는 실패를 기대하는 **Red-path** E2E다. 테스트가 RED여야 한다는 뜻이 아니라, 잘못된 요청·권한 우회·소유권 위반·중복·rate limit·관리자 전이를 실제 local Supabase Gateway → Edge Function → PostgreSQL 경로에서 거부하는지를 검증한다. 모든 scenario는 GREEN이어야 한다. ## 실행 경계 - 실행기: `server/supabase/tests/content-report-red.e2e.mjs` - 명령: `npm run test:e2e:red` - 대상: `http://127.0.0.1:55321`인 disposable local Supabase만 허용 - production/preview URL, production key, 원격 계정에는 fail-closed한다. - 매 실행마다 임시 사용자 4개를 만들고, 생성된 report를 service role로 먼저 정리한 뒤 auth user를 삭제한다. 원문 snapshot·token·email·service key는 출력하지 않는다. - PostgREST/RPC에는 `sb_secret_` local key를 사용한다. 현 local GoTrue admin 삭제는 legacy `service_role` JWT가 필요한 CLI 호환 경계라 fixture cleanup에만 사용하며, remote 환경에는 실행 자체를 허용하지 않는다. ## 정확한 scenario 수: 650 | family | 수 | 실제 E2E oracle | | ---------------------------------- | --: | ------------------------------------------------------------------------------- | | 허용되지 않은 HTTP method | 4 | `405 method_not_allowed`, `Cache-Control: no-store` | | 잘못된/없는 content type | 6 | `415 content_type_must_be_json` | | 인증 우회 | 3 | `401` | | idempotency key 없음·위조 | 96 | `400` fail-closed | | root body 누락·추가 key | 64 | strict exact-key `400 invalid_request` | | kind 위조 | 64 | `ai_output` 이외 차단 | | source type·generation ID 위조 | 96 | allowlist·UUID·shape 차단 | | 신고 사유 위조 | 96 | reason allowlist 차단 | | snapshot 공백·초과·타입 위조 | 96 | 1~4000 code point 경계 차단 | | comment 공백·초과·타입 위조 | 96 | optional 1~500 code point 경계 차단 | | 유효 source 3종 | 3 | Talk/Commands/Actions receipt → `201` | | 멱등성·source ownership·ledger ACL | 7 | replay/conflict/duplicate/cross-user/purpose mismatch/unknown/direct table 차단 | | rate limit | 11 | 10번째까지 `201`, 11번째 `429` | | moderation ACL·전이 | 8 | 일반 사용자 차단, manager queue/review/replay/conflict/dismiss/terminal lock | 합계는 **650**이다. 실행기는 suite 시작 전에 stateless 621개, 종료 전에 전체 650개를 강제 검증하므로 누군가 case를 줄이면 테스트가 fail한다. ## 포함하지 않는 증거 이 suite는 Edge/DB Red E2E다. Play가 서명한 실기기에서의 Talk·Commands·Actions 신고 sheet, 실제 provider response header, production moderation 운영, 광고·결제·FCM E2E는 대체하지 않는다. 그 경계는 [Play 출시 체크리스트](../play/04-release-checklist.md)에 별도로 남아 있다.