42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.describe ProblemCheck::MissingMailgunApiKey do
|
|
subject(:check) { described_class.new }
|
|
|
|
describe ".call" do
|
|
before do
|
|
SiteSetting.stubs(reply_by_email_enabled: replies_enabled)
|
|
ActionMailer::Base.stubs(smtp_settings: { address: mailgun_address })
|
|
SiteSetting.stubs(mailgun_api_key: api_key)
|
|
end
|
|
|
|
context "when replies are disabled" do
|
|
let(:replies_enabled) { false }
|
|
let(:mailgun_address) { anything }
|
|
let(:api_key) { anything }
|
|
|
|
it { expect(check).to be_chill_about_it }
|
|
end
|
|
|
|
context "when not using Mailgun for replies" do
|
|
let(:replies_enabled) { false }
|
|
let(:mailgun_address) { nil }
|
|
let(:api_key) { anything }
|
|
|
|
it { expect(check).to be_chill_about_it }
|
|
end
|
|
|
|
context "when using Mailgun without an API key" do
|
|
let(:replies_enabled) { true }
|
|
let(:mailgun_address) { "smtp.mailgun.org" }
|
|
let(:api_key) { nil }
|
|
|
|
it do
|
|
expect(check).to have_a_problem.with_priority("low").with_message(
|
|
"The server is configured to send emails via Mailgun but you haven't provided an API key used to verify the webhook messages.",
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|