221 lines
5.4 KiB
Ruby
221 lines
5.4 KiB
Ruby
FactoryBot.define do
|
|
factory :spending_proposal do
|
|
sequence(:title) { |n| "Spending Proposal #{n} title" }
|
|
description 'Spend money on this'
|
|
feasible_explanation 'This proposal is not viable because...'
|
|
external_url 'http://external_documention.org'
|
|
terms_of_service '1'
|
|
association :author, factory: :user
|
|
end
|
|
|
|
factory :budget do
|
|
sequence(:name) { |n| "#{Faker::Lorem.word} #{n}" }
|
|
currency_symbol "€"
|
|
phase 'accepting'
|
|
description_drafting "This budget is drafting"
|
|
description_informing "This budget is informing"
|
|
description_accepting "This budget is accepting"
|
|
description_reviewing "This budget is reviewing"
|
|
description_selecting "This budget is selecting"
|
|
description_valuating "This budget is valuating"
|
|
description_publishing_prices "This budget is publishing prices"
|
|
description_balloting "This budget is balloting"
|
|
description_reviewing_ballots "This budget is reviewing ballots"
|
|
description_finished "This budget is finished"
|
|
|
|
trait :drafting do
|
|
phase 'drafting'
|
|
end
|
|
|
|
trait :informing do
|
|
phase 'informing'
|
|
end
|
|
|
|
trait :accepting do
|
|
phase 'accepting'
|
|
end
|
|
|
|
trait :reviewing do
|
|
phase 'reviewing'
|
|
end
|
|
|
|
trait :selecting do
|
|
phase 'selecting'
|
|
end
|
|
|
|
trait :valuating do
|
|
phase 'valuating'
|
|
end
|
|
|
|
trait :publishing_prices do
|
|
phase 'publishing_prices'
|
|
end
|
|
|
|
trait :balloting do
|
|
phase 'balloting'
|
|
end
|
|
|
|
trait :reviewing_ballots do
|
|
phase 'reviewing_ballots'
|
|
end
|
|
|
|
trait :finished do
|
|
phase 'finished'
|
|
end
|
|
end
|
|
|
|
factory :budget_group, class: 'Budget::Group' do
|
|
budget
|
|
sequence(:name) { |n| "Group #{n}" }
|
|
|
|
trait :drafting_budget do
|
|
association :budget, factory: [:budget, :drafting]
|
|
end
|
|
end
|
|
|
|
factory :budget_heading, class: 'Budget::Heading' do
|
|
association :group, factory: :budget_group
|
|
sequence(:name) { |n| "Heading #{n}" }
|
|
price 1000000
|
|
population 1234
|
|
latitude '40.416775'
|
|
longitude '-3.703790'
|
|
|
|
trait :drafting_budget do
|
|
association :group, factory: [:budget_group, :drafting_budget]
|
|
end
|
|
end
|
|
|
|
factory :budget_investment, class: 'Budget::Investment' do
|
|
sequence(:title) { |n| "Budget Investment #{n} title" }
|
|
association :heading, factory: :budget_heading
|
|
association :author, factory: :user
|
|
description 'Spend money on this'
|
|
price 10
|
|
unfeasibility_explanation ''
|
|
skip_map '1'
|
|
terms_of_service '1'
|
|
incompatible false
|
|
|
|
trait :with_confidence_score do
|
|
before(:save) { |i| i.calculate_confidence_score }
|
|
end
|
|
|
|
trait :feasible do
|
|
feasibility "feasible"
|
|
end
|
|
|
|
trait :unfeasible do
|
|
feasibility "unfeasible"
|
|
unfeasibility_explanation "set to unfeasible on creation"
|
|
end
|
|
|
|
trait :undecided do
|
|
feasibility "undecided"
|
|
end
|
|
|
|
trait :finished do
|
|
valuation_finished true
|
|
end
|
|
|
|
trait :selected do
|
|
selected true
|
|
feasibility "feasible"
|
|
valuation_finished true
|
|
end
|
|
|
|
trait :winner do
|
|
selected
|
|
winner true
|
|
end
|
|
|
|
trait :visible_to_valuators do
|
|
visible_to_valuators true
|
|
end
|
|
|
|
trait :incompatible do
|
|
selected
|
|
incompatible true
|
|
end
|
|
|
|
trait :selected_with_price do
|
|
selected
|
|
price 1000
|
|
price_explanation 'Because of reasons'
|
|
end
|
|
|
|
trait :unselected do
|
|
selected false
|
|
feasibility "feasible"
|
|
valuation_finished true
|
|
end
|
|
|
|
trait :hidden do
|
|
hidden_at { Time.current }
|
|
end
|
|
|
|
trait :with_ignored_flag do
|
|
ignored_flag_at { Time.current }
|
|
end
|
|
|
|
trait :flagged do
|
|
after :create do |investment|
|
|
Flag.flag(create(:user), investment)
|
|
end
|
|
end
|
|
|
|
trait :with_confirmed_hide do
|
|
confirmed_hide_at { Time.current }
|
|
end
|
|
end
|
|
|
|
factory :budget_phase, class: 'Budget::Phase' do
|
|
budget
|
|
kind :balloting
|
|
summary Faker::Lorem.sentence(3)
|
|
description Faker::Lorem.sentence(10)
|
|
starts_at { Date.yesterday }
|
|
ends_at { Date.tomorrow }
|
|
enabled true
|
|
end
|
|
|
|
factory :budget_ballot, class: 'Budget::Ballot' do
|
|
association :user, factory: :user
|
|
budget
|
|
end
|
|
|
|
factory :budget_ballot_line, class: 'Budget::Ballot::Line' do
|
|
association :ballot, factory: :budget_ballot
|
|
association :investment, factory: :budget_investment
|
|
end
|
|
|
|
factory :budget_reclassified_vote, class: 'Budget::ReclassifiedVote' do
|
|
user
|
|
association :investment, factory: :budget_investment
|
|
reason "unfeasible"
|
|
end
|
|
|
|
factory :milestone_status, class: 'Milestone::Status' do
|
|
sequence(:name) { |n| "Milestone status #{n} name" }
|
|
sequence(:description) { |n| "Milestone status #{n} description" }
|
|
end
|
|
|
|
factory :milestone, class: 'Milestone' do
|
|
association :milestoneable, factory: :budget_investment
|
|
association :status, factory: :milestone_status
|
|
sequence(:title) { |n| "Budget investment milestone #{n} title" }
|
|
description 'Milestone description'
|
|
publication_date { Date.current }
|
|
end
|
|
|
|
factory :valuator_group, class: ValuatorGroup do
|
|
sequence(:name) { |n| "Valuator Group #{n}" }
|
|
end
|
|
|
|
factory :heading_content_block, class: 'Budget::ContentBlock' do
|
|
association :heading, factory: :budget_heading
|
|
locale 'en'
|
|
body 'Some heading contents'
|
|
end
|
|
end
|