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