Files
portfolio-hub/.proofline/criteria/ac-0018.md
T

1.4 KiB

id, status
id status
ac-0018 active

전략 API 오류 분류 계약

Criterion

전략 조회·선택·관리 API는 미존재 404, inactive 신규 선택·참조 중 삭제·중복 nick 및 충돌하는 동일 (name, config) POST는 409, 제거 필드·malformed 입력·explicit null 또는 trim 후 blank nick은 422, 권한 부족은 403으로 서로 구분해 반환해야 한다. create의 nick 생략은 호환 기본값 생성을 허용하고 PATCH의 nick 생략은 기존 값을 보존하며 모든 거부 요청은 row와 revision을 변경하지 않아야 한다.

Verification

  • 성공 조건: omission, explicit null, blank, duplicate와 충돌 POST가 각각 승인된 성공 또는 오류 경계로 처리되고 오류 응답은 안정적이며 비민감하다.
  • 실패·경계 조건: 권한 부족을 404로, inactive·중복·충돌을 422로, null·blank를 묵시적 omission으로 합치거나 거부 요청이 row 또는 revision을 바꾸면 실패한다.
  • 검사 방법: 조건별 독립 API negative test로 status code, row identity, nick, status와 revision의 무변경을 검사한다.
  • 현재 구현 평가: tests/test_v1_strategies.py는 omission, explicit null, blank와 duplicate nick 경계를 검사하고 기존 negative matrix도 scoped 재실행에서 PASS했다. 충돌하는 동일 (name, config) POST의 409·무변경 계약은 현재 구현·테스트에 없어 이 부분은 PARTIAL이다.