Files
grecia/spec/lib/tasks/budgets_spec.rb
Javi Martín fe9463cb5f Allow specifying the tenant in budget tasks
The `budgets📧selected` and `budgets📧unselected` tasks are
supposed to be run manually because they only make sense at a specific
point during the life of a budget.

However, they would only run on the default tenant, and it was
impossible to run them on a different tenant.

So we're introducing an argument in the rake task accepting the name of
the tenant whose users we want to send emails to.
2022-11-09 18:19:20 +01:00

60 lines
2.2 KiB
Ruby

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
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
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
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