review(p9-fb-24): 회차 1 nit 반영 — 중복 inspect test, 카운트, sep 상수

회차 1 review (PR #97 회차 1) 의 4 건 actionable nit 모두 수렴.

- `crates/kebab-tui/tests/inspect.rs`: pre-fb-24 의 `page_keys_scroll_by_ten`
  이 신규 `page_down_scrolls_by_ten_in_inspect` + `page_up_rewinds_by_ten_saturating_in_inspect`
  와 중복 커버리지였음. 신규 두 테스트가 더 정밀 (PgUp 의 25→15→ 그 다음
  3→0 saturating 명시) 이라 기존을 삭제하고 신규로 대체. inspect 테스트
  -1 (14 → 13).
- `tasks/HOTFIXES.md`, `tasks/p9/p9-fb-24-tui-affordances.md`: 테스트
  카운트 `기존 720+` → `기존 695개 (cargo test --workspace -j 1 기준
  716 passed)` 정확화. 영속 기록.
- `crates/kebab-tui/src/run.rs`: status bar 의 magic string `"  │  "`
  를 `const STATUS_SEPARATOR: &str` 로 추출. docstring 의 rendered shape
  과 sync 보장 코멘트 추가.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-04 17:17:49 +00:00
parent 8bd423e2dd
commit 774acc5c0d
4 changed files with 11 additions and 19 deletions

View File

@@ -288,6 +288,12 @@ fn render_header(f: &mut Frame, area: Rect, app: &App) {
f.render_widget(Paragraph::new(line), area);
}
/// p9-fb-24: separator between status bar fragments. Two spaces +
/// box-drawings light vertical (U+2502) + two spaces. Single source
/// — the docstring of `render_status_bar` references the rendered
/// shape, so any change here MUST update that docstring too.
const STATUS_SEPARATOR: &str = "";
/// p9-fb-24: always-visible status bar. Layout (left → right):
///
/// ```text
@@ -315,7 +321,7 @@ pub fn render_status_bar(f: &mut Frame, area: Rect, app: &App) {
let doc_count = app.library.inner.docs.len();
let dynamic = dynamic_status(app);
let sep = "";
let sep = STATUS_SEPARATOR;
let mut line_text = format!(
"kebab v{}{sep}{}{sep}{} docs{sep}",
env!("CARGO_PKG_VERSION"),

View File

@@ -173,24 +173,10 @@ fn j_k_scroll_within_bounds_no_panic() {
assert_eq!(app.inspect.as_ref().unwrap().scroll, 0);
}
#[test]
fn page_keys_scroll_by_ten() {
let mut app = fresh_app();
handle_key_inspect(
&mut app,
KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE),
);
assert_eq!(app.inspect.as_ref().unwrap().scroll, 10);
handle_key_inspect(
&mut app,
KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE),
);
assert_eq!(app.inspect.as_ref().unwrap().scroll, 0);
}
/// p9-fb-24 task 2: PageDown advances scroll by `PAGE_STEP` (= 10).
/// Pins the constant so a future viewport-aware refactor surfaces
/// here, not silently in user-visible behaviour.
/// here, not silently in user-visible behaviour. Replaces the
/// pre-fb-24 `page_keys_scroll_by_ten` (deleted as duplicate).
#[test]
fn page_down_scrolls_by_ten_in_inspect() {
let mut app = fresh_app();

View File

@@ -29,7 +29,7 @@ git history.
**Spec contract impact**: p9-fb-13 follow-up (footer 단행 row) + p9-fb-03 (ingest dedicated row) frozen spec 들과 layout 충돌. frozen 텍스트 보존, 본 HOTFIXES 항목 + spec `tasks/p9/p9-fb-24-tui-affordances.md` + design `docs/superpowers/specs/2026-05-04-p9-fb-24-tui-affordances-design.md` 가 live source of truth.
**Tests added**: 약 21 신규 (status_bar 통합 10 + library 헤더 1 + Ask PgUp/PgDn 3 + Inspect PgUp/PgDn 회귀 2 + format_doc_header 단위 1, 잔여는 cascade branch 별). 기존 720+ 워크스페이스 테스트 무수정 통과.
**Tests added**: 약 21 신규 (status_bar 통합 10 + library 헤더 1 + Ask PgUp/PgDn 3 + Inspect PgUp/PgDn 회귀 2 + format_doc_header 단위 1, 잔여는 cascade branch 별). 기존 695개 워크스페이스 테스트 무수정 통과 (`cargo test --workspace -j 1` 기준 716 passed).
**Known limitation (deferred)**: `PAGE_STEP = 10` 은 viewport-aware 가 아님 — 24 row 작은 터미널에서 한 페이지 > viewport, 80 row 큰 터미널에서 한 페이지 < viewport. 후속 task 에서 viewport-aware 로 업그레이드 가능.

View File

@@ -39,7 +39,7 @@ source_feedback: 사용자 도그푸딩 2026-05-04 — Library 컬럼 의미 부
- Ask 통합 3 (PgDn / PgUp / PgUp saturating + freeze follow_tail / PgDn from Insert).
- Inspect 통합 2 (PAGE_STEP regression).
- format_doc_header 단위 1.
- 기존 720+ 테스트 무수정 통과.
- 기존 695개 테스트 무수정 통과 (`cargo test --workspace -j 1` 기준 716 passed).
## Risks / notes