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.
sqm-dashboards/spec/factories.rb

232 lines
5.0 KiB

FactoryBot.define do
factory :benefit do
designation { "MyString" }
end
factory :education do
designation { "MyString" }
end
factory :employment do
designation { "MyString" }
end
factory :parent_language do
parent { nil }
language { nil }
end
factory :language do
designation { "MyString" }
end
factory :housing do
designation { "MyString" }
end
factory :parent do
response_id { "MyString" }
number_of_children { 1 }
end
factory :income do
designation { "DefaultIncome" }
end
factory :ell do
designation { "DefaultEll" }
end
factory :gender do
qualtrics_code { 1 }
designation { "MyString" }
end
factory :race_score do
measure { nil }
school { nil }
academic_year { nil }
race { nil }
average { 1.5 }
meets_student_threshold { false }
end
factory :student do
response_id { "ID#{rand}" }
lasid { "Lasid#{rand}" }
end
factory :student_race do
student { nil }
race { nil }
end
factory :race do
designation { "Race#{rand}" }
qualtrics_code { 1 }
end
factory :response_rate do
subcategory { nil }
school { nil }
academic_year { nil }
student_response_rate { 1.5 }
teacher_response_rate { 1.5 }
meets_student_threshold { false }
meets_teacher_threshold { false }
end
factory :admin_data_value do
likert_score { 1.5 }
school
admin_data_item
academic_year
end
factory :survey do
form { 0 }
academic_year
school
end
factory :district do
name { "#{rand} District" }
slug { name.parameterize }
end
factory :school do
name { "#{rand} School" }
slug { name.parameterize }
sequence(:dese_id, 1000)
district
end
factory :academic_year do
range { "2050-51" }
initialize_with { AcademicYear.find_or_initialize_by(range:) }
end
factory :category, class: "Category" do
name { "A #{rand} category" }
category_id { rand.to_s }
description { "A description of a category" }
slug { name.parameterize }
sort_index { 1 }
end
factory :subcategory do
name { "A subcategory" }
subcategory_id { rand.to_s }
description { "A description of a subcategory" }
category
factory :subcategory_with_measures do
transient do
measures_count { 2 }
end
after(:create) do |subcategory, evaluator|
create_list(:measure, evaluator.measures_count, subcategory:).each do |measure|
scale = create(:scale, measure:)
survey_item = create(:teacher_survey_item, scale:)
create_list(:survey_item_response, SurveyItemResponse::TEACHER_RESPONSE_THRESHOLD, survey_item:)
end
end
end
end
factory :measure do
measure_id { rand.to_s }
name { "A Measure" }
subcategory
trait :with_student_survey_items do
after(:create) do |measure|
create(:student_scale, measure:) do |scale|
create_list(:student_survey_item, 2, scale:)
end
end
end
trait :with_admin_data_items do
after(:create) do |measure|
scale = create(:scale, measure:)
create(:admin_data_item, scale:)
end
end
end
factory :scale do
measure
scale_id { "A Scale #{rand}" }
factory :teacher_scale do
scale_id { "t-#{rand}" }
end
factory :student_scale do
scale_id { "s-#{rand}" }
end
factory :admin_scale do
scale_id { "a-#{rand}" }
end
factory :parent_scale do
scale_id { "p-#{rand}" }
end
end
factory :survey_item do
scale
prompt { "What do YOU think?" }
factory :teacher_survey_item do
survey_item_id { "t-#{rand}" }
watch_low_benchmark { 2.0 }
growth_low_benchmark { 3.0 }
approval_low_benchmark { 4.0 }
ideal_low_benchmark { 4.5 }
end
factory :student_survey_item do
survey_item_id { "s-#{rand}" }
watch_low_benchmark { 2.0 }
growth_low_benchmark { 3.0 }
approval_low_benchmark { 4.0 }
ideal_low_benchmark { 4.5 }
end
factory :early_education_survey_item do
survey_item_id { "s-#{rand}-es#{rand}" }
watch_low_benchmark { 2.0 }
growth_low_benchmark { 3.0 }
approval_low_benchmark { 4.0 }
ideal_low_benchmark { 4.5 }
end
factory :parent_survey_item do
survey_item_id { "p-#{rand}" }
watch_low_benchmark { 2.0 }
growth_low_benchmark { 3.0 }
approval_low_benchmark { 4.0 }
ideal_low_benchmark { 4.5 }
end
end
factory :survey_item_response do
likert_score { 3 }
response_id { rand.to_s }
grade { 1 }
academic_year
school
survey_item factory: :teacher_survey_item
end
factory :admin_data_item do
admin_data_item_id { rand.to_s }
description { rand.to_s }
scale
end
factory :respondent do
school
academic_year
one { 40 }
total_students { SurveyItemResponse::STUDENT_RESPONSE_THRESHOLD * 4 }
total_teachers { SurveyItemResponse::TEACHER_RESPONSE_THRESHOLD * 4 }
end
end