0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 06:24:48 +08:00
discourse/spec/system/admin_welcome_banner_config_spec.rb
Jarek Radosz c3a71206a5
DEV: Remove unnecessary TranslationOverride.delete_all in specs (#40131)
This possible led to some db transaction-related flakes.
2026-05-19 15:08:24 +02:00

85 lines
2.5 KiB
Ruby
Vendored

# 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 { I18n.reload! }
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