Merge pull request #4284 from betagouv/fix_routage_migrations

Fix routage migrations
This commit is contained in:
Keirua 2019-09-09 14:19:35 +02:00 committed by GitHub
commit 79c5df00ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 86 additions and 1 deletions

View file

@ -1,7 +1,11 @@
namespace :after_party do
desc 'Deployment task: create_default_groupe_instructeur'
task create_default_groupe_instructeur: :environment do
Procedure.find_each do |procedure|
Procedure
.unscoped
.left_outer_joins(:groupe_instructeurs)
.where('groupe_instructeurs.id is null')
.find_each do |procedure|
procedure.groupe_instructeurs.create(label: GroupeInstructeur::DEFAULT_LABEL)
end

View file

@ -0,0 +1,45 @@
describe '20190819142551_create_default_groupe_instructeur.rake' do
let(:rake_task) { Rake::Task['after_party:create_default_groupe_instructeur'] }
subject { rake_task.invoke }
after { rake_task.reenable }
context 'with a procedure without gi' do
let!(:procedure_without_gi) { create(:procedure) }
before do
procedure_without_gi.groupe_instructeurs.destroy_all
end
it do
expect(procedure_without_gi.groupe_instructeurs).to be_empty
subject
expect(procedure_without_gi.reload.groupe_instructeurs.pluck(:label)).to eq(['défaut'])
end
end
context 'with a procedure hidden without gi' do
let!(:procedure_hidden_without_gi) { create(:procedure, :hidden) }
before do
procedure_hidden_without_gi.groupe_instructeurs.destroy_all
end
it do
expect(procedure_hidden_without_gi.groupe_instructeurs).to be_empty
subject
expect(procedure_hidden_without_gi.reload.groupe_instructeurs.pluck(:label)).to eq(['défaut'])
end
end
context 'with a procedure with a gi' do
let!(:procedure_with_gi) { create(:procedure) }
it do
gi = procedure_with_gi.groupe_instructeurs.first
expect(gi).to be_present
subject
expect(procedure_with_gi.reload.groupe_instructeurs).to eq([gi])
end
end
end

View file

@ -0,0 +1,36 @@
describe '20190819145528_link_assign_and_groupe_instructeur.rake' do
let(:rake_task) { Rake::Task['after_party:link_assign_and_groupe_instructeur'] }
subject { rake_task.invoke }
after { rake_task.reenable }
context 'with an assign_to without groupe_instructeur' do
let!(:procedure) { create(:procedure) }
let!(:instructeur) { create(:instructeur) }
let!(:assign_to) do
at = AssignTo.create!(instructeur: instructeur)
at.update_column(:procedure_id, procedure.id)
at
end
it 'assigns its defaut groupe instructeur' do
expect(assign_to.groupe_instructeur).to be_nil
subject
expect(assign_to.reload.groupe_instructeur).to eq(procedure.defaut_groupe_instructeur)
end
end
context 'with an assign_to with groupe_instructeur' do
let!(:procedure) { create(:procedure) }
let!(:instructeur) { create(:instructeur, groupe_instructeurs: [procedure.defaut_groupe_instructeur]) }
let!(:assign_to) { instructeur.assign_to.first }
it 'assigns its defaut groupe instructeur' do
expect(assign_to.groupe_instructeur).to eq(procedure.defaut_groupe_instructeur)
expect(procedure.reload.defaut_groupe_instructeur.assign_tos.count).to eq(1)
subject
expect(instructeur.assign_to).to eq([assign_to])
expect(procedure.reload.defaut_groupe_instructeur.assign_tos.count).to eq(1)
end
end
end