discourse/spec/models/trust_level_setting_spec.rb

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

47 lines
1.7 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
RSpec.describe TrustLevelSetting do
describe ".values" do
after { I18n.reload! }
it "returns translated names" do
TranslationOverride.upsert!(I18n.locale, "js.trust_levels.names.newuser", "New Member")
value = TrustLevelSetting.values.first
expect(value[:name]).to eq(
I18n.t("js.trust_levels.detailed_name", level: 0, name: "New Member"),
)
expect(value[:value]).to eq(0)
end
end
describe ".valid_value?" do
let(:deprecated_test) { "#{Rails.root}/spec/fixtures/site_settings/deprecated_test.yml" }
before { SiteSetting.load_settings(deprecated_test) }
it "allows all trust levels as valid values" do
expect(TrustLevelSetting.valid_value?(TrustLevel[0])).to eq(true)
expect(TrustLevelSetting.valid_value?(TrustLevel[1])).to eq(true)
expect(TrustLevelSetting.valid_value?(TrustLevel[2])).to eq(true)
expect(TrustLevelSetting.valid_value?(TrustLevel[3])).to eq(true)
expect(TrustLevelSetting.valid_value?(TrustLevel[4])).to eq(true)
expect(TrustLevelSetting.valid_value?(20)).to eq(false)
end
it "does not allow 'admin' or 'staff' as valid values" do
expect(TrustLevelSetting.valid_value?("admin")).to eq(false)
expect(TrustLevelSetting.valid_value?("staff")).to eq(false)
end
it "does not allow setting 'admin' or 'staff' as valid values" do
expect { SiteSetting.min_trust_level_to_allow_invite = "admin" }.to raise_error(
Discourse::InvalidParameters,
)
expect { SiteSetting.min_trust_level_to_allow_invite = "staff" }.to raise_error(
Discourse::InvalidParameters,
)
end
end
end