53 lines
1.3 KiB
Ruby
53 lines
1.3 KiB
Ruby
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
|