discourse-topic-voting/spec/lib/topic_extension_spec.rb

42 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require "rails_helper"
describe DiscourseTopicVoting::TopicExtension do
let(:user) { Fabricate(:user) }
let(:user2) { Fabricate(:user) }
let(:topic) { Fabricate(:topic) }
let(:topic2) { Fabricate(:topic) }
before do
SiteSetting.topic_voting_enabled = true
SiteSetting.topic_voting_show_who_voted = true
end
describe "#update_vote_count" do
it "upserts topic votes count" do
topic.update_vote_count
topic2.update_vote_count
expect(topic.reload.topic_vote_count.votes_count).to eq(0)
expect(topic2.reload.topic_vote_count.votes_count).to eq(0)
DiscourseTopicVoting::Vote.create!(user: user, topic: topic)
topic.update_vote_count
topic2.update_vote_count
expect(topic.reload.topic_vote_count.votes_count).to eq(1)
expect(topic2.reload.topic_vote_count.votes_count).to eq(0)
DiscourseTopicVoting::Vote.create!(user: user2, topic: topic)
DiscourseTopicVoting::Vote.create!(user: user, topic: topic2)
topic.update_vote_count
topic2.update_vote_count
expect(topic.reload.topic_vote_count.votes_count).to eq(2)
expect(topic2.reload.topic_vote_count.votes_count).to eq(1)
end
end
end