FIX: show user avatar on User summary page (#6872)

approved

#1

FIX: show user avatar on User summary page (#6872)

diff --git a/app/serializers/user_summary_serializer.rb b/app/serializers/user_summary_serializer.rb
index fcb5a00..cf09cde 100644
--- a/app/serializers/user_summary_serializer.rb
+++ b/app/serializers/user_summary_serializer.rb
@@ -18,8 +18,12 @@ class UserSummarySerializer < ApplicationSerializer
     end
   end
 
-  class UserWithCountSerializer < BasicUserSerializer
-    attributes :count, :name
+  class UserWithCountSerializer < ApplicationSerializer
+    attributes :id, :username, :name, :count, :avatar_template
+
+    def avatar_template
+      User.avatar_template(object[:username], object[:uploaded_avatar_id])
+    end
   end
 
   class CategoryWithCountsSerializer < ApplicationSerializer
diff --git a/spec/serializers/basic_user_serializer_spec.rb b/spec/serializers/basic_user_serializer_spec.rb
index 551df2c..7480f07 100644
--- a/spec/serializers/basic_user_serializer_spec.rb
+++ b/spec/serializers/basic_user_serializer_spec.rb
@@ -22,6 +22,8 @@ describe BasicUserSerializer do
       expect(json[:name]).to be_blank
     end
 
+    it "returns the avatar_template" do
+      expect(json[:avatar_template]).to be_present
+    end
   end
-
 end
diff --git a/spec/serializers/user_summary_serializer_spec.rb b/spec/serializers/user_summary_serializer_spec.rb
new file mode 100644
index 0000000..80db2ad
--- /dev/null
+++ b/spec/serializers/user_summary_serializer_spec.rb
@@ -0,0 +1,24 @@
+require 'rails_helper'
+
+describe UserSummarySerializer do
+  it "returns expected data" do
+    UserActionCreator.enable
+    user = Fabricate(:user)
+    liked_post = create_post
+    PostAction.act(user, liked_post, PostActionType.types[:like])
+
+    guardian = Guardian.new(user)
+    summary = UserSummary.new(user, guardian)
+    serializer = UserSummarySerializer.new(summary, scope: guardian, root: false)
+    json = serializer.as_json
+
+    expect(json[:likes_given]).to be_present
+    expect(json[:likes_received]).to be_present
+    expect(json[:posts_read_count]).to be_present
+    expect(json[:topic_count]).to be_present
+    expect(json[:time_read]).to be_present
+    expect(json[:most_liked_users][0][:count]).to be_present
+    expect(json[:most_liked_users][0][:username]).to be_present
+    expect(json[:most_liked_users][0][:avatar_template]).to be_present
+  end
+end

GitHub sha: 5e0f9ead


#2

#3

Hmm why do we not test the actual output of the fields?


#4

Updated in DEV: improve UserSummarySerializer spec · discourse/discourse@5e9a7e4 · GitHub.