Fix flakey time-senstive group filter specs
This passed previously because the filtered group search is debounced by 0.5s. The test cleared the input, entered `group1`, cleared the input, entered nothing, and the all of groups are still listed because of the 0.5s debounce hasn't triggered and the test passes before anything is actually filtered. Even if we assert that the list is filtered before clearing the input, the test still fails because the nature of the `fill_in 'filter', with: ""` method is that ["if you're setting the value to "", no keys are ever actually sent, hence no [`input`] event"](https://github.com/teamcapybara/capybara/issues/203#issuecomment-557281) and we never filter back to everything in the list. So the solution is two-fold, add in the assertions that the list is actually filtered after each step. Then use a method that fills the input with proper events fired.
This commit is contained in:
parent
69966fcb8d
commit
a1d0a16bfb
2 changed files with 8 additions and 0 deletions
|
@ -65,7 +65,11 @@ feature 'Dashboard Groups page', :js do
|
|||
fill_in 'filter', with: group.name
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_content(group.name)
|
||||
expect(page).not_to have_content(nested_group.parent.name)
|
||||
|
||||
fill_in 'filter', with: ''
|
||||
page.find('[name="filter"]').send_keys(:enter)
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_content(group.name)
|
||||
|
|
|
@ -35,7 +35,11 @@ describe 'Explore Groups page', :js do
|
|||
fill_in 'filter', with: group.name
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_content(group.full_name)
|
||||
expect(page).not_to have_content(public_group.full_name)
|
||||
|
||||
fill_in 'filter', with: ""
|
||||
page.find('[name="filter"]').send_keys(:enter)
|
||||
wait_for_requests
|
||||
|
||||
expect(page).to have_content(group.full_name)
|
||||
|
|
Loading…
Reference in a new issue