Send emails to current budget authors in rake tasks

We were using `Budget.last`, but the last budget might not be published
yet.

I must admit I don't know whether these tasks are useful, but I'm not
removing them because I'm not sure that won't harm any CONSUL
installations.
This commit is contained in:
Javi Martín
2022-10-08 21:24:15 +02:00
parent a98c363d4d
commit 796214528e
2 changed files with 33 additions and 2 deletions

View File

@@ -2,12 +2,12 @@ namespace :budgets do
namespace :email do
desc "Sends emails to authors of selected investments"
task selected: :environment do
Budget.last.email_selected
Budget.current.email_selected
end
desc "Sends emails to authors of unselected investments"
task unselected: :environment do
Budget.last.email_unselected
Budget.current.email_unselected
end
end
end

View File

@@ -0,0 +1,31 @@
require "rails_helper"
describe "budget tasks" do
describe "rake budgets:email:selected" do
before { Rake::Task["budgets:email:selected"].reenable }
it "sends emails to users from the current budget and not the last budget created" do
create(:budget_investment, :selected, author: create(:user, email: "selectme@consul.dev"))
create(:budget, :drafting)
Rake.application.invoke_task("budgets:email:selected")
expect(ActionMailer::Base.deliveries.count).to eq 1
expect(ActionMailer::Base.deliveries.last.to).to eq ["selectme@consul.dev"]
end
end
describe "rake budgets:email:unselected" do
before { Rake::Task["budgets:email:unselected"].reenable }
it "sends emails to users from the current budget and not the last budget created" do
create(:budget_investment, author: create(:user, email: "ignorme@consul.dev"))
create(:budget, :drafting)
Rake.application.invoke_task("budgets:email:unselected")
expect(ActionMailer::Base.deliveries.count).to eq 1
expect(ActionMailer::Base.deliveries.last.to).to eq ["ignorme@consul.dev"]
end
end
end