790704ef58
Currently, when running specs, the output of rake tasks is spamming the tests results. This PR configures Rake so that it runs in quiet mode during specs. This disables the internal messages of rake during tests. However our own `puts` also need to be conditionned to the verbosity of rake. Using a simple `rake_puts` helper allows the info messages to be displayed when running the rake task manually, but not during tests. Before: ``` $ bin/rspec spec/lib/rake Randomized with seed 6544 1 Mails::ClosedMail to clean cleaning Mails::ClosedMail #1 1 Mails::InitiatedMail to clean cleaning Mails::InitiatedMail #1 1 Mails::ReceivedMail to clean cleaning Mails::ReceivedMail #1 1 Mails::RefusedMail to clean cleaning Mails::RefusedMail #1 1 Mails::WithoutContinuationMail to clean cleaning Mails::WithoutContinuationMail #1 .....Champ 0/1 .Champ 0/1 . ``` After: ``` $ bin/rspec spec/lib/rake Randomized with seed 6544 ....... ```
20 lines
667 B
Ruby
20 lines
667 B
Ruby
require Rails.root.join("lib", "tasks", "task_helper")
|
|
|
|
namespace :'2018_06_05_resend_attestations' do
|
|
task set: :environment do
|
|
procedure = Procedure.find(4247)
|
|
dossiers = procedure.dossiers.includes(:attestation).where(state: 'accepte').select do |d|
|
|
d.processed_at < procedure.attestation_template.updated_at
|
|
end
|
|
|
|
dossiers.each do |dossier|
|
|
attestation = dossier.attestation
|
|
attestation.destroy
|
|
|
|
dossier.attestation = dossier.build_attestation
|
|
|
|
ResendAttestationMailer.resend_attestation(dossier).deliver_later
|
|
rake_puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
|
|
end
|
|
end
|
|
end
|