refactor(kebab-tui): p9-fb-24 task 2 — Inspect PgUp/PgDn via pager::PAGE_STEP
Refactor the Inspect pane's PageDown/PageUp handlers to consume the PAGE_STEP constant from pager.rs instead of hard-coding 10. Adds regression tests to pin the scroll delta (=10), ensuring future viewport-aware refactors surface here rather than silently in user-visible behaviour. Test coverage: added page_down_scrolls_by_ten_in_inspect and page_up_rewinds_by_ten_saturating_in_inspect (+ existing page_keys_scroll_by_ten still passes). Remove #[allow(dead_code)] from pager.rs now that PAGE_STEP is consumed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -426,11 +426,11 @@ pub fn handle_key_inspect(state: &mut App, key: KeyEvent) -> KeyOutcome {
|
||||
KeyOutcome::Continue
|
||||
}
|
||||
(KeyCode::PageDown, _) => {
|
||||
s.scroll = s.scroll.saturating_add(10);
|
||||
s.scroll = s.scroll.saturating_add(crate::pager::PAGE_STEP);
|
||||
KeyOutcome::Continue
|
||||
}
|
||||
(KeyCode::PageUp, _) => {
|
||||
s.scroll = s.scroll.saturating_sub(10);
|
||||
s.scroll = s.scroll.saturating_sub(crate::pager::PAGE_STEP);
|
||||
KeyOutcome::Continue
|
||||
}
|
||||
(KeyCode::Char('c'), _) => {
|
||||
|
||||
@@ -8,10 +8,4 @@
|
||||
//! lives behind this single edit point.
|
||||
|
||||
/// Rows scrolled per `PgUp` / `PgDn` keystroke.
|
||||
///
|
||||
/// `#[allow(dead_code)]` is intentional for the Task 1 commit only —
|
||||
/// Task 2 (Inspect refactor) immediately consumes the constant and
|
||||
/// removes this attribute. Without it, `cargo clippy -- -D warnings`
|
||||
/// rejects this commit alone, breaking the per-task review gate.
|
||||
#[allow(dead_code)]
|
||||
pub(crate) const PAGE_STEP: u16 = 10;
|
||||
|
||||
@@ -188,6 +188,39 @@ fn page_keys_scroll_by_ten() {
|
||||
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.
|
||||
#[test]
|
||||
fn page_down_scrolls_by_ten_in_inspect() {
|
||||
let mut app = fresh_app();
|
||||
let outcome = handle_key_inspect(
|
||||
&mut app,
|
||||
KeyEvent::new(KeyCode::PageDown, KeyModifiers::NONE),
|
||||
);
|
||||
assert_eq!(outcome, KeyOutcome::Continue);
|
||||
assert_eq!(app.inspect.as_ref().unwrap().scroll, 10);
|
||||
}
|
||||
|
||||
/// p9-fb-24 task 2: PageUp rewinds scroll by `PAGE_STEP`, saturating
|
||||
/// at 0 (no underflow).
|
||||
#[test]
|
||||
fn page_up_rewinds_by_ten_saturating_in_inspect() {
|
||||
let mut app = fresh_app();
|
||||
app.inspect.as_mut().unwrap().scroll = 25;
|
||||
handle_key_inspect(
|
||||
&mut app,
|
||||
KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE),
|
||||
);
|
||||
assert_eq!(app.inspect.as_ref().unwrap().scroll, 15);
|
||||
app.inspect.as_mut().unwrap().scroll = 3;
|
||||
handle_key_inspect(
|
||||
&mut app,
|
||||
KeyEvent::new(KeyCode::PageUp, KeyModifiers::NONE),
|
||||
);
|
||||
assert_eq!(app.inspect.as_ref().unwrap().scroll, 0);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn c_toggles_collapse_state() {
|
||||
let mut app = fresh_app();
|
||||
|
||||
Reference in New Issue
Block a user