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