# frozen_string_literal: true describe "Admin Site Setting Requires Confirmation", type: :system do let(:settings_page) { PageObjects::Pages::AdminSiteSettings.new } let(:dialog) { PageObjects::Components::Dialog.new } fab!(:admin) before do SiteSetting.min_password_length = 10 sign_in(admin) end it "requires confirmation and shows the correct message" do settings_page.visit("min_password_length") settings_page.change_number_setting("min_password_length", 12) expect(dialog).to be_open expect(dialog).to have_content( I18n.t( "admin_js.admin.site_settings.requires_confirmation_messages.min_password_length.prompt", ), ) expect(dialog).to have_content( I18n.t( "admin_js.admin.site_settings.requires_confirmation_messages.min_password_length.confirm", ), ) dialog.click_yes expect(dialog).to be_closed expect(settings_page).to have_overridden_setting("min_password_length") expect(SiteSetting.min_password_length).to eq(12) end it "does not save the new setting value if the admin cancels confirmation" do settings_page.visit("min_password_length") settings_page.change_number_setting("min_password_length", 12) expect(dialog).to be_open dialog.click_no expect(dialog).to be_closed expect(SiteSetting.min_password_length).to eq(10) end end