After migrating from Karma to Vitest (#7709), stderr output from tests is now visible and traceable per-test. There are 30 test suites producing 124 total warnings across 4 categories. This issue tracks cleaning them up suite by suite.
Warning types
| Warning |
Count |
Root cause |
act(...) - Popper |
34 |
Enzyme + react-popper state updates not wrapped in act() |
findDOMNode deprecated |
26 |
Enzyme internals using findDOMNode |
[Blueprint] validation |
18 |
Intentional BP warnings emitted during expected test scenarios |
act(...) - Blueprint6.SliderHandle |
16 |
Mouse/touch event handlers triggering async state updates |
act(...) - Blueprint6.TagInput |
9 |
Input event handlers triggering async state updates |
act(...) - Blueprint6.Icon |
9 |
Async icon loading triggering state updates |
act(...) env not configured |
3 |
Overlay focus management timers |
act(...) - AsyncControllable* |
4 |
Composition event handling in async inputs |
act(...) - Blueprint6.Toast |
2 |
Toast timeout-based state updates |
act(...) - TestComponent |
2 |
Test helper components with async updates |
Invalid DOM prop spellcheck |
1 |
Should be spellCheck (React camelCase) |
Tier 1: High noise (10+ warnings per suite)
These suites produce the most output and should be prioritized.
Tier 2: Moderate noise (3-9 warnings per suite)
Tier 3: Low noise (1-2 warnings per suite)
Notes
- Many
findDOMNode warnings stem from Enzyme internals. Migrating these tests to React Testing Library would eliminate them entirely.
- The
act(...) warnings on Popper are caused by react-popper state updates during Enzyme-based mount/interaction. Wrapping operations in act() or migrating to RTL should resolve them.
[Blueprint] validation warnings are intentional console output from the library. For test suites that deliberately trigger these (e.g., numericInput bounds tests, useHotkeys without provider), the fix is to spy on console.warn and assert the warning was called, then restore.
- The
spellcheck DOM prop issue in editableTextTests is a genuine bug in the test or component (should use React's camelCase spellCheck).
After migrating from Karma to Vitest (#7709), stderr output from tests is now visible and traceable per-test. There are 30 test suites producing 124 total warnings across 4 categories. This issue tracks cleaning them up suite by suite.
Warning types
act(...)- Popperact()findDOMNodedeprecatedfindDOMNode[Blueprint]validationact(...)- Blueprint6.SliderHandleact(...)- Blueprint6.TagInputact(...)- Blueprint6.Iconact(...)env not configuredact(...)- AsyncControllable*act(...)- Blueprint6.Toastact(...)- TestComponentspellcheckspellCheck(React camelCase)Tier 1: High noise (10+ warnings per suite)
These suites produce the most output and should be prioritized.
test/slider/handleTests.tsx(17 warnings)findDOMNodedeprecatedact(...)onBlueprint6.SliderHandle(mouse, touch, vertical variants)test/context-menu/contextMenuTests.tsx(16 warnings)findDOMNodedeprecatedact(...)onPopper(all interaction tests: open, close, dismiss, theme, nesting)test/tag-input/tagInputTests.tsx(10 warnings)act(...)onBlueprint6.Icon(leftIcon render)findDOMNodedeprecatedact(...)onBlueprint6.TagInput(onAdd, onChange, onInputChange)Tier 2: Moderate noise (3-9 warnings per suite)
test/controls/numericInputTests.tsx(9 warnings)findDOMNodedeprecated[Blueprint]controlled value constraint warnings (intentional)act(...)onBlueprint6.Icon[Blueprint]mutually exclusive props warning (intentional)test/hooks/useHotkeysTests.tsx(8 warnings)[Blueprint]useHotkeys() used outside<HotkeysProvider>(8 tests, intentional)test/forms/asyncControllableInputTests.tsx(7 warnings)findDOMNodedeprecatedact(...)onBlueprint6.AsyncControllableInputact(...)onBlueprint6.AsyncControllableTextAreaact(...)onTestComponenttest/overlay/overlayTests.tsx(3 warnings)findDOMNodedeprecatedact(...)test/menu/menuItemTests.tsx(3 warnings)findDOMNodedeprecatedact(...)onPopperact(...)onBlueprint6.Icontest/dialog/dialogTests.tsx(3 warnings)act(...)onBlueprint6.IconfindDOMNodedeprecatedTier 3: Low noise (1-2 warnings per suite)
test/tree/treeTests.tsx(2) -findDOMNode,act(...)Icontest/toast/toastTests.tsx(2) -act(...)onBlueprint6.Toasttest/segmented-control/segmentedControlTests.tsx(2) -act(...)Icon,findDOMNodetest/entity-title/entityTitleTests.tsx(2) -findDOMNode,act(...)Icontest/editable-text/editableTextTests.tsx(2) -findDOMNode, invalid DOM propspellchecktest/text/textTests.tsx(1) -findDOMNodetest/tag/tagTests.tsx(1) -findDOMNodetest/tag/compoundTagTests.tsx(1) -findDOMNodetest/tabs/tabsTests.tsx(1) -findDOMNodetest/slider/sliderTests.tsx(1) -findDOMNodetest/slider/rangeSliderTests.tsx(1) -findDOMNodetest/slider/multiSliderTests.tsx(1) -findDOMNodetest/section/sectionTests.tsx(1) -act(...)Icontest/panel-stack/panelStackTests.tsx(1) -findDOMNodetest/overlay2/overlay2Tests.tsx(1) -[Blueprint]childRefs warning (intentional)test/multistep-dialog/multistepDialogTests.tsx(1) -findDOMNodetest/icon/iconTests.tsx(1) -findDOMNodetest/html-select/htmlSelectTests.tsx(1) -findDOMNodetest/forms/textAreaTests.tsx(1) -findDOMNodetest/forms/fileInputTests.tsx(1) -findDOMNodetest/drawer/drawerTests.tsx(1) -findDOMNodeNotes
findDOMNodewarnings stem from Enzyme internals. Migrating these tests to React Testing Library would eliminate them entirely.act(...)warnings on Popper are caused byreact-popperstate updates during Enzyme-based mount/interaction. Wrapping operations inact()or migrating to RTL should resolve them.[Blueprint]validation warnings are intentional console output from the library. For test suites that deliberately trigger these (e.g., numericInput bounds tests, useHotkeys without provider), the fix is to spy onconsole.warnand assert the warning was called, then restore.spellcheckDOM prop issue in editableTextTests is a genuine bug in the test or component (should use React's camelCasespellCheck).