Skip to content

Conversation

@JohnC-80
Copy link
Contributor

@JohnC-80 JohnC-80 commented Feb 3, 2026

STCOM-1483

v19.2.0 made changes to useMultiSelection and useCombobox that have broken tests/logic in <MultiSelection>.

I attempted to switch to using the useCombobox state in the stateReducer and passing downshift state appropriately to removeItems - but this created an issue with tests where removals wouldn't stick - they happened and then were quickly replaced. 🤔

Refactoring to their new features may be the answer - but the amount of state-wrestling that has to be done with this well-intentioned library is exhausting.

@JohnC-80 JohnC-80 requested a review from a team as a code owner February 3, 2026 20:25
@JohnC-80 JohnC-80 requested review from BogdanDenis and zburke and removed request for a team February 3, 2026 20:26
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

Bigtest Unit Test Results

    1 files  ±0      1 suites  ±0   24s ⏱️ ±0s
1 623 tests ±0  1 615 ✅ ±0  8 💤 ±0  0 ❌ ±0 
1 624 runs  ±0  1 616 ✅ ±0  8 💤 ±0  0 ❌ ±0 

Results for commit 7e161ef. ± Comparison against base commit bb948d9.

This pull request removes 1623 and adds 1623 tests. Note that renamed tests count towards both.
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet contents ready for interaction following open ‑ Accordion - as part of an AccordionSet contents ready for interaction following open Child element was filled out successfully
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet keyboard navigation: first accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: first accordion First accordion is in focus
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet keyboard navigation: last accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: last accordion Last accordion is in focus
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet keyboard navigation: next accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: next accordion second accordion is in focus
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet keyboard navigation: previous accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: previous accordion first accordion is in focus
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet has a button
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet has no axe errors
Chrome_143_0_0_0_(Linux_x86_64).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet should call onRegisterAccordion callback
Chrome_143_0_0_0_(Linux_x86_64).Accordion - updating state of parent component opening the closed accordion changing the text value/parent state ‑ Accordion - updating state of parent component opening the closed accordion changing the text value/parent state renders second accordion as open
Chrome_143_0_0_0_(Linux_x86_64).Accordion - updating state of parent component opening the closed accordion changing the text value/parent state ‑ Accordion - updating state of parent component opening the closed accordion changing the text value/parent state renders state value in textField
…
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet contents ready for interaction following open ‑ Accordion - as part of an AccordionSet contents ready for interaction following open Child element was filled out successfully
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet keyboard navigation: first accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: first accordion First accordion is in focus
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet keyboard navigation: last accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: last accordion Last accordion is in focus
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet keyboard navigation: next accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: next accordion second accordion is in focus
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet keyboard navigation: previous accordion ‑ Accordion - as part of an AccordionSet keyboard navigation: previous accordion first accordion is in focus
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet has a button
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet has no axe errors
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - as part of an AccordionSet ‑ Accordion - as part of an AccordionSet should call onRegisterAccordion callback
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - updating state of parent component opening the closed accordion changing the text value/parent state ‑ Accordion - updating state of parent component opening the closed accordion changing the text value/parent state renders second accordion as open
Chrome_144_0_0_0_(Linux_0_0_0).Accordion - updating state of parent component opening the closed accordion changing the text value/parent state ‑ Accordion - updating state of parent component opening the closed accordion changing the text value/parent state renders state value in textField
…
This pull request removes 8 skipped tests and adds 8 skipped tests. Note that renamed tests count towards both.
Chrome_143_0_0_0_(Linux_x86_64).Datepicker defaultOutputFormatter converts non-Latn input to Latn-output ‑ Datepicker defaultOutputFormatter converts non-Latn input to Latn-output returns a Latn (Arabic, 0-9) string
Chrome_143_0_0_0_(Linux_x86_64).Datepicker with Redux Form integration exclude prop selecting excluded date navigation on excluded date ‑ Datepicker with Redux Form integration exclude prop selecting excluded date navigation on excluded date changed cursor to April 2, 2018
Chrome_143_0_0_0_(Linux_x86_64).Editor rendering a basic Editor ‑ Editor rendering a basic Editor has no axe errors. - Editor
Chrome_143_0_0_0_(Linux_x86_64).Popover If the legacy component API is used When the toggle is clicked again ‑ Popover If the legacy component API is used When the toggle is clicked again Hides the popover overlay
Chrome_143_0_0_0_(Linux_x86_64).Popover If the legacy component API is used ‑ Popover If the legacy component API is used Renders the legacy popover and opens the overlay when the toggle is clicked
Chrome_143_0_0_0_(Linux_x86_64).childrenOf propType validator Passing a type that isn't allowed ‑ childrenOf propType validator Passing a type that isn't allowed triggers a propType error
Chrome_143_0_0_0_(Linux_x86_64).childrenOf propType validator Passing a type that isn't allowed ‑ childrenOf propType validator Passing a type that isn't allowed triggers no proptype error
Chrome_143_0_0_0_(Linux_x86_64).childrenOf propType validator not providing a required prop ‑ childrenOf propType validator not providing a required prop triggers a required propType error
Chrome_144_0_0_0_(Linux_0_0_0).Datepicker defaultOutputFormatter converts non-Latn input to Latn-output ‑ Datepicker defaultOutputFormatter converts non-Latn input to Latn-output returns a Latn (Arabic, 0-9) string
Chrome_144_0_0_0_(Linux_0_0_0).Datepicker with Redux Form integration exclude prop selecting excluded date navigation on excluded date ‑ Datepicker with Redux Form integration exclude prop selecting excluded date navigation on excluded date changed cursor to April 2, 2018
Chrome_144_0_0_0_(Linux_0_0_0).Editor rendering a basic Editor ‑ Editor rendering a basic Editor has no axe errors. - Editor
Chrome_144_0_0_0_(Linux_0_0_0).Popover If the legacy component API is used When the toggle is clicked again ‑ Popover If the legacy component API is used When the toggle is clicked again Hides the popover overlay
Chrome_144_0_0_0_(Linux_0_0_0).Popover If the legacy component API is used ‑ Popover If the legacy component API is used Renders the legacy popover and opens the overlay when the toggle is clicked
Chrome_144_0_0_0_(Linux_0_0_0).childrenOf propType validator Passing a type that isn't allowed ‑ childrenOf propType validator Passing a type that isn't allowed triggers a propType error
Chrome_144_0_0_0_(Linux_0_0_0).childrenOf propType validator Passing a type that isn't allowed ‑ childrenOf propType validator Passing a type that isn't allowed triggers no proptype error
Chrome_144_0_0_0_(Linux_0_0_0).childrenOf propType validator not providing a required prop ‑ childrenOf propType validator not providing a required prop triggers a required propType error

♻️ This comment has been updated with latest results.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 3, 2026

@JohnC-80 JohnC-80 merged commit 568e0d3 into main Feb 3, 2026
25 of 26 checks passed
@JohnC-80 JohnC-80 deleted the STCOM-1483 branch February 3, 2026 22:57
github-actions bot pushed a commit that referenced this pull request Feb 3, 2026
##  [STCOM-1483](https://folio-org.atlassian.net/browse/STCOM-1483)

v19.2.0 made changes to `useMultiSelection` and `useCombobox` that have
broken tests/logic in `<MultiSelection>`.

I attempted to switch to using the `useCombobox` state in the
`stateReducer` and passing downshift state appropriately to
`removeItems` - but this created an issue with tests where removals
wouldn't stick - they happened and then were quickly replaced. 🤔

Refactoring to their new features may be the answer - but the amount of
state-wrestling that has to be done with this well-intentioned library
is exhausting.
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.

2 participants