diff --git a/lib/tasks/budgets.rake b/lib/tasks/budgets.rake index 008b29bef..7143e1e3e 100644 --- a/lib/tasks/budgets.rake +++ b/lib/tasks/budgets.rake @@ -1,13 +1,13 @@ namespace :budgets do namespace :email do desc "Sends emails to authors of selected investments" - task selected: :environment do - Budget.current.email_selected + task :selected, [:tenant] => :environment do |_, args| + Tenant.switch(args[:tenant]) { Budget.current.email_selected } end desc "Sends emails to authors of unselected investments" - task unselected: :environment do - Budget.current.email_unselected + task :unselected, [:tenant] => :environment do |_, args| + Tenant.switch(args[:tenant]) { Budget.current.email_unselected } end end end diff --git a/spec/lib/tasks/budgets_spec.rb b/spec/lib/tasks/budgets_spec.rb index c58c24ff9..ff4419440 100644 --- a/spec/lib/tasks/budgets_spec.rb +++ b/spec/lib/tasks/budgets_spec.rb @@ -13,6 +13,20 @@ describe "budget tasks" do expect(ActionMailer::Base.deliveries.count).to eq 1 expect(ActionMailer::Base.deliveries.last.to).to eq ["selectme@consul.dev"] end + + it "accepts specifying the tenant" do + create(:budget_investment, :selected, author: create(:user, email: "default@consul.dev")) + create(:tenant, schema: "different") + + Tenant.switch("different") do + create(:budget_investment, :selected, author: create(:user, email: "different@consul.dev")) + end + + Rake.application.invoke_task("budgets:email:selected[different]") + + expect(ActionMailer::Base.deliveries.count).to eq 1 + expect(ActionMailer::Base.deliveries.last.to).to eq ["different@consul.dev"] + end end describe "rake budgets:email:unselected" do @@ -27,5 +41,19 @@ describe "budget tasks" do expect(ActionMailer::Base.deliveries.count).to eq 1 expect(ActionMailer::Base.deliveries.last.to).to eq ["ignorme@consul.dev"] end + + it "accepts specifying the tenant" do + create(:budget_investment, author: create(:user, email: "default@consul.dev")) + create(:tenant, schema: "different") + + Tenant.switch("different") do + create(:budget_investment, author: create(:user, email: "different@consul.dev")) + end + + Rake.application.invoke_task("budgets:email:unselected[different]") + + expect(ActionMailer::Base.deliveries.count).to eq 1 + expect(ActionMailer::Base.deliveries.last.to).to eq ["different@consul.dev"] + end end end