From 8f7edd168a8cb8faaea07e737177d9122d9994e7 Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 20 Mar 2026 11:36:48 +0000 Subject: [PATCH 1/7] Remove immediate onboarding feature flag --- .env.example | 2 - app/models/school.rb | 7 +- app/models/teacher_invitation.rb | 7 - app/services/school_verification_service.rb | 8 +- lib/concepts/school/operations/create.rb | 7 +- lib/concepts/school_student/create.rb | 8 +- lib/feature_flags.rb | 3 - spec/concepts/school/create_spec.rb | 29 +-- spec/concepts/school_student/create_spec.rb | 23 --- spec/concepts/school_teacher/invite_spec.rb | 22 --- spec/lib/feature_flags_spec.rb | 34 ---- spec/models/school_spec.rb | 12 -- spec/models/teacher_invitation_spec.rb | 18 -- .../school_verification_service_spec.rb | 173 ++---------------- 14 files changed, 25 insertions(+), 328 deletions(-) diff --git a/.env.example b/.env.example index 7d94cf136..ba56008f3 100644 --- a/.env.example +++ b/.env.example @@ -55,5 +55,3 @@ GOOGLE_CLIENT_SECRET=changeme # E2E tests can supply this to enable test utility endpoints RESEED_API_KEY=changeme -# Enable immediate onboarding for schools -ENABLE_IMMEDIATE_SCHOOL_ONBOARDING=true diff --git a/app/models/school.rb b/app/models/school.rb index 2f14500b0..d57530e1a 100644 --- a/app/models/school.rb +++ b/app/models/school.rb @@ -49,8 +49,7 @@ class School < ApplicationRecord before_save :format_uk_postal_code, if: :should_format_uk_postal_code? - # TODO: Remove the conditional once the feature flag is retired - after_create :generate_code!, if: -> { FeatureFlags.immediate_school_onboarding? } + after_create :generate_code! def self.find_for_user!(user) school = Role.find_by(user_id: user.id)&.school || find_by(creator_id: user.id) @@ -72,9 +71,7 @@ def rejected? end def verify! - # TODO: Remove this line once the feature flag is retired - generate_code! unless FeatureFlags.immediate_school_onboarding? - + generate_code! update!(verified_at: Time.zone.now) end diff --git a/app/models/teacher_invitation.rb b/app/models/teacher_invitation.rb index 68576b5b7..c93a67195 100644 --- a/app/models/teacher_invitation.rb +++ b/app/models/teacher_invitation.rb @@ -6,7 +6,6 @@ class TeacherInvitation < ApplicationRecord belongs_to :school validates :email_address, format: { with: EmailValidator.regexp, message: I18n.t('validations.invitation.email_address') } - validate :school_is_verified, unless: -> { FeatureFlags.immediate_school_onboarding? } after_create_commit :send_invitation_email encrypts :email_address @@ -16,12 +15,6 @@ class TeacherInvitation < ApplicationRecord private - def school_is_verified - return if school.verified? - - errors.add(:school, 'is not verified') - end - def send_invitation_email InvitationMailer.with(invitation: self).invite_teacher.deliver_later end diff --git a/app/services/school_verification_service.rb b/app/services/school_verification_service.rb index aaa3b7559..16fc312f6 100644 --- a/app/services/school_verification_service.rb +++ b/app/services/school_verification_service.rb @@ -12,10 +12,7 @@ def verify(token: nil) School.transaction do school.verify! - # TODO: Remove this line, once the feature flag is retired - success = FeatureFlags.immediate_school_onboarding? || SchoolOnboardingService.new(school).onboard(token: token) - - # TODO: Remove this line, once the feature flag is retired + success = SchoolOnboardingService.new(school).onboard(token: token) raise ActiveRecord::Rollback unless success end rescue StandardError => e @@ -23,8 +20,7 @@ def verify(token: nil) Rails.logger.error { "Failed to verify school #{@school.id}: #{e.message}" } false else - # TODO: Return 'true', once the feature flag is retired - success + true end delegate :reject, to: :school diff --git a/lib/concepts/school/operations/create.rb b/lib/concepts/school/operations/create.rb index ac6cdf96c..ff8e2521c 100644 --- a/lib/concepts/school/operations/create.rb +++ b/lib/concepts/school/operations/create.rb @@ -10,11 +10,8 @@ def call(school_params:, creator_id:, token:) School.transaction do response[:school].save! - # TODO: Remove this conditional once the feature flag is retired - if FeatureFlags.immediate_school_onboarding? - onboarded = SchoolOnboardingService.new(response[:school]).onboard(token:) - raise 'School onboarding failed' unless onboarded - end + onboarded = SchoolOnboardingService.new(response[:school]).onboard(token:) + raise 'School onboarding failed' unless onboarded end response diff --git a/lib/concepts/school_student/create.rb b/lib/concepts/school_student/create.rb index 1c0745d00..2954c4fb4 100644 --- a/lib/concepts/school_student/create.rb +++ b/lib/concepts/school_student/create.rb @@ -25,8 +25,7 @@ def create_student(school, school_student_params, token) validate( username:, password:, - name:, - school: (FeatureFlags.immediate_school_onboarding? ? nil : school) + name: ) response = ProfileApiClient.create_school_student(token:, username:, password:, name:, school_id:) @@ -35,13 +34,10 @@ def create_student(school, school_student_params, token) user_id end - def validate(username:, password:, name:, school: nil) + def validate(username:, password:, name:) raise ArgumentError, "username '#{username}' is invalid" if username.blank? raise ArgumentError, "password '#{password}' is invalid" if password.size < 8 raise ArgumentError, "name '#{name}' is invalid" if name.blank? - - return unless school - raise ArgumentError, 'school must be verified' unless school.verified? end end end diff --git a/lib/feature_flags.rb b/lib/feature_flags.rb index 86a76d637..dc5692ac1 100644 --- a/lib/feature_flags.rb +++ b/lib/feature_flags.rb @@ -1,7 +1,4 @@ # frozen_string_literal: true module FeatureFlags - def self.immediate_school_onboarding? - ENV['ENABLE_IMMEDIATE_SCHOOL_ONBOARDING'] == 'true' - end end diff --git a/spec/concepts/school/create_spec.rb b/spec/concepts/school/create_spec.rb index fd098540d..7b9927c3e 100644 --- a/spec/concepts/school/create_spec.rb +++ b/spec/concepts/school/create_spec.rb @@ -83,14 +83,7 @@ end end - describe 'when immediate onboarding is enabled' do - # TODO: Remove this block once the feature flag is retired - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - example.run - end - end - + describe 'immediate onboarding' do let(:onboarding_service) { instance_spy(SchoolOnboardingService, onboard: true) } before do @@ -102,24 +95,4 @@ expect(onboarding_service).to have_received(:onboard).with(token:) end end - - # TODO: Remove these examples once the feature flag is retired - describe 'when immediate onboarding is disabled' do - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: nil) do - example.run - end - end - - let(:onboarding_service) { instance_spy(SchoolOnboardingService) } - - before do - allow(SchoolOnboardingService).to receive(:new).and_return(onboarding_service) - end - - it 'does not call the onboarding service' do - described_class.call(school_params:, creator_id:, token:) - expect(onboarding_service).not_to have_received(:onboard) - end - end end diff --git a/spec/concepts/school_student/create_spec.rb b/spec/concepts/school_student/create_spec.rb index 1981f0a00..202b3815b 100644 --- a/spec/concepts/school_student/create_spec.rb +++ b/spec/concepts/school_student/create_spec.rb @@ -76,29 +76,6 @@ end end - context 'when the school is not verified' do - let(:school) { create(:school) } # not verified by default - - context 'when immediate_school_onboarding is FALSE' do - it 'returns the error message in the operation response' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'false') do - response = described_class.call(school:, school_student_params:, token:) - expect(response[:error]).to match(/school must be verified/) - end - end - end - - context 'when immediate_school_onboarding is TRUE' do - it 'does not error due to school verification' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - response = described_class.call(school:, school_student_params:, token:) - - expect(response[:error]).to be_nil - end - end - end - end - context 'when the student cannot be created in profile api because of a 422 response' do let(:error) { { 'message' => "something's up with the username" } } let(:exception) { ProfileApiClient::Student422Error.new(error) } diff --git a/spec/concepts/school_teacher/invite_spec.rb b/spec/concepts/school_teacher/invite_spec.rb index 231d8cbda..31f851c3f 100644 --- a/spec/concepts/school_teacher/invite_spec.rb +++ b/spec/concepts/school_teacher/invite_spec.rb @@ -49,26 +49,4 @@ expect(Sentry).to have_received(:capture_exception).with(kind_of(StandardError)) end end - - context 'when the school is not verified' do - let(:school) { create(:school) } - - context 'when immediate_school_onboarding is FALSE' do - it 'does return an error message in the operation response' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'false') do - response = described_class.call(school:, school_teacher_params:, token:) - expect(response[:error]).to match(/is not verified/) - end - end - end - - context 'when immediate_school_onboarding is TRUE' do - it 'does not return an error message in the operation response' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - response = described_class.call(school:, school_teacher_params:, token:) - expect(response[:error]).to be_blank - end - end - end - end end diff --git a/spec/lib/feature_flags_spec.rb b/spec/lib/feature_flags_spec.rb index b7fa7b085..ccfa9ee8d 100644 --- a/spec/lib/feature_flags_spec.rb +++ b/spec/lib/feature_flags_spec.rb @@ -1,37 +1,3 @@ # frozen_string_literal: true require 'rails_helper' - -RSpec.describe FeatureFlags do - describe '.immediate_school_onboarding?' do - it 'returns true when ENV is set to "true"' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - expect(described_class.immediate_school_onboarding?).to be(true) - end - end - - it 'returns false when ENV is not set' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: nil) do - expect(described_class.immediate_school_onboarding?).to be(false) - end - end - - it 'returns false when ENV is set to empty string' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: '') do - expect(described_class.immediate_school_onboarding?).to be(false) - end - end - - it 'returns false when ENV is set to "false"' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'false') do - expect(described_class.immediate_school_onboarding?).to be(false) - end - end - - it 'returns false when ENV is set to any other value' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: '1') do - expect(described_class.immediate_school_onboarding?).to be(false) - end - end - end -end diff --git a/spec/models/school_spec.rb b/spec/models/school_spec.rb index 06846060c..81bdbc06f 100644 --- a/spec/models/school_spec.rb +++ b/spec/models/school_spec.rb @@ -417,12 +417,6 @@ end describe 'code validations' do - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - example.run - end - end - it 'requires #code to be unique' do school # ensure existing school has a code another_school = build(:school) @@ -532,12 +526,6 @@ end describe 'code generation' do - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - example.run - end - end - it 'automatically generates a code after creation' do new_school = described_class.create!(build(:school).attributes.except('id', 'created_at', 'updated_at')) expect(new_school.reload.code).to be_present diff --git a/spec/models/teacher_invitation_spec.rb b/spec/models/teacher_invitation_spec.rb index d1706e08e..0fdb4af94 100644 --- a/spec/models/teacher_invitation_spec.rb +++ b/spec/models/teacher_invitation_spec.rb @@ -18,24 +18,6 @@ expect(invitation).not_to be_valid end - it 'is valid with an unverified school and immediate_school_onboarding is TRUE' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - school = build(:school, verified_at: nil) - invitation = build(:teacher_invitation, school:) - - expect(invitation).to be_valid - end - end - - it 'is invalid with an unverified school and immediate_school_onboarding is FALSE' do - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'false') do - school = build(:school, verified_at: nil) - invitation = build(:teacher_invitation, school:) - - expect(invitation).not_to be_valid - end - end - it 'sends an invitation email after create' do school = create(:verified_school) diff --git a/spec/services/school_verification_service_spec.rb b/spec/services/school_verification_service_spec.rb index 93ea0289b..3c881ce6a 100644 --- a/spec/services/school_verification_service_spec.rb +++ b/spec/services/school_verification_service_spec.rb @@ -14,173 +14,32 @@ end describe '#verify' do - describe 'when immediate onboarding is enabled' do - # TODO: Remove this block once the feature flag is retired - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: 'true') do - example.run - end + describe 'when school can be saved' do + it 'saves the school' do + service.verify + expect(school).to be_persisted end - describe 'when school can be saved' do - it 'saves the school' do - service.verify - expect(school).to be_persisted - end - - it 'sets verified_at to a date' do - service.verify - expect(school.reload.verified_at).to be_a(ActiveSupport::TimeWithZone) - end - - it 'returns true' do - expect(service.verify).to be(true) - end + it 'sets verified_at to a date' do + service.verify + expect(school.reload.verified_at).to be_a(ActiveSupport::TimeWithZone) end - describe 'when school cannot be saved' do - let(:website) { 'invalid' } - - it 'does not save the school' do - service.verify - expect(school).not_to be_persisted - end - - it 'returns false' do - expect(service.verify).to be(false) - end + it 'returns true' do + expect(service.verify).to be(true) end end - # TODO: Remove these examples once the feature flag is retired - describe 'when immediate onboarding is disabled' do - around do |example| - ClimateControl.modify(ENABLE_IMMEDIATE_SCHOOL_ONBOARDING: nil) do - example.run - end - end - - describe 'when school can be saved' do - it 'saves the school' do - service.verify(token:) - expect(school).to be_persisted - end - - it 'sets verified_at to a date' do - service.verify(token:) - expect(school.reload.verified_at).to be_a(ActiveSupport::TimeWithZone) - end - - it 'generates school code' do - service.verify(token:) - expect(school.reload.code).to be_present - end + describe 'when school cannot be saved' do + let(:website) { 'invalid' } - it 'grants the creator the owner role for the school' do - service.verify(token:) - expect(school_creator).to be_school_owner(school) - end - - it 'grants the creator the teacher role for the school' do - service.verify(token:) - expect(school_creator).to be_school_teacher(school) - end - - it 'creates the school in Profile API' do - service.verify(token:) - expect(ProfileApiClient).to have_received(:create_school).with(token:, id: school.id, code: school.code) - end - - it 'returns true' do - expect(service.verify(token:)).to be(true) - end + it 'does not save the school' do + service.verify + expect(school).not_to be_persisted end - describe 'when school cannot be saved' do - let(:website) { 'invalid' } - - it 'does not save the school' do - service.verify(token:) - expect(school).not_to be_persisted - end - - it 'does not create owner role' do - service.verify(token:) - expect(school_creator).not_to be_school_owner(school) - end - - it 'does not create teacher role' do - service.verify(token:) - expect(school_creator).not_to be_school_teacher(school) - end - - it 'does not create school in Profile API' do - expect(ProfileApiClient).not_to have_received(:create_school) - end - - it 'returns false' do - expect(service.verify(token:)).to be(false) - end - end - - describe 'when the school cannot be created in Profile API' do - before do - allow(ProfileApiClient).to receive(:create_school).and_raise(RuntimeError) - end - - it 'does not save the school' do - service.verify(token:) - expect { school.reload }.to raise_error(ActiveRecord::RecordNotFound) - end - - it 'does not create owner role' do - service.verify(token:) - expect(school_creator).not_to be_school_owner(school) - end - - it 'does not create teacher role' do - service.verify(token:) - expect(school_creator).not_to be_school_teacher(school) - end - - it 'does not create school in Profile API' do - expect(ProfileApiClient).not_to have_received(:create_school) - end - - it 'returns false' do - expect(service.verify(token:)).to be(false) - end - end - - describe 'when teacher and owner roles cannot be created because they already have a role in another school' do - let(:another_school) { create(:school) } - - before do - create(:role, user_id: school.creator_id, school: another_school) - end - - it 'does not save the school' do - service.verify(token:) - expect { school.reload }.to raise_error(ActiveRecord::RecordNotFound) - end - - it 'does not create owner role' do - service.verify(token:) - expect(school_creator).not_to be_school_owner(school) - end - - it 'does not create teacher role' do - service.verify(token:) - expect(school_creator).not_to be_school_teacher(school) - end - - it 'does not create school in Profile API' do - expect(ProfileApiClient).not_to have_received(:create_school) - end - - it 'returns false' do - expect(service.verify(token:)).to be(false) - end + it 'returns false' do + expect(service.verify).to be(false) end end end From f6ec5d00561f7338b00c804b21737acbeb8bcfdd Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 20 Mar 2026 11:47:05 +0000 Subject: [PATCH 2/7] Update verify func --- app/services/school_verification_service.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/school_verification_service.rb b/app/services/school_verification_service.rb index 16fc312f6..b64411f74 100644 --- a/app/services/school_verification_service.rb +++ b/app/services/school_verification_service.rb @@ -15,12 +15,12 @@ def verify(token: nil) success = SchoolOnboardingService.new(school).onboard(token: token) raise ActiveRecord::Rollback unless success end + + success rescue StandardError => e Sentry.capture_exception(e) Rails.logger.error { "Failed to verify school #{@school.id}: #{e.message}" } false - else - true end delegate :reject, to: :school From 41e69a7dfdabb6ffa5e7c37dbd9a7308d659e884 Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 20 Mar 2026 11:47:27 +0000 Subject: [PATCH 3/7] Remove unneeded required --- spec/lib/feature_flags_spec.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/spec/lib/feature_flags_spec.rb b/spec/lib/feature_flags_spec.rb index ccfa9ee8d..8e9b8f90f 100644 --- a/spec/lib/feature_flags_spec.rb +++ b/spec/lib/feature_flags_spec.rb @@ -1,3 +1 @@ # frozen_string_literal: true - -require 'rails_helper' From 21f3b392a41d21114921eadfb82815df8ec498bb Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 20 Mar 2026 13:18:32 +0000 Subject: [PATCH 4/7] Remove empty files --- lib/feature_flags.rb | 4 ---- spec/lib/feature_flags_spec.rb | 1 - 2 files changed, 5 deletions(-) delete mode 100644 lib/feature_flags.rb delete mode 100644 spec/lib/feature_flags_spec.rb diff --git a/lib/feature_flags.rb b/lib/feature_flags.rb deleted file mode 100644 index dc5692ac1..000000000 --- a/lib/feature_flags.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -module FeatureFlags -end diff --git a/spec/lib/feature_flags_spec.rb b/spec/lib/feature_flags_spec.rb deleted file mode 100644 index 8e9b8f90f..000000000 --- a/spec/lib/feature_flags_spec.rb +++ /dev/null @@ -1 +0,0 @@ -# frozen_string_literal: true From ecfbf291ca6d0ed43fa446caffaa68ec662e30b9 Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Fri, 20 Mar 2026 13:48:45 +0000 Subject: [PATCH 5/7] Change token to not be nil, update tests --- app/services/school_verification_service.rb | 2 +- spec/services/school_verification_service_spec.rb | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/services/school_verification_service.rb b/app/services/school_verification_service.rb index b64411f74..b469ad565 100644 --- a/app/services/school_verification_service.rb +++ b/app/services/school_verification_service.rb @@ -7,7 +7,7 @@ def initialize(school) @school = school end - def verify(token: nil) + def verify(token:) success = false School.transaction do school.verify! diff --git a/spec/services/school_verification_service_spec.rb b/spec/services/school_verification_service_spec.rb index 3c881ce6a..e571ff714 100644 --- a/spec/services/school_verification_service_spec.rb +++ b/spec/services/school_verification_service_spec.rb @@ -16,17 +16,17 @@ describe '#verify' do describe 'when school can be saved' do it 'saves the school' do - service.verify + service.verify(token:) expect(school).to be_persisted end it 'sets verified_at to a date' do - service.verify + service.verify(token:) expect(school.reload.verified_at).to be_a(ActiveSupport::TimeWithZone) end it 'returns true' do - expect(service.verify).to be(true) + expect(service.verify(token:)).to be(true) end end @@ -34,12 +34,12 @@ let(:website) { 'invalid' } it 'does not save the school' do - service.verify + service.verify(token:) expect(school).not_to be_persisted end it 'returns false' do - expect(service.verify).to be(false) + expect(service.verify(token:)).to be(false) end end end @@ -61,7 +61,7 @@ describe 'when the school was previously verified' do before do - service.verify + service.verify(token:) service.reject school.reload end From 868563fca7eadd86133d1bbc8d600b0dc08aa6a8 Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Mon, 23 Mar 2026 12:45:05 +0000 Subject: [PATCH 6/7] Update verify method, no longer pass token down --- app/controllers/admin/schools_controller.rb | 2 +- app/jobs/school_import_job.rb | 2 +- app/services/school_verification_service.rb | 14 ++++---------- spec/services/school_verification_service_spec.rb | 12 ++++++------ 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/app/controllers/admin/schools_controller.rb b/app/controllers/admin/schools_controller.rb index 83899b434..c58b4e80b 100644 --- a/app/controllers/admin/schools_controller.rb +++ b/app/controllers/admin/schools_controller.rb @@ -5,7 +5,7 @@ class SchoolsController < Admin::ApplicationController def verify service = SchoolVerificationService.new(requested_resource) - if service.verify(token: current_user.token) + if service.verify flash[:notice] = t('administrate.controller.verify_school.success') else flash[:error] = t('administrate.controller.verify_school.error') diff --git a/app/jobs/school_import_job.rb b/app/jobs/school_import_job.rb index 58f332a37..76fe9866e 100644 --- a/app/jobs/school_import_job.rb +++ b/app/jobs/school_import_job.rb @@ -79,7 +79,7 @@ def import_school(school_data) school = result[:school] # Auto-verify the imported school using the verification service - SchoolVerificationService.new(school).verify(token: @token) + SchoolVerificationService.new(school).verify @results[:successful] << { name: school.name, diff --git a/app/services/school_verification_service.rb b/app/services/school_verification_service.rb index b469ad565..867caf09a 100644 --- a/app/services/school_verification_service.rb +++ b/app/services/school_verification_service.rb @@ -7,20 +7,14 @@ def initialize(school) @school = school end - def verify(token:) - success = false - School.transaction do - school.verify! - - success = SchoolOnboardingService.new(school).onboard(token: token) - raise ActiveRecord::Rollback unless success - end - - success + def verify + school.verify! rescue StandardError => e Sentry.capture_exception(e) Rails.logger.error { "Failed to verify school #{@school.id}: #{e.message}" } false + else + true end delegate :reject, to: :school diff --git a/spec/services/school_verification_service_spec.rb b/spec/services/school_verification_service_spec.rb index e571ff714..3c881ce6a 100644 --- a/spec/services/school_verification_service_spec.rb +++ b/spec/services/school_verification_service_spec.rb @@ -16,17 +16,17 @@ describe '#verify' do describe 'when school can be saved' do it 'saves the school' do - service.verify(token:) + service.verify expect(school).to be_persisted end it 'sets verified_at to a date' do - service.verify(token:) + service.verify expect(school.reload.verified_at).to be_a(ActiveSupport::TimeWithZone) end it 'returns true' do - expect(service.verify(token:)).to be(true) + expect(service.verify).to be(true) end end @@ -34,12 +34,12 @@ let(:website) { 'invalid' } it 'does not save the school' do - service.verify(token:) + service.verify expect(school).not_to be_persisted end it 'returns false' do - expect(service.verify(token:)).to be(false) + expect(service.verify).to be(false) end end end @@ -61,7 +61,7 @@ describe 'when the school was previously verified' do before do - service.verify(token:) + service.verify service.reject school.reload end From 688c8d25950654b2f87dd795be3980e9e6570010 Mon Sep 17 00:00:00 2001 From: Jamie Benstead Date: Mon, 23 Mar 2026 13:27:23 +0000 Subject: [PATCH 7/7] Remove unused --- spec/services/school_verification_service_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/services/school_verification_service_spec.rb b/spec/services/school_verification_service_spec.rb index 3c881ce6a..110c0e520 100644 --- a/spec/services/school_verification_service_spec.rb +++ b/spec/services/school_verification_service_spec.rb @@ -7,7 +7,6 @@ let(:school) { build(:school, creator_id: school_creator.id, website:) } let(:school_creator) { create(:user) } let(:service) { described_class.new(school) } - let(:token) { 'token' } before do allow(ProfileApiClient).to receive(:create_school)