59 lines
1.5 KiB
Ruby
59 lines
1.5 KiB
Ruby
require "rails_helper"
|
|
|
|
describe DebatesController do
|
|
|
|
describe "POST create" do
|
|
before do
|
|
InvisibleCaptcha.timestamp_enabled = false
|
|
end
|
|
|
|
after do
|
|
InvisibleCaptcha.timestamp_enabled = true
|
|
end
|
|
|
|
it "creates an ahoy event" do
|
|
debate_attributes = {
|
|
terms_of_service: "1",
|
|
translations_attributes: {
|
|
"0" => {
|
|
title: "A sample debate",
|
|
description: "this is a sample debate",
|
|
locale: "en"
|
|
}
|
|
}
|
|
}
|
|
sign_in create(:user)
|
|
|
|
post :create, params: { debate: debate_attributes }
|
|
expect(Ahoy::Event.where(name: :debate_created).count).to eq 1
|
|
expect(Ahoy::Event.last.properties["debate_id"]).to eq Debate.last.id
|
|
end
|
|
end
|
|
|
|
describe "Vote with too many anonymous votes" do
|
|
after do
|
|
Setting["max_ratio_anon_votes_on_debates"] = 50
|
|
end
|
|
|
|
it "allows vote if user is allowed" do
|
|
Setting["max_ratio_anon_votes_on_debates"] = 100
|
|
debate = create(:debate)
|
|
sign_in create(:user)
|
|
|
|
expect do
|
|
post :vote, xhr: true, params: { id: debate.id, value: "yes" }
|
|
end.to change { debate.reload.votes_for.size }.by(1)
|
|
end
|
|
|
|
it "does not allow vote if user is not allowed" do
|
|
Setting["max_ratio_anon_votes_on_debates"] = 0
|
|
debate = create(:debate, cached_votes_total: 1000)
|
|
sign_in create(:user)
|
|
|
|
expect do
|
|
post :vote, xhr: true, params: { id: debate.id, value: "yes" }
|
|
end.not_to change { debate.reload.votes_for.size }
|
|
end
|
|
end
|
|
end
|