models: require belong_to associations on champ
- Make `champ.dossier` a requirement; - Move the dossier_id assignation to `before_validation` (otherwise the record is invalid, and never gets saved); - Allow specs to only build the champ (instead of saving it to the database), which bypasses the requirement to have a dossier.
This commit is contained in:
parent
eb22dc9d8f
commit
6328011f60
13 changed files with 318 additions and 274 deletions
|
@ -1,14 +1,14 @@
|
|||
describe Champs::SiretController, type: :controller do
|
||||
let(:user) { create(:user) }
|
||||
let(:procedure) { create(:procedure, :published) }
|
||||
let(:procedure) do
|
||||
tdc_siret = build(:type_de_champ_siret, procedure: nil)
|
||||
create(:procedure, :published, types_de_champ: [tdc_siret])
|
||||
end
|
||||
|
||||
describe '#show' do
|
||||
let(:dossier) { create(:dossier, user: user, procedure: procedure) }
|
||||
let(:champ) do
|
||||
d = dossier
|
||||
type_de_champ = create(:type_de_champ_siret, procedure: procedure)
|
||||
type_de_champ.champ.create(dossier: d, value: nil, etablissement: nil)
|
||||
end
|
||||
let(:champ) { dossier.champs.first }
|
||||
|
||||
let(:params) do
|
||||
{
|
||||
champ_id: champ.id,
|
||||
|
@ -27,6 +27,7 @@ describe Champs::SiretController, type: :controller do
|
|||
let(:api_etablissement_status) { 200 }
|
||||
let(:api_etablissement_body) { File.read('spec/fixtures/files/api_entreprise/etablissements.json') }
|
||||
let(:token_expired) { false }
|
||||
|
||||
before do
|
||||
sign_in user
|
||||
stub_request(:get, /https:\/\/entreprise.api.gouv.fr\/v2\/etablissements\/#{siret}?.*token=/)
|
||||
|
@ -112,7 +113,7 @@ describe Champs::SiretController, type: :controller do
|
|||
champ.reload
|
||||
expect(champ.value).to eq(siret)
|
||||
expect(champ.etablissement.siret).to eq(siret)
|
||||
expect(champ.reload.etablissement.naf).to eq("6202A")
|
||||
expect(champ.etablissement.naf).to eq("6202A")
|
||||
expect(dossier.reload.etablissement).to eq(nil)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue