# frozen_string_literal: true describe UserSummary do fab!(:admin) describe "solved_count" do it "indicates the number of times a user's post is a topic's solution" do topic = Fabricate(:topic) Fabricate(:post, topic:) user = Fabricate(:user) post = Fabricate(:post, topic:, user:) user_summary = UserSummary.new(user, Guardian.new) admin_summary = UserSummary.new(admin, Guardian.new) expect(user_summary.solved_count).to eq(0) expect(admin_summary.solved_count).to eq(0) DiscourseSolved.accept_answer!(post, admin) expect(user_summary.solved_count).to eq(1) expect(admin_summary.solved_count).to eq(0) end it "excludes deleted topics" do topic = Fabricate(:topic) Fabricate(:post, topic:) user = Fabricate(:user) post = Fabricate(:post, topic:, user:) user_summary = UserSummary.new(user, Guardian.new) DiscourseSolved.accept_answer!(post, admin) topic.update!(deleted_at: Time.zone.now) expect(user_summary.solved_count).to eq(0) end it "excludes deleted posts" do topic = Fabricate(:topic) Fabricate(:post, topic:) user = Fabricate(:user) post = Fabricate(:post, topic:, user:) user_summary = UserSummary.new(user, Guardian.new) DiscourseSolved.accept_answer!(post, admin) post.update!(deleted_at: Time.zone.now) expect(user_summary.solved_count).to eq(0) end end end