121 lines
3.1 KiB
Ruby
121 lines
3.1 KiB
Ruby
require 'spec_helper_min'
|
|
|
|
describe DataObservatoryMailer do
|
|
|
|
describe ".user_request" do
|
|
before(:all) do
|
|
@user = FactoryGirl.create(:carto_user, email: 'fulano@example.com', name: 'Fulano')
|
|
end
|
|
|
|
before(:each) do
|
|
@mailer = DataObservatoryMailer.user_request(@user, 'Demographics', 'CARTO')
|
|
end
|
|
|
|
after(:each) do
|
|
ActionMailer::Base.deliveries = []
|
|
end
|
|
|
|
after(:all) do
|
|
@user.destroy
|
|
end
|
|
|
|
it "delivers the mail" do
|
|
expect { @mailer.deliver_now }.to change(ActionMailer::Base.deliveries, :size).by(1)
|
|
end
|
|
|
|
it "delivers with the expected subject" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.subject).to eql('Your premium dataset request to CARTO')
|
|
end
|
|
|
|
it "delivers to the expected recipients" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.to).to eql([@user.email])
|
|
end
|
|
|
|
it "delivers a text including the requested dataset name" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.body).to include('Demographics')
|
|
end
|
|
|
|
it "delivers a text including the requested provider name" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.body).to include('CARTO')
|
|
end
|
|
end
|
|
|
|
describe ".carto_request" do
|
|
before(:all) do
|
|
@user = FactoryGirl.create(:carto_user, email: 'fulano@example.com', name: 'Fulano')
|
|
end
|
|
|
|
before(:each) do
|
|
@mailer = DataObservatoryMailer.carto_request(@user, 'carto.open-data.demographics', 3)
|
|
end
|
|
|
|
after(:each) do
|
|
ActionMailer::Base.deliveries = []
|
|
end
|
|
|
|
after(:all) do
|
|
@user.destroy
|
|
end
|
|
|
|
it "delivers the mail" do
|
|
expect { @mailer.deliver_now }.to change(ActionMailer::Base.deliveries, :size).by(1)
|
|
end
|
|
|
|
it "delivers with the expected subject" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.subject).to eql('Dataset request')
|
|
end
|
|
|
|
it "delivers to the expected recipients" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.to).to eql(['dataobservatory@carto.com'])
|
|
end
|
|
|
|
it "delivers a text including the requested dataset id" do
|
|
@mailer.deliver_now
|
|
|
|
mail = ActionMailer::Base.deliveries.first
|
|
expect(mail.body).to include('carto.open-data.demographics')
|
|
end
|
|
end
|
|
|
|
describe '.carto_request from team org member' do
|
|
before(:all) do
|
|
org = FactoryGirl.create(:organization)
|
|
@team_org = Carto::Organization.find(org.id)
|
|
@team_org.name = 'team'
|
|
@team_org.save
|
|
@team_user = FactoryGirl.create(:carto_user)
|
|
@team_user.organization = @team_org
|
|
@team_user.save
|
|
end
|
|
|
|
after(:all) do
|
|
@team_user.destroy
|
|
@team_org.destroy
|
|
end
|
|
|
|
it 'does not deliver to CARTO recipient if requested from team org member' do
|
|
mailer = DataObservatoryMailer.carto_request(@team_user, 'carto.open-data.demographics', 3)
|
|
mailer.deliver_now
|
|
expect(ActionMailer::Base.deliveries).to be_empty
|
|
end
|
|
end
|
|
end
|