DEV: Prefabrication (test optimization) (#7414)

* Introduced fab!, a helper that creates database state for a group

It's almost identical to let_it_be, except:

 1. It creates a new object for each test by default,
 2. You can disable it using PREFABRICATION=0
This commit is contained in:
Daniel Waterworth
2019-05-07 13:12:20 +10:00
committed by Sam
parent 329969ea20
commit e219588142
258 changed files with 1402 additions and 1364 deletions
+4 -4
View File
@@ -3,15 +3,15 @@
require 'rails_helper'
describe Jobs::CleanUpEmailLogs do
let!(:email_log) { Fabricate(:email_log, created_at: 2.years.ago) }
let!(:email_log2) { Fabricate(:email_log, created_at: 2.weeks.ago) }
let!(:email_log3) { Fabricate(:email_log, created_at: 2.days.ago) }
fab!(:email_log) { Fabricate(:email_log, created_at: 2.years.ago) }
fab!(:email_log2) { Fabricate(:email_log, created_at: 2.weeks.ago) }
fab!(:email_log3) { Fabricate(:email_log, created_at: 2.days.ago) }
let!(:skipped_email_log) do
Fabricate(:skipped_email_log, created_at: 2.years.ago)
end
let!(:skipped_email_log2) { Fabricate(:skipped_email_log) }
fab!(:skipped_email_log2) { Fabricate(:skipped_email_log) }
it "removes old email logs" do
Jobs::CleanUpEmailLogs.new.execute({})