+
+
+ {{/if}}
+
{{#if this.canChangeBio}}
diff --git a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js
index 59712a93399..354bb0b5f34 100644
--- a/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js
+++ b/app/assets/javascripts/discourse/tests/acceptance/user-preferences-profile-test.js
@@ -4,6 +4,38 @@ import { cloneJSON } from "discourse/lib/object";
import userFixtures from "discourse/tests/fixtures/user-fixtures";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
+acceptance(
+ "User - Preferences - Profile - Hide Profile Allowed",
+ function (needs) {
+ needs.user();
+ needs.settings({ allow_users_to_hide_profile: true });
+
+ test("user can hide profile", async function (assert) {
+ await visit("/my/preferences/profile");
+
+ assert
+ .dom(".pref-hide-profile")
+ .exists("checkbox to hide profile is shown");
+ });
+ }
+);
+
+acceptance(
+ "User - Preferences - Profile - Hide Profile Not Allowed",
+ function (needs) {
+ needs.user();
+ needs.settings({ allow_users_to_hide_profile: false });
+
+ test("user can hide profile", async function (assert) {
+ await visit("/my/preferences/profile");
+
+ assert
+ .dom(".pref-hide-profile")
+ .doesNotExist("checkbox to hide profile is hidden");
+ });
+ }
+);
+
acceptance("User - Preferences - Profile - Featured topic", function (needs) {
needs.user();
diff --git a/spec/system/page_objects/pages/user_preferences_profile.rb b/spec/system/page_objects/pages/user_preferences_profile.rb
index 7703d6b3d7a..498bf061c63 100644
--- a/spec/system/page_objects/pages/user_preferences_profile.rb
+++ b/spec/system/page_objects/pages/user_preferences_profile.rb
@@ -8,6 +8,14 @@ module PageObjects
self
end
+ def hide_profile
+ find(".user-hide-profile .pref-hide-profile").click
+ end
+
+ def has_hidden_profile?
+ has_css?(".user-hide-profile .pref-hide-profile input[type=checkbox]:checked")
+ end
+
def expand_profile_details
find(".user-main .details .controls .btn-default").click
end
diff --git a/spec/system/user_page/user_preferences_profile_spec.rb b/spec/system/user_page/user_preferences_profile_spec.rb
index de9f73ceaee..035b9a6dc29 100644
--- a/spec/system/user_page/user_preferences_profile_spec.rb
+++ b/spec/system/user_page/user_preferences_profile_spec.rb
@@ -19,6 +19,19 @@ describe "User preferences | Profile", type: :system do
end
end
+ describe "hiding profile" do
+ it "allows user to hide their profile" do
+ SiteSetting.allow_users_to_hide_profile = true
+
+ user_preferences_profile_page.visit(user)
+ user_preferences_profile_page.hide_profile
+ user_preferences_profile_page.save
+ page.refresh
+
+ expect(user_preferences_profile_page).to have_hidden_profile
+ end
+ end
+
describe "enforcing required fields" do
before do
UserRequiredFieldsVersion.create!