From e60bd97f358d1edb93869bf07978af74d80a73bf Mon Sep 17 00:00:00 2001 From: ulferts Date: Thu, 20 Jul 2017 11:27:57 +0200 Subject: [PATCH] Fix/bump gems (#5770) * bump capybara * downgrade selenium-webdriver to get rid of a multitued of log messages Setting the logging preferences had no effect: https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities#loggingpreferences-json-object * bump sass * bump openproject-token * bump autoprefixer-rails * bump database_cleaner * bump capybara-screenshot * bump aws-sdk * bump timecop * bump timecop * bump parallel_tests * bump faker * bump retriable * fix specs discovered to be broken by now working within Capybara introduced a proxy for `all` and `within` in v2.14 (https://github.com/teamcapybara/capybara/commit/635671904345299bf6e351cc3e71c3fdfc836518#diff-3944edd1c2651f608ed8a8bec061a734). This revaled a couple of tests not working as desired. * skip `npm install` for unit specs [ci skip] --- Gemfile | 20 +++--- Gemfile.lock | 70 ++++++++++--------- script/ci_setup.sh | 12 ++-- .../work_packages/select_query_spec.rb | 2 +- .../work_packages/table/empty_filters_spec.rb | 3 +- .../work_packages/table/hierarchy_spec.rb | 6 +- .../work_packages/table/invalid_query_spec.rb | 9 +-- .../timeline/timeline_navigation_spec.rb | 2 +- .../work_packages/work_packages_page.rb | 2 +- spec/support/pages/work_packages_timeline.rb | 20 +++--- 10 files changed, 76 insertions(+), 70 deletions(-) diff --git a/Gemfile b/Gemfile index fcec6dca19d..437531b451f 100644 --- a/Gemfile +++ b/Gemfile @@ -134,12 +134,12 @@ group :production do gem 'unicorn-worker-killer', require: false end -gem 'sprockets', '~> 3.7.0' -gem 'sass-rails', '~> 5.0.6' -gem 'sass', '3.5.0.pre.rc.1' -gem 'autoprefixer-rails', '~> 6.7.7.2' +gem 'autoprefixer-rails', '~> 7.1.2.3' gem 'bourbon', '~> 4.3.4' gem 'i18n-js', '~> 3.0.0' +gem 'sass', '3.5.1' +gem 'sass-rails', '~> 5.0.6' +gem 'sprockets', '~> 3.7.0' # small wrapper around the command line gem 'cocaine', '~> 0.5.8' @@ -156,7 +156,7 @@ gem 'nokogiri', '~> 1.8.0' gem 'fog-aws' gem 'carrierwave', git: 'https://github.com/carrierwaveuploader/carrierwave', branch: 'master' -gem 'openproject-token', '~> 1.0.0' +gem 'openproject-token', '~> 1.0.1' group :test do gem 'rack-test', '~> 0.6.3' @@ -172,8 +172,8 @@ group :test do gem 'cucumber', '~> 2.4.0' gem 'cucumber-rails', '~> 1.4.4', require: false + gem 'database_cleaner', '~> 1.6' gem 'rack_session_access' - gem 'database_cleaner', '~> 1.5.3' # not possible to upgrade to 3.6+ until rails is 5.1+ gem 'rspec', '~> 3.5.0' # also add to development group, so "spec" rake task gets loaded @@ -181,8 +181,8 @@ group :test do gem 'rspec-activemodel-mocks', '~> 1.0.3', git: 'https://github.com/rspec/rspec-activemodel-mocks' # Retry failures within the same environment + gem 'retriable', '~> 3.0' gem 'rspec-retry', '~> 0.5.2' - gem 'retriable', '~> 2.1' gem 'rspec-example_disabler', git: 'https://github.com/finnlabs/rspec-example_disabler.git' gem 'rspec-legacy_formatters', '~> 1.0.1', require: false @@ -191,16 +191,16 @@ group :test do gem 'rails-controller-testing', '~> 1.0.2' gem 'aws-sdk', '~> 2.10.1' - gem 'capybara', '~> 2.13.0' + gem 'capybara', '~> 2.14.0' gem 'capybara-screenshot', '~> 1.0.14' gem 'fuubar', '~> 2.2.0' gem 'capybara-select2', git: 'https://github.com/goodwill/capybara-select2', ref: '585192e' gem 'capybara-ng', '~> 0.2.7' gem 'selenium-webdriver', '~> 3.4' - gem 'timecop', '~> 0.8.1' + gem 'timecop', '~> 0.9.0' gem 'webmock', '~> 3.0.0', require: false - gem 'simplecov', '~> 0.12.0', require: false + gem 'simplecov', '~> 0.14.0', require: false gem 'shoulda-matchers', '~> 3.1', require: nil gem 'json_spec', '~> 1.1.4' gem 'equivalent-xml', '~> 0.6' diff --git a/Gemfile.lock b/Gemfile.lock index d77cba30dcc..29e69c863c6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,17 +152,17 @@ GEM airbrake-ruby (1.5.0) arel (7.1.4) ast (2.3.0) - autoprefixer-rails (6.7.7.2) + autoprefixer-rails (7.1.2.3) execjs awesome_nested_set (3.1.3) activerecord (>= 4.0.0, < 5.2) - aws-sdk (2.10.10) - aws-sdk-resources (= 2.10.10) - aws-sdk-core (2.10.10) + aws-sdk (2.10.13) + aws-sdk-resources (= 2.10.13) + aws-sdk-core (2.10.13) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.10.10) - aws-sdk-core (= 2.10.10) + aws-sdk-resources (2.10.13) + aws-sdk-core (= 2.10.13) aws-sigv4 (1.0.1) axiom-types (0.1.1) descendants_tracker (~> 0.0.4) @@ -176,7 +176,7 @@ GEM thor (~> 0.19) builder (3.2.3) byebug (9.0.6) - capybara (2.13.0) + capybara (2.14.4) addressable mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -184,7 +184,7 @@ GEM rack-test (>= 0.5.4) xpath (~> 2.0) capybara-ng (0.2.7) - capybara-screenshot (1.0.14) + capybara-screenshot (1.0.17) capybara (>= 1.0, < 3) launchy cells (4.1.3) @@ -230,7 +230,7 @@ GEM cucumber-wire (0.0.1) daemons (1.2.4) dalli (2.7.6) - database_cleaner (1.5.3) + database_cleaner (1.6.1) date_validator (0.9.0) activemodel activesupport @@ -269,7 +269,7 @@ GEM factory_girl_rails (4.7.0) factory_girl (~> 4.7.0) railties (>= 3.0.0) - faker (1.6.6) + faker (1.8.4) i18n (~> 0.5) ffi (1.9.18) fog-aws (0.11.0) @@ -364,10 +364,10 @@ GEM mini_portile2 (~> 2.2.0) oj (3.3.2) okcomputer (1.16.0) - openproject-token (1.0.0) + openproject-token (1.0.1) activemodel (~> 5.0) - parallel (1.11.1) - parallel_tests (2.14.1) + parallel (1.11.2) + parallel_tests (2.14.2) parallel parser (2.4.0.0) ast (~> 2.2) @@ -453,7 +453,7 @@ GEM rake raindrops (0.18.0) rake (12.0.0) - rb-fsevent (0.9.8) + rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) rdoc (5.1.0) @@ -476,7 +476,7 @@ GEM http-cookie (>= 1.0.2, < 2.0) mime-types (>= 1.16, < 3.0) netrc (~> 0.7) - retriable (2.1.0) + retriable (3.0.2) roar (1.1.0) representable (~> 3.0.0) rspec (3.5.0) @@ -518,28 +518,29 @@ GEM ruby-progressbar (1.8.1) rubyzip (1.2.1) safe_yaml (1.0.4) - sass (3.5.0.pre.rc.1) - sass-listen (~> 3.0.7) - sass-listen (3.0.7) - rb-fsevent (>= 0.9.3) - rb-inotify (>= 0.9.7) + sass (3.5.1) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) sass-rails (5.0.6) railties (>= 4.0.0, < 6) sass (~> 3.1) sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - selenium-webdriver (3.4.4) + selenium-webdriver (3.4.0) childprocess (~> 0.5) rubyzip (~> 1.0) + websocket (~> 1.0) shoulda-context (1.2.2) shoulda-matchers (3.1.1) activesupport (>= 4.0.0) - simplecov (0.12.0) + simplecov (0.14.1) docile (~> 1.1.0) json (>= 1.8, < 3) simplecov-html (~> 0.10.0) - simplecov-html (0.10.0) + simplecov-html (0.10.1) slop (3.6.0) sprockets (3.7.1) concurrent-ruby (~> 1.0) @@ -561,7 +562,7 @@ GEM thor (0.19.4) thread_safe (0.3.6) tilt (2.0.7) - timecop (0.8.1) + timecop (0.9.1) ttfunk (1.5.0) tzinfo (1.2.3) thread_safe (~> 0.1) @@ -591,11 +592,12 @@ GEM addressable (>= 2.3.6) crack (>= 0.3.2) hashdiff + websocket (1.2.4) websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) will_paginate (3.1.6) - xpath (2.0.0) + xpath (2.1.0) nokogiri (~> 1.3) yard (0.9.8) @@ -612,12 +614,12 @@ DEPENDENCIES acts_as_list (~> 0.9.7) acts_as_tree (~> 2.6.1) airbrake (~> 5.1.0) - autoprefixer-rails (~> 6.7.7.2) + autoprefixer-rails (~> 7.1.2.3) awesome_nested_set (~> 3.1.3) aws-sdk (~> 2.10.1) bcrypt (~> 3.1.6) bourbon (~> 4.3.4) - capybara (~> 2.13.0) + capybara (~> 2.14.0) capybara-ng (~> 0.2.7) capybara-screenshot (~> 1.0.14) capybara-select2! @@ -631,7 +633,7 @@ DEPENDENCIES cucumber-rails (~> 1.4.4) daemons dalli (~> 2.7.6) - database_cleaner (~> 1.5.3) + database_cleaner (~> 1.6) date_validator (~> 0.9.0) delayed_job_active_record (~> 4.1.1) equivalent-xml (~> 0.6) @@ -661,7 +663,7 @@ DEPENDENCIES oj (~> 3.3.2) okcomputer (~> 1.16.0) omniauth! - openproject-token (~> 1.0.0) + openproject-token (~> 1.0.1) openproject-translations! parallel_tests (~> 2.14.0) passenger @@ -688,7 +690,7 @@ DEPENDENCIES reform-rails (~> 0.1.7) request_store (~> 1.3.1) responders (~> 2.4) - retriable (~> 2.1) + retriable (~> 3.0) roar (~> 1.1.0) rspec (~> 3.5.0) rspec-activemodel-mocks (~> 1.0.3)! @@ -700,12 +702,12 @@ DEPENDENCIES ruby-duration (~> 3.2.0) ruby-progressbar rubytree! - sass (= 3.5.0.pre.rc.1) + sass (= 3.5.1) sass-rails (~> 5.0.6) selenium-webdriver (~> 3.4) shoulda-context (~> 1.2) shoulda-matchers (~> 3.1) - simplecov (~> 0.12.0) + simplecov (~> 0.14.0) sprockets (~> 3.7.0) sqlite3 stringex (~> 2.7.1) @@ -713,7 +715,7 @@ DEPENDENCIES syck (~> 1.3.0) sys-filesystem (~> 1.1.4) thin (~> 1.7.2) - timecop (~> 0.8.1) + timecop (~> 0.9.0) transactional_lock! tzinfo-data (~> 1.2017.2) unicorn @@ -727,4 +729,4 @@ RUBY VERSION ruby 2.4.1p111 BUNDLED WITH - 1.15.1 + 1.15.2 diff --git a/script/ci_setup.sh b/script/ci_setup.sh index 7065aea2edc..6bd5d2ac1c0 100644 --- a/script/ci_setup.sh +++ b/script/ci_setup.sh @@ -55,13 +55,13 @@ if [ $1 != 'npm' ]; then run "bundle exec rake db:migrate" fi -# We need npm 4.0 for a bugfix in cross-platform shrinkwrap -# https://github.com/npm/npm/issues/14042 -run "npm install npm@4.0" - -run "for i in {1..3}; do npm install && break || sleep 15; done" - if [ $1 != 'specs' ] && [ $1 != 'spec_legacy' ]; then + # We need npm 4.0 for a bugfix in cross-platform shrinkwrap + # https://github.com/npm/npm/issues/14042 + run "npm install npm@4.0" + + run "for i in {1..3}; do npm install && break || sleep 15; done" + run "bundle exec rake assets:precompile" else # fake result of npm/asset run diff --git a/spec/features/work_packages/select_query_spec.rb b/spec/features/work_packages/select_query_spec.rb index 01d676eae2f..f44b89d7927 100644 --- a/spec/features/work_packages/select_query_spec.rb +++ b/spec/features/work_packages/select_query_spec.rb @@ -57,7 +57,7 @@ describe 'Query selection', type: :feature do before do default_status - allow(User).to receive(:current).and_return current_user + login_as(current_user) end context 'default view, without a query selected' do diff --git a/spec/features/work_packages/table/empty_filters_spec.rb b/spec/features/work_packages/table/empty_filters_spec.rb index ce600a3adb8..7ff76f7f1d8 100644 --- a/spec/features/work_packages/table/empty_filters_spec.rb +++ b/spec/features/work_packages/table/empty_filters_spec.rb @@ -8,13 +8,13 @@ describe 'Empty query filters', js: true do before do login_as(user) + work_package wp_table.visit! wp_table.expect_work_package_listed(work_package) end # Tests for regression #23739 it 'allows to delete the last query filter' do - # Open filter menu filters.expect_filter_count(1) filters.open @@ -22,7 +22,6 @@ describe 'Empty query filters', js: true do # Remove only filter filters.remove_filter(:status) - loading_indicator_saveguard wp_table.expect_work_package_listed(work_package) wp_table.expect_no_notification(type: :error) diff --git a/spec/features/work_packages/table/hierarchy_spec.rb b/spec/features/work_packages/table/hierarchy_spec.rb index 2af67254aa6..97e88a367f5 100644 --- a/spec/features/work_packages/table/hierarchy_spec.rb +++ b/spec/features/work_packages/table/hierarchy_spec.rb @@ -77,14 +77,14 @@ describe 'Work Package table hierarchy', js: true do hierarchy.expect_hierarchy_at(wp_root, wp_inter) - hierarchy.toggle_row(wp_root) + # need to reload wp_inter as we changed the subject + wp_inter.reload wp_table.expect_work_package_listed(wp_root, wp_inter, wp_leaf) # Disabling hierarchy hides them again hierarchy.disable_hierarchy - expect(page).to have_no_selector(".wp-row-#{wp_root.id}") - expect(page).to have_no_selector(".wp-row-#{wp_inter.id}") + wp_table.expect_work_package_not_listed(wp_root, wp_inter) end end diff --git a/spec/features/work_packages/table/invalid_query_spec.rb b/spec/features/work_packages/table/invalid_query_spec.rb index c61458fb79a..bba930d2d80 100644 --- a/spec/features/work_packages/table/invalid_query_spec.rb +++ b/spec/features/work_packages/table/invalid_query_spec.rb @@ -43,6 +43,7 @@ describe 'Invalid query spec', js: true do let(:work_package_assigned) do FactoryGirl.create(:work_package, project: project, + status: status2, assigned_to: user) end @@ -65,7 +66,7 @@ describe 'Invalid query spec', js: true do wp_table.expect_no_notification(type: :error, message: I18n.t('js.work_packages.faulty_query.description')) - wp_table.expect_work_package_listed [work_package_assigned] + wp_table.expect_work_package_listed work_package_assigned wp_table.expect_query_in_select_dropdown(invalid_query.name) end @@ -92,11 +93,11 @@ describe 'Invalid query spec', js: true do wp_table.expect_no_work_package_listed wp_table.group_by('Assignee') - sleep(0.1) + sleep(0.3) filters.set_filter('Assignee', 'is', user.name) - sleep(0.1) + sleep(0.3) - wp_table.expect_work_package_listed [work_package_assigned] + wp_table.expect_work_package_listed work_package_assigned wp_table.save wp_table.expect_notification(message: I18n.t('js.notice_successful_update')) diff --git a/spec/features/work_packages/timeline/timeline_navigation_spec.rb b/spec/features/work_packages/timeline/timeline_navigation_spec.rb index 07c15ebfb49..a0f4d9fdf1f 100644 --- a/spec/features/work_packages/timeline/timeline_navigation_spec.rb +++ b/spec/features/work_packages/timeline/timeline_navigation_spec.rb @@ -180,7 +180,7 @@ RSpec.feature 'Work package timeline navigation', js: true, selenium: true do wp_timeline.expect_timeline_relation(wp_cat1, wp_cat2) # Collapse first section - find('#wp-table-rowgroup-0').click + find('#wp-table-rowgroup-1 .expander').click wp_timeline.expect_work_package_not_listed(wp_cat1) # Relation should be hidden diff --git a/spec/features/work_packages/work_packages_page.rb b/spec/features/work_packages/work_packages_page.rb index e0c04a1d7ec..fb112df7cb5 100644 --- a/spec/features/work_packages/work_packages_page.rb +++ b/spec/features/work_packages/work_packages_page.rb @@ -104,7 +104,7 @@ class WorkPackagesPage def select_query_from_dropdown(query) within('.title-container') do find('a').click - find('a', text: query.name).click + find('li', text: query.name).click end end diff --git a/spec/support/pages/work_packages_timeline.rb b/spec/support/pages/work_packages_timeline.rb index 8bc75d17f9f..444631cf1b8 100644 --- a/spec/support/pages/work_packages_timeline.rb +++ b/spec/support/pages/work_packages_timeline.rb @@ -50,9 +50,11 @@ module Pages def expect_work_package_listed(*work_packages) super(*work_packages) - within(table_container) do - work_packages.each do |wp| - expect(page).to have_selector("#wp-timeline-row-#{wp.id}", visible: true) + if page.has_selector?('#work-packages-timeline-toggle-button.-active') + within(timeline_container) do + work_packages.each do |wp| + expect(page).to have_selector(".wp-row-#{wp.id}-timeline", visible: true) + end end end end @@ -60,9 +62,11 @@ module Pages def expect_work_package_not_listed(*work_packages) super(*work_packages) - within(table_container) do - work_packages.each do |wp| - expect(page).to have_no_selector("#wp-timeline-row-#{wp.id}", visible: true) + if page.has_selector?('#work-packages-timeline-toggle-button.-active') + within(timeline_container) do + work_packages.each do |wp| + expect(page).to have_no_selector(".wp-row-#{wp.id}-timeline", visible: true) + end end end end @@ -100,13 +104,13 @@ module Pages def expect_timeline_relation(from, to) within(timeline_container) do - expect(page).to have_selector(".relation-line.__tl-relation-#{from.id}-#{to.id}", minimum: 1) + expect(page).to have_selector(".relation-line.__tl-relation-#{from.id}.__tl-relation-#{to.id}", minimum: 1) end end def expect_no_timeline_relation(from, to) within(timeline_container) do - expect(page).to have_no_selector(".relation-line.__tl-relation-#{from.id}-#{to.id}") + expect(page).to have_no_selector(".relation-line.__tl-relation-#{from.id}.__tl-relation-#{to.id}") end end