diff --git a/.travis.yml b/.travis.yml index a57603a1..4850cc4c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,51 +1,46 @@ -sudo: required -dist: trusty - -script: - - bundle exec rake test_app - - bundle exec rake spec +os: linux +dist: bionic addons: - chrome: stable - postgresql: 9.4 + apt: + sources: + - google-chrome + packages: + - google-chrome-stable -env: - - DB=mysql - - DB=postgres +services: + - mysql + - postgresql language: ruby rvm: - - 2.5.1 - - 2.4.4 - - 2.3.8 + - 2.6 + +env: + - DB=mysql + - DB=postgres gemfile: - - gemfiles/spree_3_5.gemfile - gemfiles/spree_3_7.gemfile - gemfiles/spree_4_0.gemfile + - gemfiles/spree_4_1.gemfile - gemfiles/spree_master.gemfile -matrix: +jobs: allow_failures: - gemfile: gemfiles/spree_master.gemfile - exclude: - - rvm: 2.3.8 - gemfile: gemfiles/spree_4_0.gemfile - - rvm: 2.4.4 - gemfile: gemfiles/spree_4_0.gemfile - - rvm: 2.3.8 - gemfile: gemfiles/spree_master.gemfile - - rvm: 2.4.4 - gemfile: gemfiles/spree_master.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/spree_3_5.gemfile + +before_script: + - CHROME_MAIN_VERSION=`google-chrome-stable --version | sed -E 's/(^Google Chrome |\.[0-9]+ )//g'` + - CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_$CHROME_MAIN_VERSION"` + - curl "https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" -O + - unzip chromedriver_linux64.zip -d ~/bin + - nvm install 14 + +script: + - bundle exec rake test_app + - bundle exec rake spec before_install: - - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';" - - wget -N https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip -P ~/ - - unzip ~/chromedriver_linux64.zip -d ~/ - - rm ~/chromedriver_linux64.zip - - sudo mv -f ~/chromedriver /usr/local/share/ - - sudo chmod +x /usr/local/share/chromedriver - - sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver + - mysql -u root -e "GRANT ALL ON *.* TO 'travis'@'%';" \ No newline at end of file diff --git a/gemfiles/spree_3_5.gemfile b/gemfiles/spree_4_1.gemfile similarity index 83% rename from gemfiles/spree_3_5.gemfile rename to gemfiles/spree_4_1.gemfile index 19d06d2a..f0a6bfe2 100644 --- a/gemfiles/spree_3_5.gemfile +++ b/gemfiles/spree_4_1.gemfile @@ -3,6 +3,6 @@ source "https://rubygems.org" gem "rails-controller-testing" -gem "spree", "~> 3.5.0" +gem "spree", "~> 4.1.0" gemspec path: "../" diff --git a/spec/features/admin/editor_settings_spec.rb b/spec/features/admin/editor_settings_spec.rb index d5f758bd..872fb24a 100644 --- a/spec/features/admin/editor_settings_spec.rb +++ b/spec/features/admin/editor_settings_spec.rb @@ -1,4 +1,6 @@ -RSpec.feature 'Rich Editor Settings', :js do +RSpec.feature 'Rich Editor Settings', js: true do + include ::Select2Helper + stub_authorization! context '#edit' do @@ -26,9 +28,11 @@ scenario 'will be applied when used' do visit spree.edit_admin_editor_settings_path - select2 'TinyMCE', from: 'Rich Editor engine' + select2_choose('current_editor', choose: 'TinyMCE') click_button 'Update' + expect(page).to have_content('successfully updated!') + visit spree.edit_admin_product_path(product) expect(page).to have_css '.mce-tinymce', match: :one end @@ -38,9 +42,11 @@ scenario 'will be applied when used' do visit spree.edit_admin_editor_settings_path - select2 'CKEditor', from: 'Rich Editor engine' + select2_choose('current_editor', choose: 'CKEditor') click_button 'Update' + expect(page).to have_content('successfully updated!') + visit spree.edit_admin_product_path(product) expect(page).to have_css '.cke_editor_product_description', match: :one end diff --git a/spec/support/select2_helper.rb b/spec/support/select2_helper.rb new file mode 100644 index 00000000..55d4645c --- /dev/null +++ b/spec/support/select2_helper.rb @@ -0,0 +1,18 @@ +module Select2Helper + def select2_choose(id, options) + options[:query] ||= options[:choose] + + page.execute_script %Q{ + $('#s2id_#{id} .select2-offscreen') + .trigger('keydown') + .val('#{options[:query]}') + .trigger('keyup'); + } + + if options[:first] + find('.select2-highlighted .select2-match').click + else + find('.select2-result-label', text: options[:choose]).click + end + end +end diff --git a/spree_editor.gemspec b/spree_editor.gemspec index cf597603..b468e581 100644 --- a/spree_editor.gemspec +++ b/spree_editor.gemspec @@ -27,6 +27,7 @@ Gem::Specification.new do |s| s.add_dependency 'spree_extension' s.add_dependency 'ckeditor', '~> 5.0.0' s.add_dependency 'tinymce-rails', '~> 4.2.5' + s.add_dependency 'coffee-rails' s.add_runtime_dependency 'deface', '~> 1.0' s.add_development_dependency 'i18n-spec', '>= 0.5.0' @@ -43,7 +44,6 @@ Gem::Specification.new do |s| s.add_development_dependency 'rubocop' s.add_development_dependency 'pg' s.add_development_dependency 'mysql2' - s.add_development_dependency 'coffee-rails' s.add_development_dependency 'appraisal' s.add_development_dependency 'puma' end