Commit a1d0a16b authored by Eric Eastwood's avatar Eric Eastwood

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.
parent 69966fcb
......@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment