diff --git a/app/assets/javascripts/discourse/app/controllers/user.js b/app/assets/javascripts/discourse/app/controllers/user.js
index 72d6967ec92..237a264265d 100644
--- a/app/assets/javascripts/discourse/app/controllers/user.js
+++ b/app/assets/javascripts/discourse/app/controllers/user.js
@@ -68,6 +68,8 @@ export default Controller.extend(CanCheckEmails, {
};
}),
+ isTrustLevelZero: equal("model.trust_level", 0),
+ hasTrustLevel: or("isTrustLevelZero", "model.trust_level"),
showStaffCounters: or(
"hasGivenFlags",
"hasFlaggedPosts",
diff --git a/app/assets/javascripts/discourse/app/templates/user.hbs b/app/assets/javascripts/discourse/app/templates/user.hbs
index 4ea1c306837..ad8047619de 100644
--- a/app/assets/javascripts/discourse/app/templates/user.hbs
+++ b/app/assets/javascripts/discourse/app/templates/user.hbs
@@ -384,7 +384,7 @@
@model={{this.model.invited_by}}
>{{this.model.invited_by.username}}
{{/if}}
- {{#if this.model.trust_level}}
+ {{#if this.hasTrustLevel}}
{{i18n "user.trust_level"}}{{this.model.trustLevel.name}}
diff --git a/spec/system/page_objects/pages/user.rb b/spec/system/page_objects/pages/user.rb
index a596f82db83..171610d1699 100644
--- a/spec/system/page_objects/pages/user.rb
+++ b/spec/system/page_objects/pages/user.rb
@@ -29,6 +29,12 @@ module PageObjects
staff_counters.find("a[href='/u/#{user.username}/messages/warnings']").click
self
end
+
+ def expand_info_panel
+ button = page.find("button[aria-controls='collapsed-info-panel']")
+ button.click if button["aria-expanded"] == "false"
+ self
+ end
end
end
end
diff --git a/spec/system/user_page/user_profile_info_panel_spec.rb b/spec/system/user_page/user_profile_info_panel_spec.rb
new file mode 100644
index 00000000000..395e6212ce5
--- /dev/null
+++ b/spec/system/user_page/user_profile_info_panel_spec.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+RSpec.describe "User Profile Info Panel", system: true do
+ let(:user_page) { PageObjects::Pages::User.new }
+
+ describe "trust level" do
+ TrustLevel.levels.values.each do |trust_level|
+ context "when user has trust level #{trust_level}" do
+ fab!(:user) { Fabricate(:user, trust_level: trust_level) }
+ before { sign_in(user) }
+
+ it "displays the correct trust level element" do
+ user_page.visit(user).expand_info_panel
+ expect(user_page).to have_css("dd.trust-level", text: TrustLevel.name(trust_level))
+ end
+ end
+ end
+ end
+end