summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-09-03 20:51:18 -0700
committerStan Hu <stanhu@gmail.com>2016-09-03 20:51:18 -0700
commit49b9d8aef95dc1b0fe7ca8db9f5fab9ac35edfa5 (patch)
tree9966ccaee5b429952a014159da0a94809d17bb5e
parent2aaab34b67eb2a6593780eda33d501a715ef0c5f (diff)
downloadgitlab-ce-49b9d8aef95dc1b0fe7ca8db9f5fab9ac35edfa5.tar.gz
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
-rw-r--r--spec/features/expand_collapse_diffs_spec.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/spec/features/expand_collapse_diffs_spec.rb b/spec/features/expand_collapse_diffs_spec.rb
index 688f68d3cff..8863554ee91 100644
--- a/spec/features/expand_collapse_diffs_spec.rb
+++ b/spec/features/expand_collapse_diffs_spec.rb
@@ -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