diff --git a/.travis.yml b/.travis.yml index a93e65d64..3f815a86e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,7 +35,6 @@ env: - GITHUB_SECRET=dummy - KNAPSACK_PRO_FIXED_QUEUE_SPLIT=true - KNAPSACK_PRO_LOG_LEVEL=info - - KNAPSACK_PRO_TEST_FILE_EXCLUDE_PATTERN="spec/services/rss_reader_spec.rb" - KNAPSACK_PRO_CI_NODE_TOTAL=3 - COVERAGE_REPORTS_TOTAL=4 jobs: @@ -72,7 +71,6 @@ script: - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "1" ]; then bundle exec bundle-audit check --update --ignore CVE-2015-9284; fi - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "1" ]; then yarn build-storybook; fi - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "2" ]; then bundle exec rails runner -e production 'puts "App booted successfully"'; fi - - if [ "$KNAPSACK_PRO_CI_NODE_INDEX" == "2" ]; then bundle exec rspec spec/services/rss_reader_spec.rb; fi after_script: - ./cc-test-reporter format-coverage -t simplecov -o ./coverage/codeclimate.$KNAPSACK_PRO_CI_NODE_INDEX.json ./coverage/spec/.resultset.json - ./cc-test-reporter sum-coverage --output - --parts $COVERAGE_REPORTS_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input - diff --git a/Gemfile b/Gemfile index 2782de6ed..fb99296df 100644 --- a/Gemfile +++ b/Gemfile @@ -148,6 +148,7 @@ end group :test do gem "approvals", "~> 0.0" # A library to make it easier to do golden-master style testing in Ruby + gem "database_cleaner-active_record", "~> 1.8.0" gem "exifr", ">= 1.3.6" # EXIF Reader is a module to read EXIF from JPEG and TIFF images gem "factory_bot_rails", "~> 6.0" # factory_bot is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies gem "launchy", "~> 2.5" # Launchy is helper class for launching cross-platform applications in a fire and forget manner. diff --git a/Gemfile.lock b/Gemfile.lock index 9164ca765..2726c831f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -222,6 +222,10 @@ GEM safe_yaml (~> 1.0.0) crass (1.0.6) dante (0.2.0) + database_cleaner (1.8.5) + database_cleaner-active_record (1.8.0) + activerecord + database_cleaner (~> 1.8.0) datetime_picker_rails (0.0.7) momentjs-rails (>= 2.8.1) ddtrace (0.36.0) @@ -903,6 +907,7 @@ DEPENDENCIES cld (~> 0.8) cloudinary (~> 1.15) counter_culture (~> 2.5) + database_cleaner-active_record (~> 1.8.0) ddtrace (~> 0.36.0) derailed_benchmarks (~> 1.7) devise (~> 4.7) diff --git a/spec/services/rss_reader_spec.rb b/spec/services/rss_reader_spec.rb index 7fe46199a..d83307065 100644 --- a/spec/services/rss_reader_spec.rb +++ b/spec/services/rss_reader_spec.rb @@ -3,7 +3,9 @@ require "rss" default_logger = Rails.logger -RSpec.describe RssReader, type: :service, vcr: true do +RSpec.describe RssReader, type: :service, vcr: true, db_strategy: :truncation do + self.use_transactional_tests = false + let(:link) { "https://medium.com/feed/@vaidehijoshi" } let(:nonmedium_link) { "https://circleci.com/blog/feed.xml" } let(:nonpermanent_link) { "https://medium.com/feed/@macsiri/" } diff --git a/spec/support/database_cleaner.rb b/spec/support/database_cleaner.rb new file mode 100644 index 000000000..40416349b --- /dev/null +++ b/spec/support/database_cleaner.rb @@ -0,0 +1,5 @@ +RSpec.configure do |config| + config.after(:each, db_strategy: :truncation) do |_example| + DatabaseCleaner.clean_with(:truncation) + end +end diff --git a/spec/system/dashboards/user_sorts_dashboard_articles_spec.rb b/spec/system/dashboards/user_sorts_dashboard_articles_spec.rb index b218ff84c..1704dac49 100644 --- a/spec/system/dashboards/user_sorts_dashboard_articles_spec.rb +++ b/spec/system/dashboards/user_sorts_dashboard_articles_spec.rb @@ -1,6 +1,8 @@ require "rails_helper" -RSpec.describe "Sorting Dashboard Articles", type: :system, js: true do +RSpec.describe "Sorting Dashboard Articles", type: :system, js: true, db_strategy: :truncation do + self.use_transactional_tests = false + let(:user) { create(:user) } let(:article1) { create(:article, user_id: user.id, published_at: 10.minutes.ago, created_at: 1.day.ago, public_reactions_count: 5, page_views_count: 0, comments_count: 100) } let(:article2) { create(:article, user_id: user.id, published_at: 1.minute.ago, created_at: 2.days.ago, public_reactions_count: 1, page_views_count: 10, comments_count: 0) } diff --git a/vendor/cache/database_cleaner-1.8.5.gem b/vendor/cache/database_cleaner-1.8.5.gem new file mode 100644 index 000000000..20686c247 Binary files /dev/null and b/vendor/cache/database_cleaner-1.8.5.gem differ diff --git a/vendor/cache/database_cleaner-active_record-1.8.0.gem b/vendor/cache/database_cleaner-active_record-1.8.0.gem new file mode 100644 index 000000000..94d90c955 Binary files /dev/null and b/vendor/cache/database_cleaner-active_record-1.8.0.gem differ