From 953c61808555b6f336f65c61908d387afb37532b Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Thu, 25 Nov 2021 10:23:09 +0000 Subject: [PATCH] Use database ID assignment everywhere we need ID to reduce flakiness --- Gemfile | 1 - spec/factories/case_log.rb | 1 - spec/helpers/tasklist_helper_spec.rb | 4 +-- spec/rails_helper.rb | 45 +------------------------- spec/views/case_log_index_view_spec.rb | 4 +-- 5 files changed, 5 insertions(+), 50 deletions(-) diff --git a/Gemfile b/Gemfile index f2895387e..72c39ee41 100644 --- a/Gemfile +++ b/Gemfile @@ -61,7 +61,6 @@ end group :test do gem "capybara", require: false - gem "database_cleaner-active_record", require: false gem "factory_bot_rails" gem "selenium-webdriver", require: false gem "simplecov", require: false diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb index ee791b1fc..6be3a29fc 100644 --- a/spec/factories/case_log.rb +++ b/spec/factories/case_log.rb @@ -1,6 +1,5 @@ FactoryBot.define do factory :case_log do - sequence(:id) { |i| i } trait :in_progress do status { 1 } tenant_code { "TH356" } diff --git a/spec/helpers/tasklist_helper_spec.rb b/spec/helpers/tasklist_helper_spec.rb index 11552f014..8a0802b85 100644 --- a/spec/helpers/tasklist_helper_spec.rb +++ b/spec/helpers/tasklist_helper_spec.rb @@ -1,8 +1,8 @@ require "rails_helper" RSpec.describe TasklistHelper do - let(:empty_case_log) { FactoryBot.build(:case_log) } - let(:case_log) { FactoryBot.build(:case_log, :in_progress) } + let(:empty_case_log) { FactoryBot.create(:case_log) } + let(:case_log) { FactoryBot.create(:case_log, :in_progress) } form_handler = FormHandler.instance let(:form) { form_handler.get_form("test_form") } diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index e948ebd4c..71148dce5 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -6,7 +6,6 @@ require File.expand_path("../config/environment", __dir__) abort("The Rails environment is running in production mode!") if Rails.env.production? require "rspec/rails" require "capybara/rspec" -require "database_cleaner/active_record" # Comment to run `js: true specs` with visible browser interaction Capybara.javascript_driver = :selenium_headless @@ -43,49 +42,7 @@ RSpec.configure do |config| # If you're not using ActiveRecord, or you'd prefer not to run each of your # examples within a transaction, remove the following line or assign false # instead of true. - # config.use_transactional_fixtures = true - - config.before(:suite) do - if config.use_transactional_fixtures? - raise(<<-MSG) - Delete line `config.use_transactional_fixtures = true` from rails_helper.rb - (or set it to false) to prevent uncommitted transactions being used in - JavaScript-dependent specs. - - During testing, the app-under-test that the browser driver connects to - uses a different database connection to the database connection used by - the spec. The app's database connection would not be able to access - uncommitted transaction data setup over the spec's database connection. - MSG - end - - DatabaseCleaner.clean_with(:truncation) - end - - config.before(:each) do - DatabaseCleaner.strategy = :transaction - end - - config.before(:each, type: :feature) do - # :rack_test driver's Rack app under test shares database connection - # with the specs, so continue to use transaction strategy for speed. - driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test - - unless driver_shares_db_connection_with_specs - # Driver is probably for an external browser with an app - # under test that does *not* share a database connection with the - # specs, so use truncation strategy. - DatabaseCleaner.strategy = :truncation - end - end - - config.before(:each) do - DatabaseCleaner.start - end - - config.append_after(:each) do - DatabaseCleaner.clean - end + config.use_transactional_fixtures = true # You can uncomment this line to turn off ActiveRecord support entirely. # config.use_active_record = false diff --git a/spec/views/case_log_index_view_spec.rb b/spec/views/case_log_index_view_spec.rb index cc826e3c8..41ea2f75d 100644 --- a/spec/views/case_log_index_view_spec.rb +++ b/spec/views/case_log_index_view_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe "case_logs/index" do - let(:in_progress_log) { FactoryBot.build(:case_log, :in_progress) } - let(:completed_log) { FactoryBot.build(:case_log, :completed) } + let(:in_progress_log) { FactoryBot.create(:case_log, :in_progress) } + let(:completed_log) { FactoryBot.create(:case_log, :completed) } context "given an in progress log list" do it "renders a table for in progress logs only" do