mirror of
https://github.com/mastodon/mastodon.git
synced 2025-10-05 08:33:00 +00:00
99 lines
2.7 KiB
Ruby
99 lines
2.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Mastodon::EmailConfigurationHelper do
|
|
describe '#convert_smtp_settings' do
|
|
subject { described_class }
|
|
|
|
let(:converted_settings) { subject.convert_smtp_settings(configuration) }
|
|
let(:base_configuration) do
|
|
{
|
|
address: 'localhost',
|
|
port: 25,
|
|
user_name: 'mastodon',
|
|
password: 'mastodon',
|
|
}
|
|
end
|
|
|
|
context 'when `enable_starttls` is "always"' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ enable_starttls: 'always' })
|
|
end
|
|
|
|
it 'converts this to `true`' do
|
|
expect(converted_settings[:enable_starttls]).to be true
|
|
end
|
|
end
|
|
|
|
context 'when `enable_starttls` is "never"' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ enable_starttls: 'never' })
|
|
end
|
|
|
|
it 'converts this to `false`' do
|
|
expect(converted_settings[:enable_starttls]).to be false
|
|
end
|
|
end
|
|
|
|
context 'when `enable_starttls` is "auto"' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ enable_starttls: 'auto' })
|
|
end
|
|
|
|
it 'sets `enable_starttls_auto` instead' do
|
|
expect(converted_settings[:enable_starttls]).to be_nil
|
|
expect(converted_settings[:enable_starttls_auto]).to be true
|
|
end
|
|
end
|
|
|
|
context 'when `enable_starttls` is unset' do
|
|
context 'when `enable_starttls_auto` is unset' do
|
|
let(:configuration) { base_configuration }
|
|
|
|
it 'sets `enable_starttls_auto` to `true`' do
|
|
expect(converted_settings[:enable_starttls_auto]).to be true
|
|
end
|
|
end
|
|
|
|
context 'when `enable_starttls_auto` is set to "false"' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ enable_starttls_auto: 'false' })
|
|
end
|
|
|
|
it 'sets `enable_starttls_auto` to `false`' do
|
|
expect(converted_settings[:enable_starttls_auto]).to be false
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'when `authentication` is set to "none"' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ authentication: 'none' })
|
|
end
|
|
|
|
it 'sets `authentication` to `nil`' do
|
|
expect(converted_settings[:authentication]).to be_nil
|
|
end
|
|
end
|
|
|
|
context 'when `authentication` is set to `login`' do
|
|
let(:configuration) do
|
|
base_configuration.merge({ authentication: 'login' })
|
|
end
|
|
|
|
it 'is left as-is' do
|
|
expect(converted_settings[:authentication]).to eq 'login'
|
|
end
|
|
end
|
|
|
|
context 'when `authentication` is unset' do
|
|
let(:configuration) { base_configuration }
|
|
|
|
it 'sets `authentication` to "plain"' do
|
|
expect(converted_settings[:authentication]).to eq 'plain'
|
|
end
|
|
end
|
|
end
|
|
end
|