mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-03 15:31:35 +08:00
88 lines
2.6 KiB
Ruby
88 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Admin Welcome Banner Config" do
|
|
fab!(:admin)
|
|
let(:config_page) { PageObjects::Pages::AdminWelcomeBannerConfig.new }
|
|
|
|
before do
|
|
sign_in(admin)
|
|
SiteSetting.allow_user_locale = true
|
|
end
|
|
|
|
after do
|
|
TranslationOverride.delete_all
|
|
I18n.reload!
|
|
end
|
|
|
|
describe "locale selector" do
|
|
it "displays a locale selector" do
|
|
config_page.visit
|
|
expect(config_page).to have_locale_selector
|
|
end
|
|
|
|
it "switches between locales and loads appropriate translations" do
|
|
TranslationOverride.upsert!(
|
|
"fr",
|
|
"js.welcome_banner.header.new_members",
|
|
"Bienvenue %{preferred_display_name}!",
|
|
)
|
|
TranslationOverride.upsert!("fr", "js.welcome_banner.search_placeholder", "Rechercher")
|
|
|
|
config_page.visit
|
|
|
|
expect(config_page.header_new_members_value).to eq("Welcome, %{preferred_display_name}!")
|
|
expect(config_page.search_placeholder_value).to eq("Search")
|
|
|
|
config_page.select_locale("fr")
|
|
|
|
expect(config_page.header_new_members_value).to eq("Bienvenue %{preferred_display_name}!")
|
|
expect(config_page.search_placeholder_value).to eq("Rechercher")
|
|
end
|
|
|
|
it "saves translations to the selected locale" do
|
|
config_page.visit
|
|
|
|
config_page.select_locale("fr")
|
|
|
|
config_page.fill_header_new_members("Bonjour %{preferred_display_name}!")
|
|
config_page.submit
|
|
|
|
expect(config_page).to have_saved_message
|
|
|
|
french_override =
|
|
TranslationOverride.find_by(
|
|
locale: "fr",
|
|
translation_key: "js.welcome_banner.header.new_members",
|
|
)
|
|
expect(french_override.value).to eq("Bonjour %{preferred_display_name}!")
|
|
|
|
config_page.visit
|
|
expect(config_page.header_new_members_value).to eq("Welcome, %{preferred_display_name}!")
|
|
end
|
|
|
|
it "does not overwrite existing translation overrides when switching locales without changes" do
|
|
TranslationOverride.upsert!(
|
|
"fr",
|
|
"js.welcome_banner.header.new_members",
|
|
"Bienvenue %{preferred_display_name}!",
|
|
)
|
|
|
|
override =
|
|
TranslationOverride.find_by(
|
|
locale: "fr",
|
|
translation_key: "js.welcome_banner.header.new_members",
|
|
)
|
|
timestamp_before = override.updated_at
|
|
|
|
config_page.visit
|
|
config_page.select_locale("fr")
|
|
expect(config_page.header_new_members_value).to eq("Bienvenue %{preferred_display_name}!")
|
|
|
|
config_page.submit
|
|
expect(config_page).to have_saved_message
|
|
|
|
override.reload
|
|
expect(override.updated_at).to eq_time(timestamp_before)
|
|
end
|
|
end
|
|
end
|