Create default path for brouillons procedures

This commit is contained in:
Mathieu Magnin 2019-03-06 18:34:37 +01:00
parent 44f28ec565
commit f96d1b1823
2 changed files with 41 additions and 0 deletions

View file

@ -0,0 +1,17 @@
namespace :after_party do
desc 'Deployment task: create_default_path_for_brouillons'
task create_default_path_for_brouillons: :environment do
puts "Running deploy task 'create_default_path_for_brouillons'"
# Put your task implementation HERE.
Procedure.brouillons.where(path: nil).each do |p|
p.path = SecureRandom.uuid
p.save
end
# Update task as completed. If you remove the line below, the task will
# run with every deploy (or every time you call after_party:run).
AfterParty::TaskRecord.create version: '20190306172842'
end # task :create_default_path_for_brouillons
end # namespace :after_party

View file

@ -0,0 +1,24 @@
describe '20190306172842_create_default_path_for_brouillons.rake' do
let(:rake_task) { Rake::Task['after_party:create_default_path_for_brouillons'] }
let(:administrateur) { create(:administrateur) }
let!(:procedure) { create(:procedure, administrateur: administrateur) }
let!(:procedure2) { create(:simple_procedure, administrateur: administrateur) }
before do
rake_task.invoke
administrateur.reload
end
after { rake_task.reenable }
it 'create a path for his brouillon procedure' do
expect(administrateur.procedures.brouillon.count).to eq(1)
expect(administrateur.procedures.brouillon.first.path).not_to eq(nil)
end
it 'does not change the path of his published procedure' do
expect(administrateur.procedures.publiee.count).to eq(1)
expect(administrateur.procedures.publiee.first.path).to eq(procedure2.path)
end
end