From 02ea8378d19a4ccdaeeafd29b1cc4fb424d17235 Mon Sep 17 00:00:00 2001 From: Andrew Duthie Date: Fri, 18 Nov 2022 10:49:59 -0500 Subject: [PATCH 1/2] Fix flakey IPP sample data rake spec changelog: Internal, Automated Testing, Improve reliability of successful automated tests --- lib/tasks/dev.rake | 8 +++++++- spec/lib/tasks/dev_rake_spec.rb | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake index 69b3f6344eb..b133c291b7c 100644 --- a/lib/tasks/dev.rake +++ b/lib/tasks/dev.rake @@ -1,3 +1,9 @@ +class SampleDataCreator + def self.delay(seconds) + sleep(seconds) + end +end + namespace :dev do desc 'Sample data for local development environment' task prime: :environment do @@ -146,7 +152,7 @@ namespace :dev do else success = true end - sleep(usps_request_delay_ms / 1000.0) if usps_request_delay_ms + SampleDataCreator.delay(usps_request_delay_ms / 1000.0) if usps_request_delay_ms end else enrollment = InPersonEnrollment.create!( diff --git a/spec/lib/tasks/dev_rake_spec.rb b/spec/lib/tasks/dev_rake_spec.rb index 1c0adbde17d..e95f86811b7 100644 --- a/spec/lib/tasks/dev_rake_spec.rb +++ b/spec/lib/tasks/dev_rake_spec.rb @@ -330,7 +330,7 @@ stub_request_token stub_request_enroll - expect_any_instance_of(Object).to receive(:sleep).exactly(10).times.with(0.2) + expect(SampleDataCreator).to receive(:delay).exactly(10).times.with(0.2) Rake::Task['dev:random_in_person_users'].invoke end @@ -436,7 +436,7 @@ ).times(1) expect(UspsInPersonProofing::EnrollmentHelper). to receive(:schedule_in_person_enrollment).and_call_original.exactly(3).times - expect_any_instance_of(Object).to receive(:sleep).exactly(3).times.with(0.2) + expect(SampleDataCreator).to receive(:delay).exactly(3).times.with(0.2) Rake::Task['dev:random_in_person_users'].invoke end From 1de8106f0acb099198592a998e87791d7b1bb9d7 Mon Sep 17 00:00:00 2001 From: Andrew Duthie Date: Fri, 18 Nov 2022 13:21:42 -0500 Subject: [PATCH 2/2] Call / stub Kernel.sleep See: https://github.com/18F/identity-idp/pull/7363#discussion_r1026664121 Co-authored-by: Zach Margolis --- lib/tasks/dev.rake | 8 +------- spec/lib/tasks/dev_rake_spec.rb | 4 ++-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake index b133c291b7c..4cbb047a23b 100644 --- a/lib/tasks/dev.rake +++ b/lib/tasks/dev.rake @@ -1,9 +1,3 @@ -class SampleDataCreator - def self.delay(seconds) - sleep(seconds) - end -end - namespace :dev do desc 'Sample data for local development environment' task prime: :environment do @@ -152,7 +146,7 @@ namespace :dev do else success = true end - SampleDataCreator.delay(usps_request_delay_ms / 1000.0) if usps_request_delay_ms + Kernel.sleep(usps_request_delay_ms / 1000.0) if usps_request_delay_ms end else enrollment = InPersonEnrollment.create!( diff --git a/spec/lib/tasks/dev_rake_spec.rb b/spec/lib/tasks/dev_rake_spec.rb index e95f86811b7..3fba0d4927b 100644 --- a/spec/lib/tasks/dev_rake_spec.rb +++ b/spec/lib/tasks/dev_rake_spec.rb @@ -330,7 +330,7 @@ stub_request_token stub_request_enroll - expect(SampleDataCreator).to receive(:delay).exactly(10).times.with(0.2) + expect(Kernel).to receive(:sleep).exactly(10).times.with(0.2) Rake::Task['dev:random_in_person_users'].invoke end @@ -436,7 +436,7 @@ ).times(1) expect(UspsInPersonProofing::EnrollmentHelper). to receive(:schedule_in_person_enrollment).and_call_original.exactly(3).times - expect(SampleDataCreator).to receive(:delay).exactly(3).times.with(0.2) + expect(Kernel).to receive(:sleep).exactly(3).times.with(0.2) Rake::Task['dev:random_in_person_users'].invoke end