Remove old tasks depending on single administrateur
This commit is contained in:
parent
fcddb69dab
commit
23d8f0d803
6 changed files with 0 additions and 444 deletions
|
@ -1,126 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe '2018_07_31_nutriscore' do
|
||||
let(:gestionnaire) { create(:gestionnaire) }
|
||||
let(:proc_from) do
|
||||
proc_from = create(:procedure, :published)
|
||||
((0..23).to_a - [1, 2, 9, 18]).each do |i|
|
||||
proc_from.types_de_champ << create(:type_de_champ_text, order_place: i, procedure: proc_from)
|
||||
end
|
||||
proc_from.types_de_champ << create(:type_de_champ_text, order_place: 9, libelle: 'Fonction', procedure: proc_from)
|
||||
proc_from.types_de_champ << create(:type_de_champ_header_section, order_place: 18, libelle: 'PARTIE 3 : ENGAGEMENT DE L’EXPLOITANT', procedure: proc_from)
|
||||
proc_from.save
|
||||
proc_from
|
||||
end
|
||||
let!(:type_champ_from) { create(:type_de_champ_textarea, order_place: 1, libelle: 'texte', procedure: proc_from) }
|
||||
let!(:type_champ_siret_from) { create(:type_de_champ_text, order_place: 2, libelle: 'Numéro SIRET', procedure: proc_from) }
|
||||
let!(:type_champ_fonction_from) {}
|
||||
|
||||
let(:etablissement) { create(:etablissement) }
|
||||
let!(:dossier) { create(:dossier, procedure: proc_from, etablissement: etablissement) }
|
||||
|
||||
let(:proc_to) do
|
||||
proc_to = create(:procedure, administrateur: proc_from.administrateur)
|
||||
((0..17).to_a - [1, 2, 9]).each do |i|
|
||||
libelle = proc_from.types_de_champ.find_by(order_place: i).libelle
|
||||
proc_to.types_de_champ << create(:type_de_champ_text, order_place: i, libelle: libelle, procedure: proc_to)
|
||||
end
|
||||
proc_to.types_de_champ << create(:type_de_champ_header_section, order_place: 18, libelle: 'PARTIE 3 : ZONE GEOGRAPHIQUE', procedure: proc_to)
|
||||
proc_to.types_de_champ << create(
|
||||
:type_de_champ_multiple_drop_down_list,
|
||||
order_place: 19,
|
||||
libelle: 'Pays de commercialisation',
|
||||
drop_down_list: create(:drop_down_list, value: (Champs::PaysChamp.pays - ['----']).join("\r\n")),
|
||||
procedure: proc_to
|
||||
)
|
||||
proc_to.types_de_champ << create(:type_de_champ_header_section, order_place: 20, libelle: 'PARTIE 4 : ENGAGEMENT DE L’EXPLOITANT', procedure: proc_to)
|
||||
(21..25).each do |i|
|
||||
libelle = proc_from.types_de_champ.find_by(order_place: i - 2).libelle
|
||||
proc_to.types_de_champ << create(:type_de_champ_text, order_place: i, libelle: libelle, procedure: proc_to)
|
||||
end
|
||||
proc_to.save
|
||||
proc_to
|
||||
end
|
||||
let!(:type_champ_to) { create(:type_de_champ_textarea, order_place: 1, libelle: 'texte', procedure: proc_to) }
|
||||
let!(:type_champ_siret_to) { create(:type_de_champ_siret, order_place: 2, libelle: 'Numéro SIRET', procedure: proc_to) }
|
||||
let!(:type_champ_fonction_to) { create(:type_de_champ_text, order_place: 9, libelle: 'Fonction', mandatory: true, procedure: proc_to) }
|
||||
|
||||
let(:rake_task) { Rake::Task['2018_07_31_nutriscore:migrate_dossiers'] }
|
||||
|
||||
def run_task
|
||||
ENV['SOURCE_PROCEDURE_ID'] = proc_from.id.to_s
|
||||
ENV['DESTINATION_PROCEDURE_ID'] = proc_to.id.to_s
|
||||
rake_task.invoke
|
||||
dossier.reload
|
||||
proc_from.reload
|
||||
proc_to.reload
|
||||
end
|
||||
|
||||
after { rake_task.reenable }
|
||||
|
||||
context 'on happy path' do
|
||||
before do
|
||||
gestionnaire.assign_to_procedure(proc_from)
|
||||
run_task
|
||||
end
|
||||
|
||||
it { expect(dossier.procedure).to eq(proc_to) }
|
||||
it { expect(dossier.champs.pluck(:type_de_champ_id)).to match_array(proc_to.types_de_champ.pluck(:id)) }
|
||||
it { expect(dossier.champs.find_by(type_de_champ: type_champ_siret_to).value).to eq(etablissement.siret) }
|
||||
it { expect(dossier.champs.find_by(type_de_champ: type_champ_siret_to).etablissement).to eq(etablissement) }
|
||||
it { expect(proc_from).to be_archivee }
|
||||
it { expect(proc_to).to be_publiee }
|
||||
it { expect(proc_to.gestionnaires).to eq([gestionnaire]) }
|
||||
end
|
||||
|
||||
context 'detecting error conditions' do
|
||||
context 'with administrateur mismatch' do
|
||||
let(:proc_to) { create(:procedure) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/^Mismatching administrateurs/) }
|
||||
end
|
||||
|
||||
context 'with champ count mismatch' do
|
||||
before { create(:type_de_champ_textarea, order_place: 26, libelle: 'texte', procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception('Incorrect destination size 27 (expected 26)') }
|
||||
end
|
||||
|
||||
context 'with champ libelle mismatch' do
|
||||
let!(:type_champ_to) { create(:type_de_champ_textarea, order_place: 1, libelle: 'autre texte', procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/incorrect libelle texte \(expected autre texte\)$/) }
|
||||
end
|
||||
|
||||
context 'with champ type mismatch' do
|
||||
let!(:type_champ_to) { create(:type_de_champ_text, order_place: 1, libelle: 'texte', procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/incorrect type champ textarea \(expected text\)$/) }
|
||||
end
|
||||
|
||||
context 'with champ mandatoriness mismatch' do
|
||||
let!(:type_champ_to) { create(:type_de_champ_textarea, order_place: 1, libelle: 'texte', mandatory: true, procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/champ should be mandatory$/) }
|
||||
end
|
||||
|
||||
context 'with dropdown mismatch' do
|
||||
let!(:type_champ_from) { create(:type_de_champ_drop_down_list, order_place: 1, libelle: 'dropdown', drop_down_list: create(:drop_down_list, value: 'something'), procedure: proc_from) }
|
||||
let!(:type_champ_to) { create(:type_de_champ_drop_down_list, order_place: 1, libelle: 'dropdown', drop_down_list: create(:drop_down_list, value: 'something else'), procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/incorrect drop down list \["", "something"\] \(expected \["", "something else"\]\)$/) }
|
||||
end
|
||||
|
||||
context 'with siret mismatch on source' do
|
||||
let!(:type_champ_siret_from) { create(:type_de_champ_textarea, order_place: 2, libelle: 'Numéro SIRET', procedure: proc_from) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/incorrect type champ textarea \(expected text\)$/) }
|
||||
end
|
||||
|
||||
context 'with siret mismatch on destination' do
|
||||
let!(:type_champ_siret_to) { create(:type_de_champ_text, order_place: 2, libelle: 'Numéro SIRET', procedure: proc_to) }
|
||||
|
||||
it { expect { run_task }.to raise_exception(/incorrect type champ text \(expected siret\)$/) }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,82 +0,0 @@
|
|||
require 'spec_helper'
|
||||
|
||||
load Rails.root.join('lib', 'tasks', '2019_01_16_fix_automatic_dossier_logs.rake')
|
||||
|
||||
describe '2019_01_16_fix_automatic_dossier_logs' do
|
||||
let!(:rake_task) { Rake::Task['2019_01_16_fix_automatic_dossier_logs:run'] }
|
||||
let!(:administrateur) { create(:administrateur) }
|
||||
let!(:another_gestionnaire) { create(:gestionnaire) }
|
||||
let!(:procedure) { create(:procedure, administrateur: administrateur) }
|
||||
let!(:dossier) { create(:dossier, procedure: procedure) }
|
||||
let!(:fix_automatic_dossier_logs) { FixAutomaticDossierLogs_2019_01_16.new }
|
||||
|
||||
before do
|
||||
allow(fix_automatic_dossier_logs).to receive(:find_handlers)
|
||||
.and_return([double(job_data: { 'arguments' => [procedure.id, final_state] })])
|
||||
end
|
||||
|
||||
subject do
|
||||
fix_automatic_dossier_logs.run
|
||||
dossier.reload
|
||||
end
|
||||
|
||||
context 'when the dossiers are automatically moved to en_instruction' do
|
||||
let(:final_state) { 'en_instruction' }
|
||||
|
||||
context 'and a dossier has been accidentally affected to an administrateur' do
|
||||
before do
|
||||
dossier.passer_en_instruction!(administrateur.gestionnaire)
|
||||
|
||||
control = DossierOperationLog.create(
|
||||
gestionnaire: another_gestionnaire,
|
||||
operation: 'refuser',
|
||||
automatic_operation: false
|
||||
)
|
||||
|
||||
dossier.dossier_operation_logs << control
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(dossier.follows.count).to eq(0) }
|
||||
|
||||
it do
|
||||
expect(dossier_logs).to match_array([
|
||||
[nil, 'passer_en_instruction', true],
|
||||
[another_gestionnaire.id, "refuser", false]
|
||||
])
|
||||
end
|
||||
end
|
||||
|
||||
context ', followed anyway by another person and accidentally ...' do
|
||||
before do
|
||||
another_gestionnaire.follow(dossier)
|
||||
dossier.passer_en_instruction!(administrateur.gestionnaire)
|
||||
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(dossier.follows.count).to eq(2) }
|
||||
it { expect(dossier_logs).to match([[nil, 'passer_en_instruction', true]]) }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the dossiers are automatically moved to accepte' do
|
||||
let(:final_state) { 'accepte' }
|
||||
|
||||
context 'and a dossier has been accidentally affected to an administrateur' do
|
||||
before do
|
||||
dossier.accepter!(administrateur.gestionnaire, '')
|
||||
|
||||
subject
|
||||
end
|
||||
|
||||
it { expect(dossier_logs).to match([[nil, 'accepter', true]]) }
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def dossier_logs
|
||||
dossier.dossier_operation_logs.pluck(:gestionnaire_id, :operation, :automatic_operation)
|
||||
end
|
||||
end
|
|
@ -1,32 +0,0 @@
|
|||
describe '20181219164523_clone_service_for_transferred_procedures.rake' do
|
||||
let(:rake_task) { Rake::Task['after_party:clone_service_for_transferred_procedures'] }
|
||||
|
||||
subject do
|
||||
rake_task.invoke
|
||||
end
|
||||
|
||||
after do
|
||||
rake_task.reenable
|
||||
end
|
||||
|
||||
context 'procedures from different admins share the same service' do
|
||||
let(:admin1) { create(:administrateur) }
|
||||
let(:admin2) { create(:administrateur) }
|
||||
let(:service) { create(:service, administrateur: admin1) }
|
||||
let!(:procedure1) { create(:procedure, service: service, administrateur: admin1) }
|
||||
let!(:procedure2) { create(:procedure, service: service, administrateur: admin2) }
|
||||
let!(:procedure3) { create(:procedure, service: service, administrateur: admin2) }
|
||||
|
||||
it 'clones service for procedure2 & procedure3' do
|
||||
subject
|
||||
expect(procedure1.reload.service).not_to eq(procedure2.reload.service)
|
||||
expect(procedure1.reload.service).not_to eq(procedure3.reload.service)
|
||||
expect(procedure2.reload.service).to eq(procedure3.reload.service)
|
||||
end
|
||||
|
||||
it 'does nothing for procedure1' do
|
||||
subject
|
||||
expect(procedure1.reload.service).to eq(service)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue