Skip to content

test: cover long-label range editing on character displays - #436

Closed
forntoh wants to merge 1 commit into
masterfrom
test/range-edit-cursor
Closed

forntoh wants to merge 1 commit into
masterfrom
test/range-edit-cursor

Conversation

@forntoh

@forntoh forntoh commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Protect the long-label range-edit behavior reported in #397, already corrected by #423. This adds character-cell regression tests; library code and public APIs are unchanged.

ITEM_RANGE / ITEM_RANGE_REF
  enter edit on a 16x2 character display
  shift long label to expose value
  keep blinker on final digit, before "%" suffix
  preserve neighboring row and commit/cancel behavior

Evidence

  • Before: Both new tests fail against tag 5.12.1. With label 12345678901234, the row is <12345678901234 , shift 0, and the cursor covers the label.
    After: Both pass on master 52e10ed (46 assertions). The row is <5678901234:99% , shift 4, with the cursor on the final digit. The existing fix is e311e03 (Add graphical display support聽#423), included in tag 5.13.0.
  • GitHub Arduino unit tests and spell-check pass. Wokwi scenario selection passes; execution is skipped for this draft.
  • All seven host test executables pass using Arduino CI 1.6.2 mocks; the focused regression also passes with the library's custom printf enabled.
  • PlatformIO compile/link passed for IntFloatValues and a separate long-label ITEM_RANGE / ITEM_RANGE_REF fixture on Arduino Uno and ESP32-S3 DevKitC-1.
  • clang-format --dry-run --Werror test/CharacterDisplayRenderer.cpp and git diff --check pass.
  • No physical LCD/board validation or Wokwi run; no Wokwi token is available. The full example/board matrix was not run locally. Keeping this PR in draft for CEO review.

Merge Danger

Door: Two-way

Blast Radius: Tests

Only a new unit-test translation unit is added. No issue-closing keyword is used; issue disposition is a separate decision.

Reproduce #397 against 5.12.1 and protect the signed view-shift fix already present from #423. Cover ITEM_RANGE and ITEM_RANGE_REF, value growth, cursor offsets, neighboring rows and cancel/commit behavior.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix 路 Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

鉂わ笍 Share

Comment @coderabbitai help to get the list of available commands.

@forntoh forntoh left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed commit 2dbf41f and the recorded validation evidence; no blocking findings in this test-only change.

  • The two tests exercise menu commands and rendered character cells for short, boundary-length, and overflowing labels; they cover value growth, ITEM_RANGE_REF cancellation, and the neighboring row.
  • The recorded reproduction fails on 5.12.1 and passes with the existing correction in #423, included in 5.13.0. #397 has now been closed with an explanation of that available fix.
  • GitHub Arduino CI and spell-check are successful at this head. Engineering evidence records seven passing host suites and Uno/ESP32-S3 compile checks. Physical LCD behavior, Wokwi execution, and the full example/board matrix remain unverified.

The regression coverage is suitable for maintainer review. The PR remains a draft; merging is a separate maintainer decision.

@forntoh forntoh closed this Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant