discourse/spec/models/trust_level_and_staff_setting_spec.rb
Gerhard Schlager 41ee5b7c86
FIX: Don't store translated trust level names in anonymous cache (#13224)
Refactors `TrustLevel` and moves translations from server to client

Additional changes:
  * "staff" and "admin" wasn't translatable in site settings
  * it replaces a concatenated string with a translation
  * uses translation for trust levels in users_by_trust_level report
  * adds a DB migration to rename keys of translation overrides affected by this commit
2021-06-01 22:11:48 +02:00

27 lines
864 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
describe TrustLevelAndStaffSetting do
describe ".values" do
it "returns translated names" do
TranslationOverride.upsert!(I18n.locale, "js.trust_levels.names.newuser", "New Member")
TranslationOverride.upsert!(I18n.locale, "trust_levels.admin", "Hero")
values = TrustLevelAndStaffSetting.values
value = values.find { |v| v[:value] == 0 }
expect(value).to be_present
expect(value[:name]).to eq(I18n.t("js.trust_levels.detailed_name", level: 0, name: "New Member"))
value = values.find { |v| v[:value] == "admin" }
expect(value).to be_present
expect(value[:name]).to eq("Hero")
value = values.find { |v| v[:value] == "staff" }
expect(value).to be_present
expect(value[:name]).to eq(I18n.t("trust_levels.staff"))
end
end
end