2021-08-26 16:16:22 +03:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
describe UserCardSerializer do
|
|
|
|
let(:user) { Fabricate(:user) }
|
2023-12-06 16:26:40 +10:00
|
|
|
let(:serializer) { described_class.new(user, scope: Guardian.new, root: false) }
|
2021-08-26 16:16:22 +03:00
|
|
|
let(:json) { serializer.as_json }
|
|
|
|
|
|
|
|
it "accepted_answers serializes number of accepted answers" do
|
2025-02-11 14:59:50 +01:00
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(0)
|
|
|
|
|
2021-09-13 19:26:43 +03:00
|
|
|
post1 = Fabricate(:post, user: user)
|
|
|
|
DiscourseSolved.accept_answer!(post1, Discourse.system_user)
|
2025-03-25 14:51:32 +08:00
|
|
|
post1.topic.reload
|
2021-08-26 16:16:22 +03:00
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(1)
|
|
|
|
|
2021-09-13 19:26:43 +03:00
|
|
|
post2 = Fabricate(:post, user: user)
|
|
|
|
DiscourseSolved.accept_answer!(post2, Discourse.system_user)
|
2021-08-26 16:16:22 +03:00
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(2)
|
2021-09-13 19:26:43 +03:00
|
|
|
|
2025-02-11 14:59:50 +01:00
|
|
|
post3 = Fabricate(:post, user: user)
|
|
|
|
DiscourseSolved.accept_answer!(post3, Discourse.system_user)
|
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(3)
|
|
|
|
|
2021-09-13 19:26:43 +03:00
|
|
|
DiscourseSolved.unaccept_answer!(post1)
|
2025-02-11 14:59:50 +01:00
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(2)
|
|
|
|
|
|
|
|
post2.topic.trash!(Discourse.system_user)
|
2021-09-13 19:26:43 +03:00
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(1)
|
2025-02-11 14:59:50 +01:00
|
|
|
|
|
|
|
post3.topic.convert_to_private_message(Discourse.system_user)
|
|
|
|
expect(serializer.as_json[:accepted_answers]).to eq(0)
|
2021-08-26 16:16:22 +03:00
|
|
|
end
|
|
|
|
end
|