From bcc770acc15f422d437dfc7363687889f27e3c80 Mon Sep 17 00:00:00 2001 From: abcampo-iry <261805581+abcampo-iry@users.noreply.github.com> Date: Fri, 13 Mar 2026 12:05:47 +0100 Subject: [PATCH] Cover US path deterministically - district_nces_id now generates 7 digits instead of 12 - we were using school id instead --- lib/tasks/seeds_helper.rb | 2 +- spec/lib/test_seeds_spec.rb | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/tasks/seeds_helper.rb b/lib/tasks/seeds_helper.rb index 4b86617c0..5ee229192 100644 --- a/lib/tasks/seeds_helper.rb +++ b/lib/tasks/seeds_helper.rb @@ -32,7 +32,7 @@ def create_school(creator_id, school_id = nil) # Country-specific required fields school.reference = format('%06d', rand(100_000..999_999)) if country_code == 'GB' if country_code == 'US' - school.district_nces_id = format('%012d', rand(10**12)) + school.district_nces_id = format('%07d', rand(10**7)) school.district_name = Faker::Address.community end school.school_roll_number = "#{rand(10_000..99_999)}#{('A'..'Z').to_a.sample}" if country_code == 'IE' diff --git a/spec/lib/test_seeds_spec.rb b/spec/lib/test_seeds_spec.rb index b652cc58e..683ade159 100644 --- a/spec/lib/test_seeds_spec.rb +++ b/spec/lib/test_seeds_spec.rb @@ -36,8 +36,10 @@ describe ':seed_a_school_with_lessons_and_students' do let(:task) { Rake::Task['test_seeds:create'] } + let(:seed_country_code) { nil } before do + allow(Faker::Address).to receive(:country_code).and_return(seed_country_code) if seed_country_code task.reenable task.invoke end @@ -90,5 +92,20 @@ expect(Role.student.where(user_id: student_2, school_id:)).to exist expect(ClassStudent.where(student_id: student_2, school_class_id:)).to exist end + + context 'when the seeded school is in the US' do + let(:seed_country_code) { 'US' } + + it 'creates a valid school and owner lessons' do + school = School.find_by(creator_id:) + school_class = SchoolClass.joins(:teachers).find_by(school_id: school.id, teachers: { teacher_id: creator_id }) + + expect(school).to be_valid + expect(school.district_nces_id).to match(/\A\d{7}\z/) + expect(school.district_name).to be_present + expect(school_class).not_to be_nil + expect(Lesson.where(school_id: school.id, school_class_id: school_class.id).length).to eq(2) + end + end end end