specs: always require rails_helper

Test helpers are separated between two files: spec_helper and
rails_helper. This separation is meant to allow tests that do not
require Rails (like testing standalone libs) to boot faster.

The spec_helper file is always loaded, through `--require spec_helper`
in the `.rspec` config file. When needed, the rails_helper file is
expected to be required manually.

This is fine, but:
- Many test files have a redundant `require 'spec_helper'` line;
- Many test files should require `rails_helper`, but don't.

Not requiring `rails_helper` will cause the Rails-concerned section of
the test environment not to be configured–which may cause subtle bugs
(like the test database not being properly initialized).

Moreover, Spring loads all the Rails files on preloading anyway. So the
gains from using only `spec_helper` are thin.

To streamline this process, this commit:
- Configures `.rspec` to require `rails_helper` by default;
- Remove all manual requires to spec_helper or rails_helper.

Reference: https://stackoverflow.com/questions/24145329/how-is-spec-rails-helper-rb-different-from-spec-spec-helper-rb-do-i-need-it
This commit is contained in:
Pierre de La Morinerie 2020-03-25 15:04:48 +01:00
parent d6f6a076dd
commit 4cb747fdb6
161 changed files with 23 additions and 336 deletions

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Administrateur, type: :model do
let(:administration) { create(:administration) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Administration, type: :model do
describe '#invite_admin' do
let(:administration) { create :administration }

View file

@ -1,5 +1,3 @@
require 'rails_helper'
RSpec.describe Avis, type: :model do
let(:claimant) { create(:instructeur) }

View file

@ -1,5 +1,3 @@
require 'rails_helper'
RSpec.describe BillSignature, type: :model do
describe 'validations' do
subject(:bill_signature) { BillSignature.new }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champ do
describe '#private?' do
let(:type_de_champ) { build(:type_de_champ, :private) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champ do
require 'models/champ_shared_example.rb'

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::CarteChamp do
let(:champ) { Champs::CarteChamp.new(value: value) }
let(:value) { '' }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::CheckboxChamp do
let(:checkbox) { Champs::CheckboxChamp.new(value: value) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::DecimalNumberChamp do
subject { build(:champ_decimal_number, value: value).tap(&:valid?) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::HeaderSectionChamp do
describe '#section_index' do
let(:types_de_champ) do

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::IntegerNumberChamp do
subject { build(:champ_integer_number, value: value).tap(&:valid?) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Champs::LinkedDropDownListChamp do
describe '#unpack_value' do
let(:champ) { described_class.new(value: '["tata", "tutu"]') }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Commentaire do
it { is_expected.to have_db_column(:email) }
it { is_expected.to have_db_column(:body) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe MailTemplateConcern do
let(:procedure) { create(:procedure) }
let(:dossier) { create(:dossier, procedure: procedure) }

View file

@ -1,5 +1,3 @@
require 'rails_helper'
describe Dossier do
include ActiveJob::TestHelper

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe DropDownList do
let(:dropdownlist) { create :drop_down_list, value: value }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Etablissement do
describe '#geo_adresse' do
let(:etablissement) { create(:etablissement) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Exercice do
describe 'validations' do
it { is_expected.to validate_presence_of(:ca) }

View file

@ -1,5 +1,3 @@
require 'rails_helper'
RSpec.describe Export, type: :model do
describe 'validations' do
let(:groupe_instructeur) { create(:groupe_instructeur) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe FranceConnectInformation, type: :model do
describe 'validation' do
context 'france_connect_particulier_id' do

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe FranceConnectParticulierClient do
describe '#initialize' do
subject { FranceConnectParticulierClient.new(code) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe GroupeInstructeur, type: :model do
let(:procedure) { create(:procedure) }
subject { GroupeInstructeur.new(label: label, procedure: procedure) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Individual do
it { is_expected.to have_db_column(:gender) }
it { is_expected.to have_db_column(:nom) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Instructeur, type: :model do
let(:admin) { create :administrateur }
let!(:procedure) { create :procedure, :published, administrateur: admin }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Invite do
describe 'an email can be used for multiple dossier' do
let(:email1) { 'plop@octo.com' }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe ProcedureOverview, type: :model do
let(:procedure) { create(:procedure, libelle: 'libelle') }
let(:friday) { Time.zone.local(2017, 5, 12) } # vendredi 12 mai 2017, de la semaine du 8 mai

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe ProcedurePresentation do
let(:procedure) { create(:procedure, :with_type_de_champ, :with_type_de_champ_private) }
let(:assign_to) { create(:assign_to, procedure: procedure) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Procedure do
describe 'mail templates' do
subject { create(:procedure) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe Siret, type: :model do
subject { Siret.new(siret: siret) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe TypeDeChamp do
describe '#private?' do
let(:type_de_champ) { build(:type_de_champ, :private) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe TypeDeChamp do
require 'models/type_de_champ_shared_example'

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe TypesDeChamp::LinkedDropDownListTypeDeChamp do
let(:drop_down_list) { build(:drop_down_list, value: menu_options) }
let(:type_de_champ) { build(:type_de_champ_linked_drop_down_list, drop_down_list: drop_down_list) }

View file

@ -1,5 +1,3 @@
require 'spec_helper'
describe User, type: :model do
describe '#after_confirmation' do
let(:email) { 'mail@beta.gouv.fr' }