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 03:12:20 +00:00
committed by Sam
parent 329969ea20
commit e219588142
258 changed files with 1402 additions and 1364 deletions

View File

@ -24,7 +24,7 @@ RSpec.describe ApplicationController do
describe '#redirect_to_second_factor_if_required' do
let(:admin) { Fabricate(:admin) }
let(:user) { Fabricate(:user) }
fab!(:user) { Fabricate(:user) }
before do
admin # to skip welcome wizard at home page `/`
@ -254,11 +254,11 @@ RSpec.describe ApplicationController do
end
describe "#handle_theme" do
let(:theme) { Fabricate(:theme, user_selectable: true) }
let(:theme2) { Fabricate(:theme, user_selectable: true) }
let(:non_selectable_theme) { Fabricate(:theme, user_selectable: false) }
let(:user) { Fabricate(:user) }
let(:admin) { Fabricate(:admin) }
let!(:theme) { Fabricate(:theme, user_selectable: true) }
let!(:theme2) { Fabricate(:theme, user_selectable: true) }
let!(:non_selectable_theme) { Fabricate(:theme, user_selectable: false) }
fab!(:user) { Fabricate(:user) }
fab!(:admin) { Fabricate(:admin) }
before do
sign_in(user)