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_site_texts_spec.rb
chapoi ada0aa0d4e
UX: modal modifier class BEM rename + new modifier (#40369)
- Renames .d-modal modifiers from single-dash (-large, -max) to --large,
--max across SCSS, <DModal>, and all callers (core +
discourse-local-dates plugin) to match Discourse's BEM convention.
- Moves per-modal overrides out of modal.scss into the dedicated
modal-overrides.scss file
- Add new `has-search` modifier, for use in modals with a inline
filter/search element to avoid jumping height
- Move all core `.modal selectors` to `.d-modal`

This commit should not change anything visually (if all goes well).
2026-05-28 17:36:48 +02:00

140 lines
5 KiB
Ruby
Vendored

# frozen_string_literal: true
describe "Admin Site Texts Page" do
fab!(:admin)
let(:site_texts_page) { PageObjects::Pages::AdminSiteTexts.new }
before { sign_in(admin) }
after { I18n.reload! }
it "can search for client text using the default locale" do
site_texts_page.visit
site_texts_page.search("skip to main content")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
site_texts_page.visit
site_texts_page.search("js.skip_to_main_content")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
end
it "can search for server text using the default locale" do
site_texts_page.visit
site_texts_page.search("Something went wrong updating theme")
expect(site_texts_page).to have_translation_key("themes.other_error")
expect(site_texts_page).to have_translation_value(I18n.t("themes.other_error"))
site_texts_page.visit
site_texts_page.search("themes.other_error")
expect(site_texts_page).to have_translation_key("themes.other_error")
expect(site_texts_page).to have_translation_value(I18n.t("themes.other_error"))
end
it "can search for text using the selected locale" do
site_texts_page.visit
site_texts_page.select_locale("it")
site_texts_page.search("Passa al contenuto principale")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(
I18n.t("js.skip_to_main_content", locale: "it"),
)
site_texts_page.visit
site_texts_page.select_locale("it")
site_texts_page.search("js.skip_to_main_content")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(
I18n.t("js.skip_to_main_content", locale: "it"),
)
end
it "can show only overridden translations" do
site_texts_page.visit
site_texts_page.search("skip")
site_texts_page.toggle_only_show_overridden
expect(page).to have_css(".site-text", count: 0)
TranslationOverride.create!(
locale: "en",
translation_key: "js.skip_to_main_content",
value: "Overridden skip text",
original_translation: I18n.t("js.skip_to_main_content"),
)
I18n.reload!
site_texts_page.visit
site_texts_page.search("skip")
site_texts_page.toggle_only_show_overridden
expect(page).to have_css(".site-text", count: 1)
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
end
it "can show only outddated translations" do
site_texts_page.visit
site_texts_page.search("skip")
site_texts_page.toggle_only_show_outdated
expect(page).to have_css(".site-text", count: 0)
TranslationOverride.create!(
locale: "en",
translation_key: "js.skip_to_main_content",
value: "Overridden skip text",
original_translation: I18n.t("js.skip_to_main_content"),
status: "outdated",
)
I18n.reload!
site_texts_page.visit
site_texts_page.search("skip")
site_texts_page.toggle_only_show_outdated
expect(page).to have_css(".site-text", count: 1)
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
end
it "can show results in the selected locale" do
site_texts_page.visit
site_texts_page.search("skip to main content")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(I18n.t("js.skip_to_main_content"))
site_texts_page.toggle_only_show_results_in_selected_locale
site_texts_page.select_locale("it")
expect(site_texts_page).to have_translation_key("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value(
I18n.t("js.skip_to_main_content", locale: "it"),
)
end
it "can edit a translation string" do
site_texts_page.visit
site_texts_page.search("skip to main content")
site_texts_page.edit_translation("js.skip_to_main_content")
site_texts_page.override_translation("Some overridden value")
site_texts_page.visit
site_texts_page.search("js.skip_to_main_content")
expect(site_texts_page).to have_translation_value("Some overridden value")
expect(TranslationOverride.exists?(translation_key: "js.skip_to_main_content")).to eq(true)
end
it "properly display category names in replace text modal" do
site_texts_page.visit
site_texts_page.click_replace_text_button
expect(page.all(".d-modal label span").map(&:text)).to eq(["Uncategorized"])
end
it "can load more results" do
site_texts_page.visit
site_texts_page.search("e")
expect(page).to have_css(".site-text", minimum: 50)
initial_count = page.all(".site-text").count
page.execute_script("window.scrollTo(0, document.body.scrollHeight)")
expect(page).to have_css(".site-text", minimum: initial_count + 1)
end
end