Files
discourse/spec/lib/validators/enable_sso_validator_spec.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
1.5 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
RSpec.describe EnableSsoValidator do
2023-06-21 16:00:19 +02:00
subject(:validator) { described_class.new }
describe "#valid_value?" do
describe "when 'sso url' is empty" do
before { SiteSetting.discourse_connect_url = "" }
describe "when val is false" do
it "should be valid" do
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("f")).to eq(true)
end
end
describe "when value is true" do
it "should not be valid" do
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("t")).to eq(false)
2023-06-21 16:00:19 +02:00
expect(validator.error_message).to eq(
I18n.t("site_settings.errors.discourse_connect_url_is_empty"),
)
end
end
end
describe "when 'sso url' is present" do
before { SiteSetting.discourse_connect_url = "https://www.example.com/sso" }
describe "when value is false" do
it "should be valid" do
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("f")).to eq(true)
end
end
describe "when value is true" do
it "should be valid" do
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("t")).to eq(true)
end
end
end
describe "when 2FA is enforced" do
before { SiteSetting.discourse_connect_url = "https://www.example.com/sso" }
it "should be invalid" do
SiteSetting.enforce_second_factor = "all"
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("t")).to eq(false)
end
it "should be valid" do
SiteSetting.enforce_second_factor = "no"
2023-06-21 16:00:19 +02:00
expect(validator.valid_value?("t")).to eq(true)
end
end
end
end