tasks: silence output of tasks during tests

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
.......
```
This commit is contained in:
Pierre de La Morinerie 2018-06-12 16:17:37 +00:00 committed by Mathieu Magnin
parent 0490e58d0b
commit 790704ef58
14 changed files with 61 additions and 24 deletions

View file

@ -1,3 +1,5 @@
require Rails.root.join("lib", "tasks", "task_helper")
namespace :'2018_06_05_send_new_attestation' do
task set: :environment do
ids = [
@ -37,14 +39,14 @@ namespace :'2018_06_05_send_new_attestation' do
if attestation
id = attestation.id
attestation.destroy
puts "Attestation #{id} détruite"
rake_puts "Attestation #{id} détruite"
end
dossier.attestation = dossier.build_attestation
NewAttestationMailer.new_attestation(dossier).deliver_later
puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
puts
rake_puts "Email envoyé à #{dossier.user.email} pour le dossier #{dossier.id}"
rake_puts
end
end
end