Docs
Advanced
Tests

Testcases

We want to achieve a well tested and functional diy component experience. To test the hooks functionalities and property generators, there is a central set of testcases. The tested implementation consists of a barebones component connected tightly to the underlying hook.

The testcases are defined in such a way that they represent the constraints defined in the combobox specification (opens in a new tab) by wai-aria. We group them by the expected result achieved by several actions; one for each testcase.

The following tests are already implemented:

      • should render chosen values on init ✅
      • should not display popover initially ✅
      • when input is focused ✅
      • when popover button is clicked ✅
      • when ArrowDown is pressed in input ✅
      • when ArrowUp is pressed in input ✅
      • when Enter is pressed in input ✅
      • when Space is pressed in input ✅
      • when pressing escape ✅
      • when clicking outside ✅
      • when delete button is clicked ✅
      • when backspace is clicked in empty input ✅
      • when active value is deleted with backspace ✅
      • only when query is empty ✅
      • when arrow down key is pressed ✅
      • when arrow up key is pressed ✅
      • when option is hovered ✅
      • looping forwards/arrow down ✅
      • looping backwards/arrow up ✅
      • pressing home and end to jump to the end ✅
      • when option is clicked ✅
      • when enter is pressed on active option ✅
      • when arrow left is pressed ✅
      • when arrow right is pressed ✅
      • when arrow right is pressed on last value go to input ✅
      • when typing in input ✅
      • when matching multiple ✅
      • when typing in input with case sensitivity ✅
      • when typing something not in the options ✅
      • should focus input when clicking on wrapper ✅
      • should not submit form when pressing enter in open popover ✅
      • should have initial a11y props ✅
      • should return true if the query is a substring of the option ✅
      • should return true if the query is a case insensitive substring ✅
      • should return false if the query is not a substring of the option ✅
      • should return true if the query is a substring of the options value ✅
      • should return false if the query is not a substring of the options value ✅
      • should return true if the mapper returns the same value for both options ✅
      • should return false if the mapper returns different values for both options ✅
      • should return true if the mapper returns the same value for both options ✅
      • should return false if the mapper returns different values for both options ✅