FactoryBot.define do factory :setting do sequence(:key) { |n| "Setting Key #{n}" } sequence(:value) { |n| "Setting #{n} Value" } end factory :geozone do sequence(:name) { |n| "District #{n}" } sequence(:external_code) { |n| n.to_s } sequence(:census_code) { |n| n.to_s } trait :in_census do census_code "01" end end factory :banner do sequence(:title) { |n| "Banner title #{n}" } sequence(:description) { |n| "This is the text of Banner #{n}" } target_url {["/proposals", "/debates" ].sample} post_started_at { Time.current - 7.days } post_ended_at { Time.current + 7.days } background_color '#FF0000' font_color '#FFFFFF' end factory :web_section do name 'homepage' end factory :banner_section, class: 'Banner::Section' do association :banner_id, factory: :banner association :web_section, factory: :web_section end factory :site_customization_page, class: 'SiteCustomization::Page' do slug "example-page" title "Example page" subtitle "About an example" content "This page is about..." more_info_flag false print_content_flag false status 'draft' trait :published do status "published" end trait :display_in_more_info do more_info_flag true end end factory :site_customization_content_block, class: 'SiteCustomization::ContentBlock' do name "top_links" locale "en" body "Some top links content" end factory :map_location do latitude 51.48 longitude 0.0 zoom 10 trait :proposal_map_location do proposal end trait :budget_investment_map_location do association :investment, factory: :budget_investment end end factory :widget_card, class: 'Widget::Card' do sequence(:title) { |n| "Title #{n}" } sequence(:description) { |n| "Description #{n}" } sequence(:link_text) { |n| "Link text #{n}" } sequence(:link_url) { |n| "Link url #{n}" } trait :header do header true sequence(:button_text) { |n| "Button text #{n}" } sequence(:button_url) { |n| "Button url #{n}" } sequence(:alignment) { |n| "background" } end after :create do |widget_card| create(:image, imageable: widget_card) end end factory :widget_feed, class: 'Widget::Feed' do end factory :i18n_content, class: 'I18nContent' do key 'debates.index.section_footer.description' value_es 'Texto en espaƱol' value_en 'Text in english' end end