You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/spec/factories/flodoc_factories.rb

77 lines
1.8 KiB

# frozen_string_literal: true
# Factory definitions for FloDoc models
FactoryBot.define do
factory :feature_flag do
sequence(:name) { |n| "feature_#{n}" }
enabled { false }
description { 'Test feature flag' }
end
factory :institution do
sequence(:name) { |n| "Institution #{n}" }
sequence(:email) { |n| "institution#{n}@example.com" }
contact_person { 'John Doe' }
phone { '+27123456789' }
settings { {} }
deleted_at { nil }
end
factory :cohort do
association :institution
association :template
sequence(:name) { |n| "Cohort #{n}" }
program_type { 'learnership' }
sequence(:sponsor_email) { |n| "sponsor#{n}@example.com" }
required_student_uploads { [] }
cohort_metadata { {} }
status { 'draft' }
tp_signed_at { nil }
students_completed_at { nil }
sponsor_completed_at { nil }
finalized_at { nil }
deleted_at { nil }
trait :active do
status { 'active' }
tp_signed_at { Time.current }
end
trait :completed do
status { 'completed' }
tp_signed_at { Time.current }
students_completed_at { Time.current }
sponsor_completed_at { Time.current }
finalized_at { Time.current }
end
end
factory :cohort_enrollment do
association :cohort
association :submission
sequence(:student_email) { |n| "student#{n}@example.com" }
student_name { 'John' }
student_surname { 'Doe' }
sequence(:student_id) { |n| "STU#{n.to_s.rjust(6, '0')}" }
status { 'waiting' }
role { 'student' }
uploaded_documents { {} }
values { {} }
completed_at { nil }
deleted_at { nil }
trait :in_progress do
status { 'in_progress' }
end
trait :complete do
status { 'complete' }
completed_at { Time.current }
end
trait :sponsor do
role { 'sponsor' }
end
end
end