discourse/spec/components/validators/enable_sso_validator_spec.rb
Robin Ward 6ebadaed2c FIX: Do not allow invite_only and enable_sso at the same time
This functionality was never supported but before the new review queue
it didn't have any errors. Now the combination of settings is prevented
and existing sites with sso enabled will be migrated to remove invite
only.
2019-04-02 10:26:27 -04:00

67 lines
1.6 KiB
Ruby

require 'rails_helper'
RSpec.describe EnableSsoValidator do
subject { described_class.new }
describe '#valid_value?' do
describe "when 'sso url' is empty" do
before do
SiteSetting.sso_url = ""
end
describe 'when val is false' do
it 'should be valid' do
expect(subject.valid_value?('f')).to eq(true)
end
end
describe 'when value is true' do
it 'should not be valid' do
expect(subject.valid_value?('t')).to eq(false)
expect(subject.error_message).to eq(I18n.t(
'site_settings.errors.sso_url_is_empty'
))
end
end
end
describe "when invite_only is set" do
before do
SiteSetting.invite_only = true
SiteSetting.sso_url = 'https://example.com/sso'
end
it 'allows a false value' do
expect(subject.valid_value?('f')).to eq(true)
end
it "doesn't allow true" do
expect(subject.valid_value?('t')).to eq(false)
expect(subject.error_message).to eq(I18n.t(
'site_settings.errors.sso_invite_only'
))
end
end
describe "when 'sso url' is present" do
before do
SiteSetting.sso_url = "https://www.example.com/sso"
end
describe 'when value is false' do
it 'should be valid' do
expect(subject.valid_value?('f')).to eq(true)
end
end
describe 'when value is true' do
it 'should be valid' do
expect(subject.valid_value?('t')).to eq(true)
end
end
end
end
end