Approval-Correlation: 0543bb321a84cb936bc0ac4988615840
Plan-SHA256: 437a85f68d151ed4db780511812834041cfec5e7cf021fb77e238d5a6196e6fb
Base-SHA: 256be64ac7
1.7 KiB
1.7 KiB
런타임 흐름
정상 입력 시나리오
- 애플리케이션이
#user-input에 포커스를 둔다. - 사용자가 입력하고 Enter를 누른다.
Input.Submitted이벤트에서 입력값을strip()한다.- 입력창 값을 즉시 빈 문자열로 초기화한다.
trim결과가 유효하면 사용자 메시지를 세션 상태에 기록한다.random.choice(RESPONSE_MESSAGES)가 고정 응답 하나를 선택한다.- 선택 응답을 세션 상태에 기록한다.
- 대화 영역에 사용자 메시지
Label을 추가한다. - 사용자 메시지 바로 뒤에 응답
Label을 추가한다. - 대화 영역을 마지막 항목으로 스크롤한다.
여러 번 제출하면 각 사용자 메시지와 응답 쌍이 제출 순서대로 누적된다.
공백 입력 시나리오
- 사용자가 공백만 포함한 값을 제출한다.
- 입력값을
strip()한다. - 결과가 빈 문자열임을 확인한다.
- 입력창은 비우되 상태, 난수 선택 결과 및 대화 영역은 변경하지 않는다.
종료 시나리오
Escape를 누르면 기존 종료 바인딩이 실행된다.Ctrl+Q를 누르면 기존 종료 바인딩이 실행된다.- 두 동작 모두
quit액션을 통해 애플리케이션 종료를 요청한다.
검증 시나리오
자동 테스트는 결정 가능한 random.choice 결과를 사용해 다음을 확인한다.
- 입력
trim결과가 사용자 메시지로 저장되고 표시되는지 - 사용자 메시지 다음에 응답이 표시되는지
- 공백 입력에서
random.choice가 호출되지 않는지 - 입력창이 제출 후 비워지는지
- 기존 종료 동작이 유지되는지