2022-12-08 08:38:36 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2023-06-07 09:26:58 +08:00
|
|
|
describe "Admin Customize Themes", type: :system do
|
2022-12-08 08:38:36 +08:00
|
|
|
fab!(:color_scheme) { Fabricate(:color_scheme) }
|
|
|
|
fab!(:theme) { Fabricate(:theme) }
|
|
|
|
fab!(:admin) { Fabricate(:admin) }
|
|
|
|
|
|
|
|
before { sign_in(admin) }
|
|
|
|
|
2023-10-09 05:35:53 +08:00
|
|
|
describe "when visiting the page to customize themes" do
|
|
|
|
fab!(:theme_2) { Fabricate(:theme) }
|
|
|
|
fab!(:theme_3) { Fabricate(:theme) }
|
|
|
|
let(:admin_customize_themes_page) { PageObjects::Pages::AdminCustomizeThemes.new }
|
|
|
|
let(:delete_themes_confirm_modal) { PageObjects::Modals::DeleteThemesConfirm.new }
|
|
|
|
|
|
|
|
it "should allow admin to bulk delete inactive themes" do
|
|
|
|
visit("/admin/customize/themes")
|
|
|
|
|
|
|
|
expect(admin_customize_themes_page).to have_inactive_themes
|
|
|
|
|
|
|
|
admin_customize_themes_page.click_select_inactive_mode
|
|
|
|
expect(admin_customize_themes_page).to have_inactive_themes_selected(count: 0)
|
|
|
|
admin_customize_themes_page.toggle_all_inactive
|
|
|
|
expect(admin_customize_themes_page).to have_inactive_themes_selected(count: 3)
|
|
|
|
|
|
|
|
admin_customize_themes_page.cancel_select_inactive_mode
|
|
|
|
expect(admin_customize_themes_page).to have_select_inactive_mode_button
|
|
|
|
|
|
|
|
admin_customize_themes_page.click_select_inactive_mode
|
|
|
|
expect(admin_customize_themes_page).to have_disabled_delete_theme_button
|
|
|
|
|
|
|
|
admin_customize_themes_page.toggle_all_inactive
|
|
|
|
|
|
|
|
admin_customize_themes_page.click_delete_themes_button
|
|
|
|
|
|
|
|
expect(delete_themes_confirm_modal).to have_theme("Cool theme 1")
|
|
|
|
expect(delete_themes_confirm_modal).to have_theme("Cool theme 2")
|
|
|
|
expect(delete_themes_confirm_modal).to have_theme("Cool theme 3")
|
|
|
|
delete_themes_confirm_modal.confirm
|
|
|
|
|
|
|
|
expect(admin_customize_themes_page).to have_no_inactive_themes
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2022-12-08 08:38:36 +08:00
|
|
|
describe "when visiting the page to customize the theme" do
|
|
|
|
it "should allow admin to update the color scheme of the theme" do
|
|
|
|
visit("/admin/customize/themes/#{theme.id}")
|
|
|
|
|
|
|
|
color_scheme_settings = find(".theme-settings__color-scheme")
|
|
|
|
|
|
|
|
expect(color_scheme_settings).not_to have_css(".submit-edit")
|
|
|
|
expect(color_scheme_settings).not_to have_css(".cancel-edit")
|
|
|
|
|
|
|
|
color_scheme_settings.find(".color-palettes").click
|
|
|
|
color_scheme_settings.find(".color-palettes-row[data-value='#{color_scheme.id}']").click
|
|
|
|
color_scheme_settings.find(".submit-edit").click
|
|
|
|
|
|
|
|
expect(color_scheme_settings.find(".setting-value")).to have_content(color_scheme.name)
|
|
|
|
expect(color_scheme_settings).not_to have_css(".submit-edit")
|
|
|
|
expect(color_scheme_settings).not_to have_css(".cancel-edit")
|
|
|
|
|
|
|
|
expect(theme.reload.color_scheme_id).to eq(color_scheme.id)
|
|
|
|
end
|
|
|
|
end
|
2023-04-24 22:30:51 +08:00
|
|
|
|
|
|
|
describe "when editing a local theme" do
|
|
|
|
it "The saved value is present in the editor" do
|
|
|
|
theme.set_field(target: "common", name: "head_tag", value: "console.log('test')", type_id: 0)
|
|
|
|
theme.save!
|
|
|
|
|
|
|
|
visit("/admin/customize/themes/#{theme.id}/common/head_tag/edit")
|
|
|
|
|
|
|
|
ace_content = find(".ace_content")
|
|
|
|
expect(ace_content.text).to eq("console.log('test')")
|
|
|
|
end
|
|
|
|
end
|
2022-12-08 08:38:36 +08:00
|
|
|
end
|