Fix randomly failing specs in expand_collapse_diff_spec:

```
 Failure/Error: namespace.human_name + ' / ' + name

     ActionView::Template::Error:
       undefined method `+' for nil:NilClass
     # ./app/models/project.rb:807:in `name_with_namespace'
     # ./app/views/layouts/project.html.haml:1:in `_app_views_layouts_project_html_haml___2918737809244135908_70160161538920
'
     # ./app/controllers/projects/commit_controller.rb:23:in `show'
     # ./lib/gitlab/request_profiler/middleware.rb:15:in `call'
     # ./lib/gitlab/middleware/go.rb:16:in `call'
     # ./lib/gitlab/middleware/static.rb:9:in `call'
     # ------------------

     # --- Caused by: ---
     # NoMethodError:
     #   undefined method `+' for nil:NilClass
     #   ./app/models/project.rb:807:in `name_with_namespace'
```

Capybara's `click_link` method doesn't actually wait for the page to reload.
When the `expand_all_diffs` parameter is used, we need to search for unique
elements that appear to ensure that the page has actually reloaded.

Closes #21841
This commit is contained in:
Stan Hu 2016-09-03 20:51:18 -07:00
parent 2aaab34b67
commit 49b9d8aef9
1 changed files with 7 additions and 0 deletions

View File

@ -211,6 +211,13 @@ feature 'Expand and collapse diffs', js: true, feature: true do
context 'expanding all diffs' do
before do
click_link('Expand all')
# Wait for elements to appear to ensure full page reload
expect(page).to have_content('This diff was suppressed by a .gitattributes entry')
expect(page).to have_content('This diff could not be displayed because it is too large.')
expect(page).to have_content('too_large_image.jpg')
find('.note-textarea')
wait_for_ajax
execute_script('window.ajaxUris = []; $(document).ajaxSend(function(event, xhr, settings) { ajaxUris.push(settings.url) });')
end