# == Schema Information # # Table name: templates # # id :integer not null, primary key # title :string # description :text # published :boolean # org_id :integer # locale :string # is_default :boolean # created_at :datetime # updated_at :datetime # version :integer # visibility :integer # customization_of :integer # family_id :integer # archived :boolean # links :text # # Indexes # # templates_customization_of_version_org_id_key (customization_of,version,org_id) UNIQUE # templates_family_id_version_key (family_id,version) UNIQUE # templates_org_id_idx (org_id) # FactoryBot.define do factory :template do org title { Faker::Lorem.sentence } description { Faker::Lorem.paragraph } locale { "en_GB" } is_default { false } published { false } archived { false } sequence(:version) family_id { rand(10_000) } trait :publicly_visible do after(:create) do |template| template.update(visibility: Template.visibilities[:publicly_visible]) end end trait :organisationally_visible do after(:create) do |template| template.update(visibility: Template.visibilities[:organisationally_visible]) end end trait :archived do archived { true } end trait :default do is_default { true } end trait :published do published { true } end trait :unpublished do published { false } end transient do phases { 0 } sections { 0 } questions { 0 } end after(:create) do |template, evaluator| create_list(:phase, evaluator.phases, template: template, sections: evaluator.sections, questions: evaluator.questions) end end end