spec/factories/comments.rb
FactoryBot.define do
factory :comment do
commentable factory: :debate
user
sequence(:body) { |n| "Comment body #{n}" }
%i[budget_investment debate legislation_annotation legislation_question legislation_proposal
poll proposal topic_with_community topic_with_investment_community].each do |model|
factory :"#{model}_comment" do
commentable factory: model
end
end
trait :hidden do
hidden_at { Time.current }
end
trait :with_ignored_flag do
ignored_flag_at { Time.current }
end
trait :with_confirmed_hide do
confirmed_hide_at { Time.current }
end
trait :flagged do
after :create do |debate|
Flag.flag(create(:user), debate)
end
end
trait :with_confidence_score do
before(:save, &:calculate_confidence_score)
end
trait :valuation do
valuation { true }
commentable factory: :budget_investment
before :create do |valuation|
valuator = create(:valuator)
valuation.author = valuator.user
valuation.commentable.valuators << valuator
end
end
transient { voters { [] } }
after(:create) do |comment, evaluator|
evaluator.voters.each { |voter| create(:vote, votable: comment, voter: voter) }
end
end
end