test sweep: cover TerminalView widget (T-91)
Adds test/terminal/terminal_view_test.dart — 14 widget tests covering the StatefulWidget that wires gesture / keyboard / scroll plumbing around a `Terminal`: - Construction smoke tests (default, externally-supplied controller / focusNode / scrollController, hardwareKeyboardOnly, readOnly + hardwareKeyboardOnly). - Pointer-signal handling: PointerScrollEvent → PgUp/PgDown keyInput; non-scroll PointerSignalEvent ignored. - didUpdateWidget swap of focusNode / controller / scrollController (auto-created previous instance gets disposed cleanly). - Hardware key event flowing through to Terminal.keyInput. - cursorRect / globalCursorRect after layout. - requestKeyboard / closeKeyboard as no-ops when no edit state is mounted; hasInputConnection false when no input connection is open. - Selection survival when the widget unmounts but an externally-owned controller stays alive. Coverage delta: - terminal_view.dart: 0/188 → 151/188 (80.3%). - Total project: 59.82% → 65.76%; coverage_floor bumped 59 → 65. The remaining ~20% in terminal_view.dart sits in gesture / IME / keyboard-event plumbing (`_onTapUp`, `_onTapDown`, secondary-tap callbacks, `_onInsert`, `_onComposing`, `_handleKeyEvent` shortcut path, `_onKeyboardShow`, `_onEditableRect`, `_scrollToBottom`). These are reachable only through full pointer / IME simulation that's better suited to `integration_test/` than widget tests — leaving them for a later integration-test pass rather than papering over with brittle gesture mocking. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -18,7 +18,7 @@ repository: https://github.com/postmeridiem/clide
|
||||
|
||||
# Pre-push line-coverage floor. Ratchets up only — see D-66.
|
||||
# Reading: `awk -F: '/^coverage_floor:/ {gsub(/ /,"",$2); print $2}' pubspec.yaml`.
|
||||
coverage_floor: 59
|
||||
coverage_floor: 65
|
||||
|
||||
# Project metadata (was project.yaml, folded in per D-056).
|
||||
# version: above is the single source of truth. The Makefile reads
|
||||
|
||||
Reference in New Issue
Block a user