Background
PR #3860 upgraded ink from 6.2.3 → 7.0.2. In ink 7 the input pipeline batches keystrokes through a 30fps throttle (useInput now debounces internally). ink-testing-library@4.0.0 was developed against ink 5 and its stdin.write helper does not flush input deterministically across the throttle window, so consecutive arrow-key writes are merged or dropped when replayed through the test harness.
Concretely, the assertion in AskUserQuestionDialog.test.tsx 'shows unanswered questions as (not answered) in Submit tab' issues two right-arrow keypresses to navigate Q1 → Q2 → Submit. With ink 7 the second arrow lands on Q2 instead of Submit and the (not answered) string never appears in lastFrame().
The test was switched from it.skipIf(win32) to it.skip in PR #3860 with a comment explaining the throttle interaction.
Tracking
- File:
packages/cli/src/ui/components/messages/AskUserQuestionDialog.test.tsx:327
- Upstream: https://github.com/vadimdemedes/ink-testing-library — waiting for an ink-7-compatible release that flushes input synchronously (or exposes a way to advance the throttle clock from tests).
Acceptance
Once ink-testing-library ships an ink-7-aware release (or a workaround like a flushInput() helper):
Background
PR #3860 upgraded
inkfrom 6.2.3 → 7.0.2. In ink 7 the input pipeline batches keystrokes through a 30fps throttle (useInputnow debounces internally).ink-testing-library@4.0.0was developed against ink 5 and itsstdin.writehelper does not flush input deterministically across the throttle window, so consecutive arrow-key writes are merged or dropped when replayed through the test harness.Concretely, the assertion in
AskUserQuestionDialog.test.tsx'shows unanswered questions as (not answered) in Submit tab' issues two right-arrow keypresses to navigateQ1 → Q2 → Submit. With ink 7 the second arrow lands on Q2 instead of Submit and the(not answered)string never appears inlastFrame().The test was switched from
it.skipIf(win32)toit.skipin PR #3860 with a comment explaining the throttle interaction.Tracking
packages/cli/src/ui/components/messages/AskUserQuestionDialog.test.tsx:327Acceptance
Once
ink-testing-libraryships an ink-7-aware release (or a workaround like aflushInput()helper):it.skipinAskUserQuestionDialog.test.tsx:327// TODO(#XXXX):markers added in PR chore(deps): upgrade ink 6.2.3 → 7.0.2 + bump Node engine to 22 #3860packages/clifor otherit.skip/it.skipIfitems that cite the same ink-7 throttle reason