inst-jobs-statsd 2.2.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/inst-jobs-statsd.rb +22 -20
- data/lib/inst_jobs_statsd/default_tracking.rb +3 -1
- data/lib/inst_jobs_statsd/ext/job.rb +2 -0
- data/lib/inst_jobs_statsd/jobs_tracker.rb +2 -0
- data/lib/inst_jobs_statsd/naming.rb +19 -24
- data/lib/inst_jobs_statsd/stats/counters/complete.rb +2 -0
- data/lib/inst_jobs_statsd/stats/counters/create.rb +2 -0
- data/lib/inst_jobs_statsd/stats/counters/run.rb +2 -0
- data/lib/inst_jobs_statsd/stats/counters.rb +2 -0
- data/lib/inst_jobs_statsd/stats/periodic/failed.rb +2 -0
- data/lib/inst_jobs_statsd/stats/periodic/queue.rb +3 -1
- data/lib/inst_jobs_statsd/stats/periodic/run.rb +3 -1
- data/lib/inst_jobs_statsd/stats/periodic.rb +6 -2
- data/lib/inst_jobs_statsd/stats/timing/failed.rb +2 -0
- data/lib/inst_jobs_statsd/stats/timing/perform.rb +2 -0
- data/lib/inst_jobs_statsd/stats/timing/pop.rb +2 -0
- data/lib/inst_jobs_statsd/stats/timing.rb +7 -3
- data/lib/inst_jobs_statsd/version.rb +3 -1
- metadata +80 -85
- data/spec/factories/jobs.rb +0 -9
- data/spec/factories/workers.rb +0 -9
- data/spec/gemfiles/60.gemfile +0 -7
- data/spec/inst_jobs_statsd/ext/job_spec.rb +0 -17
- data/spec/inst_jobs_statsd/jobs_tracker_spec.rb +0 -30
- data/spec/inst_jobs_statsd/naming_spec.rb +0 -56
- data/spec/inst_jobs_statsd/stats/counters/complete_spec.rb +0 -27
- data/spec/inst_jobs_statsd/stats/counters/create_spec.rb +0 -27
- data/spec/inst_jobs_statsd/stats/counters/run_spec.rb +0 -27
- data/spec/inst_jobs_statsd/stats/periodic/failed_spec.rb +0 -31
- data/spec/inst_jobs_statsd/stats/periodic/queue_spec.rb +0 -95
- data/spec/inst_jobs_statsd/stats/periodic/run_spec.rb +0 -53
- data/spec/inst_jobs_statsd/stats/periodic_spec.rb +0 -63
- data/spec/inst_jobs_statsd/stats/timing/failed_spec.rb +0 -25
- data/spec/inst_jobs_statsd/stats/timing/perform_spec.rb +0 -35
- data/spec/inst_jobs_statsd/stats/timing/pop_spec.rb +0 -34
- data/spec/inst_jobs_statsd/stats/timing_spec.rb +0 -35
- data/spec/inst_statsd/default_tracking_spec.rb +0 -16
- data/spec/matchers.rb +0 -3
- data/spec/setup_test_db.rb +0 -45
- data/spec/spec_helper.rb +0 -61
| @@ -1,30 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::JobsTracker do
         | 
| 2 | 
            -
              describe '.track' do
         | 
| 3 | 
            -
                it 'calls the block' do
         | 
| 4 | 
            -
                  @done_in_block = false
         | 
| 5 | 
            -
                  expect do
         | 
| 6 | 
            -
                    InstJobsStatsd::JobsTracker.track do
         | 
| 7 | 
            -
                      @done_in_block = true
         | 
| 8 | 
            -
                    end
         | 
| 9 | 
            -
                  end.to(change { @done_in_block })
         | 
| 10 | 
            -
                end
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              describe '.initialize' do
         | 
| 14 | 
            -
                it 'enables everything' do
         | 
| 15 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Create).to receive(:enable)
         | 
| 16 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Run).to receive(:enable)
         | 
| 17 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Complete).to receive(:enable)
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Failed).to receive(:enable)
         | 
| 20 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Queue).to receive(:enable)
         | 
| 21 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Run).to receive(:enable)
         | 
| 22 | 
            -
             | 
| 23 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Failed).to receive(:enable)
         | 
| 24 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Perform).to receive(:enable)
         | 
| 25 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Pop).to receive(:enable)
         | 
| 26 | 
            -
             | 
| 27 | 
            -
                  InstJobsStatsd::JobsTracker.new
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
              end
         | 
| 30 | 
            -
            end
         | 
| @@ -1,56 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Naming do
         | 
| 2 | 
            -
              describe '.qualified_names' do
         | 
| 3 | 
            -
                subject { InstJobsStatsd::Naming.qualified_names(stat_name, job) }
         | 
| 4 | 
            -
                let(:stat_name) { :wut }
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                context 'when no job is given' do
         | 
| 7 | 
            -
                  let(:job) { nil }
         | 
| 8 | 
            -
                  it { should eq ['delayedjob.wut'] }
         | 
| 9 | 
            -
                end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                context 'when job is given' do
         | 
| 12 | 
            -
                  let(:job) { build :job }
         | 
| 13 | 
            -
                  it { should include 'delayedjob.wut.tag.Test-Job.perform' }
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                  context 'job tag is unusual' do
         | 
| 16 | 
            -
                    let(:job) { build :job, tag: 'periodic__Something_on_a_schedule' }
         | 
| 17 | 
            -
                    it { should include 'delayedjob.wut.tag.periodic__Something_on_a_schedule' }
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                  context 'job tag is dynamic' do
         | 
| 21 | 
            -
                    let(:job) { build :job, tag: '<Class:0x00000004f575b8>#perform' }
         | 
| 22 | 
            -
                    it { should eq ['delayedjob.wut'] }
         | 
| 23 | 
            -
                  end
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                context 'with region tags' do
         | 
| 27 | 
            -
                  before do
         | 
| 28 | 
            -
                    @jobs_namespace = ENV['INST_JOBS_STATSD_NAMESPACE']
         | 
| 29 | 
            -
                    ENV['INST_JOBS_STATSD_NAMESPACE'] = 'region_name'
         | 
| 30 | 
            -
                  end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                  after do
         | 
| 33 | 
            -
                    ENV['INST_JOBS_STATSD_NAMESPACE'] = @jobs_namespace
         | 
| 34 | 
            -
                  end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                  let(:job) { build :job, tag: 'a_tag_name' }
         | 
| 37 | 
            -
             | 
| 38 | 
            -
                  it { should include 'delayedjob.wut' }
         | 
| 39 | 
            -
                  it { should include 'delayedjob.wut.tag.a_tag_name' }
         | 
| 40 | 
            -
                  it { should include 'delayedjob.wut.region_name' }
         | 
| 41 | 
            -
                  it { should include 'delayedjob.wut.region_name.tag.a_tag_name' }
         | 
| 42 | 
            -
                end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                describe '.dd_job_tags' do
         | 
| 45 | 
            -
                  it 'works' do
         | 
| 46 | 
            -
                    job = double(tag: 'Account.run_reports_later', shard: double(id: 101), strand: 'special')
         | 
| 47 | 
            -
                    expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq(tag: 'Account.run_reports_later', jobshard: 101)
         | 
| 48 | 
            -
                  end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                  it 'properly munges job tags' do
         | 
| 51 | 
            -
                    job = double(tag: 'Quizzes::Quiz#do_something', strand: nil)
         | 
| 52 | 
            -
                    expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq(tag: 'Quizzes-Quiz.do_something')
         | 
| 53 | 
            -
                  end
         | 
| 54 | 
            -
                end
         | 
| 55 | 
            -
              end
         | 
| 56 | 
            -
            end
         | 
| @@ -1,27 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Counters::Complete do
         | 
| 2 | 
            -
              describe '.enable' do
         | 
| 3 | 
            -
                it 'enables all the things' do
         | 
| 4 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Complete).to receive(:enable_complete_count)
         | 
| 5 | 
            -
                  InstJobsStatsd::Stats::Counters::Complete.enable
         | 
| 6 | 
            -
                end
         | 
| 7 | 
            -
              end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              describe '.report_complete_count' do
         | 
| 10 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                before do
         | 
| 13 | 
            -
                  Delayed::Worker.lifecycle.reset!
         | 
| 14 | 
            -
                  InstJobsStatsd::Stats::Counters::Complete.enable
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  2.times { x.delay.perform }
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                it "increments the counter" do
         | 
| 20 | 
            -
                  expect(InstStatsd::Statsd).to receive(:count)
         | 
| 21 | 
            -
                    .twice.with(array_including(/\.complete$/), 1, 1, short_stat: anything, tags: {})
         | 
| 22 | 
            -
                  Delayed::Job.all.each do |job|
         | 
| 23 | 
            -
                    Delayed::Worker.lifecycle.run_callbacks(:perform, {}, job) {}
         | 
| 24 | 
            -
                  end
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
            end
         | 
| @@ -1,27 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Counters::Create do
         | 
| 2 | 
            -
              describe '.enable' do
         | 
| 3 | 
            -
                it 'enables all the things' do
         | 
| 4 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Create).to receive(:enable_create_count)
         | 
| 5 | 
            -
                  InstJobsStatsd::Stats::Counters::Create.enable
         | 
| 6 | 
            -
                end
         | 
| 7 | 
            -
              end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              describe '.report_create_count' do
         | 
| 10 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                before do
         | 
| 13 | 
            -
                  Delayed::Worker.lifecycle.reset!
         | 
| 14 | 
            -
                  InstJobsStatsd::Stats::Counters::Create.enable
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  2.times { x.delay.perform }
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                it "increments the counter" do
         | 
| 20 | 
            -
                  expect(InstStatsd::Statsd).to receive(:count)
         | 
| 21 | 
            -
                    .twice.with(array_including(/\.create$/), 1, 1, short_stat: anything, tags: {})
         | 
| 22 | 
            -
                  Delayed::Job.all.each do |job|
         | 
| 23 | 
            -
                    Delayed::Worker.lifecycle.run_callbacks(:create, job) {}
         | 
| 24 | 
            -
                  end
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
            end
         | 
| @@ -1,27 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Counters::Run do
         | 
| 2 | 
            -
              describe '.enable' do
         | 
| 3 | 
            -
                it 'enables all the things' do
         | 
| 4 | 
            -
                  expect(InstJobsStatsd::Stats::Counters::Run).to receive(:enable_run_count)
         | 
| 5 | 
            -
                  InstJobsStatsd::Stats::Counters::Run.enable
         | 
| 6 | 
            -
                end
         | 
| 7 | 
            -
              end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
              describe '.report_run_count' do
         | 
| 10 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                before do
         | 
| 13 | 
            -
                  Delayed::Worker.lifecycle.reset!
         | 
| 14 | 
            -
                  InstJobsStatsd::Stats::Counters::Run.enable
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                  2.times { x.delay.perform }
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                it do
         | 
| 20 | 
            -
                  expect(InstStatsd::Statsd).to receive(:count)
         | 
| 21 | 
            -
                    .twice.with(array_including(/\.run$/), 1, 1, short_stat: anything, tags: {})
         | 
| 22 | 
            -
                  Delayed::Job.all.each do |job|
         | 
| 23 | 
            -
                    Delayed::Worker.lifecycle.run_callbacks(:perform, {}, job) {}
         | 
| 24 | 
            -
                  end
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
            end
         | 
| @@ -1,31 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Periodic::Failed do
         | 
| 2 | 
            -
              before do
         | 
| 3 | 
            -
                InstJobsStatsd::Stats::Periodic.instance_variable_set(:@instance, nil)
         | 
| 4 | 
            -
              end
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              describe '.enable' do
         | 
| 7 | 
            -
                it 'enables all the things' do
         | 
| 8 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Failed).to receive(:enable_failed_depth)
         | 
| 9 | 
            -
                  InstJobsStatsd::Stats::Periodic::Failed.enable
         | 
| 10 | 
            -
                end
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              describe '.report_failed_depth' do
         | 
| 14 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 15 | 
            -
                let(:now) { Delayed::Job.db_time_now }
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                before do
         | 
| 18 | 
            -
                  InstJobsStatsd::Stats::Periodic.enable_callbacks
         | 
| 19 | 
            -
                  InstJobsStatsd::Stats::Periodic::Failed.enable_failed_depth
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                  x.delay.perform
         | 
| 22 | 
            -
                  Delayed::Job.first.fail!
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                it do
         | 
| 26 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 27 | 
            -
                    .with(array_including(/\.failed_depth$/), 1, 1, short_stat: anything, tags: {})
         | 
| 28 | 
            -
                  InstJobsStatsd::Stats::Periodic::Failed.report_failed_depth
         | 
| 29 | 
            -
                end
         | 
| 30 | 
            -
              end
         | 
| 31 | 
            -
            end
         | 
| @@ -1,95 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Periodic::Queue do
         | 
| 2 | 
            -
              before do
         | 
| 3 | 
            -
                InstJobsStatsd::Stats::Periodic.instance_variable_set(:@instance, nil)
         | 
| 4 | 
            -
              end
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              describe '.enable' do
         | 
| 7 | 
            -
                it 'enables all the things' do
         | 
| 8 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Queue).to receive(:enable_queue_depth)
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Queue).to receive(:enable_queue_age)
         | 
| 10 | 
            -
                  InstJobsStatsd::Stats::Periodic::Queue.enable
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              describe '.report_queue_depth' do
         | 
| 15 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 16 | 
            -
                let(:now) { Delayed::Job.db_time_now }
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                before do
         | 
| 19 | 
            -
                  InstJobsStatsd::Stats::Periodic::Queue.enable_queue_depth
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                  x.delay.perform
         | 
| 22 | 
            -
                  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
         | 
| 23 | 
            -
             | 
| 24 | 
            -
                  x.delay.perform
         | 
| 25 | 
            -
                  x.delay(run_at: now + 1.minute).perform
         | 
| 26 | 
            -
                  x.delay(run_at: now + 10.minutes).perform
         | 
| 27 | 
            -
                end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                it do
         | 
| 30 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 31 | 
            -
                    .with(array_including(/\.queue_depth$/), 1, 1, short_stat: anything, tags: {})
         | 
| 32 | 
            -
                  InstJobsStatsd::Stats::Periodic::Queue.report_queue_depth
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                it do
         | 
| 36 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 37 | 
            -
                    .with(array_including(/\.queue_depth$/), 2, 1, short_stat: anything, tags: {})
         | 
| 38 | 
            -
                  Timecop.freeze(2.minutes.from_now) do
         | 
| 39 | 
            -
                    InstJobsStatsd::Stats::Periodic::Queue.report_queue_depth
         | 
| 40 | 
            -
                  end
         | 
| 41 | 
            -
                end
         | 
| 42 | 
            -
             | 
| 43 | 
            -
                it do
         | 
| 44 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 45 | 
            -
                    .with(array_including(/\.queue_depth$/), 3, 1, short_stat: anything, tags: {})
         | 
| 46 | 
            -
                  Timecop.freeze(20.minutes.from_now) do
         | 
| 47 | 
            -
                    InstJobsStatsd::Stats::Periodic::Queue.report_queue_depth
         | 
| 48 | 
            -
                  end
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
              end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
              describe '.report_queue_age' do
         | 
| 53 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 54 | 
            -
                let(:now) { Delayed::Job.db_time_now }
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                before do
         | 
| 57 | 
            -
                  InstJobsStatsd::Stats::Periodic::Queue.enable_queue_age
         | 
| 58 | 
            -
             | 
| 59 | 
            -
                  x.delay.perform
         | 
| 60 | 
            -
                  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                  x.delay.perform
         | 
| 63 | 
            -
                  x.delay(run_at: now + 1.minute).perform
         | 
| 64 | 
            -
                  x.delay(run_at: now + 10.minutes).perform
         | 
| 65 | 
            -
                end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
                it do
         | 
| 68 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 69 | 
            -
                    .ordered.with(array_including(/\.queue_age_total$/), number_near(0), 1, short_stat: anything, tags: {})
         | 
| 70 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 71 | 
            -
                    .ordered.with(array_including(/\.queue_age_max$/), number_near(0), 1, short_stat: anything, tags: {})
         | 
| 72 | 
            -
                  InstJobsStatsd::Stats::Periodic::Queue.report_queue_age
         | 
| 73 | 
            -
                end
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                it do
         | 
| 76 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 77 | 
            -
                    .ordered.with(array_including(/\.queue_age_total$/), number_near(180), 1, short_stat: anything, tags: {})
         | 
| 78 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 79 | 
            -
                    .ordered.with(array_including(/\.queue_age_max$/), number_near(120), 1, short_stat: anything, tags: {})
         | 
| 80 | 
            -
                  Timecop.freeze(2.minutes.from_now) do
         | 
| 81 | 
            -
                    InstJobsStatsd::Stats::Periodic::Queue.report_queue_age
         | 
| 82 | 
            -
                  end
         | 
| 83 | 
            -
                end
         | 
| 84 | 
            -
             | 
| 85 | 
            -
                it do
         | 
| 86 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 87 | 
            -
                    .ordered.with(array_including(/\.queue_age_total$/), number_near(2940), 1, short_stat: anything, tags: {})
         | 
| 88 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 89 | 
            -
                    .ordered.with(array_including(/\.queue_age_max$/), number_near(1200), 1, short_stat: anything, tags: {})
         | 
| 90 | 
            -
                  Timecop.freeze(20.minutes.from_now) do
         | 
| 91 | 
            -
                    InstJobsStatsd::Stats::Periodic::Queue.report_queue_age
         | 
| 92 | 
            -
                  end
         | 
| 93 | 
            -
                end
         | 
| 94 | 
            -
              end
         | 
| 95 | 
            -
            end
         | 
| @@ -1,53 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Periodic::Run do
         | 
| 2 | 
            -
              before do
         | 
| 3 | 
            -
                InstJobsStatsd::Stats::Periodic.instance_variable_set(:@instance, nil)
         | 
| 4 | 
            -
              end
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              describe '.enable' do
         | 
| 7 | 
            -
                it 'enables all the things' do
         | 
| 8 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Run).to receive(:enable_run_depth)
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Run).to receive(:enable_run_age)
         | 
| 10 | 
            -
                  InstJobsStatsd::Stats::Periodic::Run.enable
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              describe '.report_run_depth' do
         | 
| 15 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 16 | 
            -
                let(:now) { Delayed::Job.db_time_now }
         | 
| 17 | 
            -
             | 
| 18 | 
            -
                before do
         | 
| 19 | 
            -
                  InstJobsStatsd::Stats::Periodic::Run.enable_run_depth
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                  x.delay.perform
         | 
| 22 | 
            -
                  x.delay.perform
         | 
| 23 | 
            -
                  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                it do
         | 
| 27 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 28 | 
            -
                    .with(array_including(/\.run_depth$/), 1, 1, short_stat: anything, tags: {})
         | 
| 29 | 
            -
                  InstJobsStatsd::Stats::Periodic::Run.report_run_depth
         | 
| 30 | 
            -
                end
         | 
| 31 | 
            -
              end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
              describe '.report_run_age' do
         | 
| 34 | 
            -
                let(:x) { Struct.new(:perform).new(true) }
         | 
| 35 | 
            -
                let(:now) { Delayed::Job.db_time_now }
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                before do
         | 
| 38 | 
            -
                  InstJobsStatsd::Stats::Periodic::Run.enable_run_age
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                  x.delay.perform
         | 
| 41 | 
            -
                  x.delay.perform
         | 
| 42 | 
            -
                  Delayed::Job.first.update(locked_at: now, locked_by: 'test')
         | 
| 43 | 
            -
                end
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                it do
         | 
| 46 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 47 | 
            -
                    .ordered.with(array_including(/\.run_age_total$/), number_near(0), 1, short_stat: anything, tags: {})
         | 
| 48 | 
            -
                  expect(InstStatsd::Statsd).to receive(:gauge)
         | 
| 49 | 
            -
                    .ordered.with(array_including(/\.run_age_max$/), number_near(0), 1, short_stat: anything, tags: {})
         | 
| 50 | 
            -
                  InstJobsStatsd::Stats::Periodic::Run.report_run_age
         | 
| 51 | 
            -
                end
         | 
| 52 | 
            -
              end
         | 
| 53 | 
            -
            end
         | 
| @@ -1,63 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Periodic do
         | 
| 2 | 
            -
              before(:each) do
         | 
| 3 | 
            -
                Delayed::Worker.lifecycle.reset!
         | 
| 4 | 
            -
                InstJobsStatsd::Stats::Periodic.instance_variable_set(:@instance, nil)
         | 
| 5 | 
            -
              end
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              describe '.enable_callbacks' do
         | 
| 8 | 
            -
                it 'only happens once' do
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Periodic::Callbacks).to receive(:new).once.and_call_original
         | 
| 10 | 
            -
                  2.times { InstJobsStatsd::Stats::Periodic.enable_callbacks }
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              describe '.add' do
         | 
| 15 | 
            -
                it 'does nothing if not enabled' do
         | 
| 16 | 
            -
                  expect_any_instance_of(InstJobsStatsd::Stats::Periodic::Callbacks).not_to receive(:add)
         | 
| 17 | 
            -
                  InstJobsStatsd::Stats::Periodic.add(-> {})
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                it 'does something if enabled' do
         | 
| 21 | 
            -
                  expect_any_instance_of(InstJobsStatsd::Stats::Periodic::Callbacks)
         | 
| 22 | 
            -
                    .to receive(:add).and_call_original
         | 
| 23 | 
            -
                  InstJobsStatsd::Stats::Periodic.enable_callbacks
         | 
| 24 | 
            -
                  InstJobsStatsd::Stats::Periodic.add(-> {})
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
              describe 'Callbacks' do
         | 
| 29 | 
            -
                before(:each) do
         | 
| 30 | 
            -
                  InstJobsStatsd::Stats::Periodic.instance_variable_set(:@instance, nil)
         | 
| 31 | 
            -
                end
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                it 'calls the procs at the interval' do
         | 
| 34 | 
            -
                  InstJobsStatsd::Stats::Periodic.enable_callbacks
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                  @count = 0
         | 
| 37 | 
            -
                  InstJobsStatsd::Stats::Periodic.add(-> { @count += 1 })
         | 
| 38 | 
            -
                  InstJobsStatsd::Stats::Periodic.add(-> { @count += 2 })
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                  Timecop.freeze(Delayed::Job.db_time_now + 60.seconds) do
         | 
| 41 | 
            -
                    Delayed::Worker.lifecycle.run_callbacks(:work_queue_pop, nil, nil) {}
         | 
| 42 | 
            -
                  end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                  expect(@count).to eq 3
         | 
| 45 | 
            -
                end
         | 
| 46 | 
            -
              end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
              describe 'Timer' do
         | 
| 49 | 
            -
                before(:each) { @did_block = false }
         | 
| 50 | 
            -
             | 
| 51 | 
            -
                it 'does not call the block too soon' do
         | 
| 52 | 
            -
                  t = InstJobsStatsd::Stats::Periodic::Timer.new(60)
         | 
| 53 | 
            -
                  expect { t.tick { @did_block = true } }.not_to(change { @did_block })
         | 
| 54 | 
            -
                end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                it 'calls the block after the interval elapses' do
         | 
| 57 | 
            -
                  t = InstJobsStatsd::Stats::Periodic::Timer.new(60)
         | 
| 58 | 
            -
                  Timecop.freeze(Delayed::Job.db_time_now + 60.seconds) do
         | 
| 59 | 
            -
                    expect { t.tick { @did_block = true } }.to(change { @did_block })
         | 
| 60 | 
            -
                  end
         | 
| 61 | 
            -
                end
         | 
| 62 | 
            -
              end
         | 
| 63 | 
            -
            end
         | 
| @@ -1,25 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Timing::Failed do
         | 
| 2 | 
            -
              let(:worker) { build :worker }
         | 
| 3 | 
            -
              let(:job) { build :job, run_at: 1.minute.ago }
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              before(:each) { Delayed::Worker.lifecycle.reset! }
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              describe '.enable' do
         | 
| 8 | 
            -
                it 'enables all the things' do
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Failed).to receive(:enable_failure_timing)
         | 
| 10 | 
            -
                  InstJobsStatsd::Stats::Timing::Failed.enable
         | 
| 11 | 
            -
                end
         | 
| 12 | 
            -
              end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
              describe '.enable_failure_timing' do
         | 
| 15 | 
            -
                it 'reports failure time' do
         | 
| 16 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 17 | 
            -
                    .once.with(array_including(/\.failed_after$/), any_args)
         | 
| 18 | 
            -
                  InstJobsStatsd::Stats::Timing::Failed.enable_failure_timing
         | 
| 19 | 
            -
                  Delayed::Worker.lifecycle.run_callbacks(
         | 
| 20 | 
            -
                    :error, worker, job, Exception.new('test')
         | 
| 21 | 
            -
                  ) { @in_block = true }
         | 
| 22 | 
            -
                  expect(@in_block).to be_truthy
         | 
| 23 | 
            -
                end
         | 
| 24 | 
            -
              end
         | 
| 25 | 
            -
            end
         | 
| @@ -1,35 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Timing::Perform do
         | 
| 2 | 
            -
              let(:worker) { build :worker }
         | 
| 3 | 
            -
              let(:job) { build :job, run_at: 1.minute.ago }
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              before(:each) { Delayed::Worker.lifecycle.reset! }
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              describe '.enable' do
         | 
| 8 | 
            -
                it 'enables all the things' do
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Perform).to receive(:enable_batching)
         | 
| 10 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Perform).to receive(:enable_perform_timing)
         | 
| 11 | 
            -
                  InstJobsStatsd::Stats::Timing::Perform.enable
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              describe '.enable_batching' do
         | 
| 16 | 
            -
                it 'does batching' do
         | 
| 17 | 
            -
                  expect(InstStatsd::Statsd).to receive(:batch).and_call_original
         | 
| 18 | 
            -
                  InstJobsStatsd::Stats::Timing::Perform.enable_batching
         | 
| 19 | 
            -
                  Delayed::Worker.lifecycle.run_callbacks(:perform, worker, job) { @in_block = true }
         | 
| 20 | 
            -
                  expect(@in_block).to be_truthy
         | 
| 21 | 
            -
                end
         | 
| 22 | 
            -
              end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              describe '.enable_perform_timing' do
         | 
| 25 | 
            -
                it 'reports queu and perform time' do
         | 
| 26 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 27 | 
            -
                    .once.ordered.with(array_including(/\.queue$/), any_args)
         | 
| 28 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 29 | 
            -
                    .once.ordered.with(array_including(/\.perform$/), any_args)
         | 
| 30 | 
            -
                  InstJobsStatsd::Stats::Timing::Perform.enable_perform_timing
         | 
| 31 | 
            -
                  Delayed::Worker.lifecycle.run_callbacks(:perform, worker, job) { @in_block = true }
         | 
| 32 | 
            -
                  expect(@in_block).to be_truthy
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
            end
         | 
| @@ -1,34 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Timing::Pop do
         | 
| 2 | 
            -
              let(:worker) { build :worker }
         | 
| 3 | 
            -
              let(:job) { build :job, run_at: 1.minute.ago }
         | 
| 4 | 
            -
             | 
| 5 | 
            -
              before(:each) { Delayed::Worker.lifecycle.reset! }
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              describe '.enable' do
         | 
| 8 | 
            -
                it 'enables all the things' do
         | 
| 9 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Pop).to receive(:enable_pop_timing)
         | 
| 10 | 
            -
                  expect(InstJobsStatsd::Stats::Timing::Pop).to receive(:enable_workqueue_pop_timing)
         | 
| 11 | 
            -
                  InstJobsStatsd::Stats::Timing::Pop.enable
         | 
| 12 | 
            -
                end
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              describe '.enable_pop_timing' do
         | 
| 16 | 
            -
                it 'reports pop time' do
         | 
| 17 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 18 | 
            -
                    .once.ordered.with(array_including(/\.pop$/), any_args)
         | 
| 19 | 
            -
                  InstJobsStatsd::Stats::Timing::Pop.enable_pop_timing
         | 
| 20 | 
            -
                  Delayed::Worker.lifecycle.run_callbacks(:pop, worker) { @in_block = true }
         | 
| 21 | 
            -
                  expect(@in_block).to be_truthy
         | 
| 22 | 
            -
                end
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
              describe '.enable_workqueue_pop_timing' do
         | 
| 26 | 
            -
                it 'reports pop time' do
         | 
| 27 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 28 | 
            -
                    .once.ordered.with(array_including(/\.workqueuepop$/), any_args)
         | 
| 29 | 
            -
                  InstJobsStatsd::Stats::Timing::Pop.enable_workqueue_pop_timing
         | 
| 30 | 
            -
                  Delayed::Worker.lifecycle.run_callbacks(:work_queue_pop, worker, {}) { @in_block = true }
         | 
| 31 | 
            -
                  expect(@in_block).to be_truthy
         | 
| 32 | 
            -
                end
         | 
| 33 | 
            -
              end
         | 
| 34 | 
            -
            end
         | 
| @@ -1,35 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstJobsStatsd::Stats::Timing do
         | 
| 2 | 
            -
              let(:job) { build :job, run_at: 1.minute.ago }
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              describe 'report_tinming' do
         | 
| 5 | 
            -
                context 'with a block' do
         | 
| 6 | 
            -
                  it 'reports the elapsed time' do
         | 
| 7 | 
            -
                    expect(InstStatsd::Statsd).to receive(:time)
         | 
| 8 | 
            -
                    InstJobsStatsd::Stats::Timing.report_timing('test', job: job) { sleep 0.001 }
         | 
| 9 | 
            -
                  end
         | 
| 10 | 
            -
                end
         | 
| 11 | 
            -
             | 
| 12 | 
            -
                context 'without a block' do
         | 
| 13 | 
            -
                  it 'reports the given time' do
         | 
| 14 | 
            -
                    expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 15 | 
            -
                    InstJobsStatsd::Stats::Timing.report_timing('test', job: job, timing: 123)
         | 
| 16 | 
            -
                  end
         | 
| 17 | 
            -
                end
         | 
| 18 | 
            -
              end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
              describe 'report_job_timing_queued' do
         | 
| 21 | 
            -
                it 'reports the stat' do
         | 
| 22 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 23 | 
            -
                    .with(array_including(/\.queue$/), any_args)
         | 
| 24 | 
            -
                  InstJobsStatsd::Stats::Timing.report_job_timing_queued(job)
         | 
| 25 | 
            -
                end
         | 
| 26 | 
            -
              end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
              describe 'report_job_timing_failed' do
         | 
| 29 | 
            -
                it 'reports the stat' do
         | 
| 30 | 
            -
                  expect(InstStatsd::Statsd).to receive(:timing)
         | 
| 31 | 
            -
                    .with(array_including(/\.failed_after$/), any_args)
         | 
| 32 | 
            -
                  InstJobsStatsd::Stats::Timing.report_job_timing_failed(job)
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
              end
         | 
| 35 | 
            -
            end
         | 
| @@ -1,16 +0,0 @@ | |
| 1 | 
            -
            RSpec.describe InstStatsd::DefaultTracking do
         | 
| 2 | 
            -
              it 'includes methods defined in the base gem' do
         | 
| 3 | 
            -
                expect(InstStatsd::DefaultTracking.respond_to?(:track_sql)).to be_truthy
         | 
| 4 | 
            -
              end
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              describe 'track_job_stats' do
         | 
| 7 | 
            -
                it 'defines :track_jobs' do
         | 
| 8 | 
            -
                  expect(InstStatsd::DefaultTracking.respond_to?(:track_jobs)).to be_truthy
         | 
| 9 | 
            -
                end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                it 'only does it once' do
         | 
| 12 | 
            -
                  expect(InstJobsStatsd::JobsTracker).to receive(:new).once.and_call_original
         | 
| 13 | 
            -
                  2.times { InstStatsd::DefaultTracking.track_jobs }
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
              end
         | 
| 16 | 
            -
            end
         | 
    
        data/spec/matchers.rb
    DELETED
    
    
    
        data/spec/setup_test_db.rb
    DELETED
    
    | @@ -1,45 +0,0 @@ | |
| 1 | 
            -
            # All the below is essentially copied from inst-jobs spec_helper.rb,
         | 
| 2 | 
            -
            # to create the test db, run migrations, etc
         | 
| 3 | 
            -
            ENV['TEST_ENV_NUMBER'] ||= '1'
         | 
| 4 | 
            -
            ENV['TEST_DB_HOST'] ||= 'localhost'
         | 
| 5 | 
            -
            ENV['TEST_DB_DATABASE'] ||= "inst-jobs-test-#{ENV['TEST_ENV_NUMBER']}"
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            connection_config = {
         | 
| 8 | 
            -
              adapter: :postgresql,
         | 
| 9 | 
            -
              host: ENV['TEST_DB_HOST'].presence,
         | 
| 10 | 
            -
              encoding: 'utf8',
         | 
| 11 | 
            -
              username: ENV['TEST_DB_USERNAME'],
         | 
| 12 | 
            -
              database: ENV['TEST_DB_DATABASE']
         | 
| 13 | 
            -
            }
         | 
| 14 | 
            -
             | 
| 15 | 
            -
            if ::Rails.version < '5'
         | 
| 16 | 
            -
              class ActiveRecord::Migration
         | 
| 17 | 
            -
                class << self
         | 
| 18 | 
            -
                  def [](_version); self; end
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
              end
         | 
| 21 | 
            -
            end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
            # create the test db if it does not exist, to help out wwtd
         | 
| 24 | 
            -
            ActiveRecord::Base.establish_connection(connection_config.merge(database: 'postgres'))
         | 
| 25 | 
            -
            begin
         | 
| 26 | 
            -
              ActiveRecord::Base.connection.create_database(connection_config[:database])
         | 
| 27 | 
            -
            rescue ActiveRecord::StatementInvalid
         | 
| 28 | 
            -
            end
         | 
| 29 | 
            -
            ActiveRecord::Base.establish_connection(connection_config)
         | 
| 30 | 
            -
            # TODO reset db and migrate again, to test migrations
         | 
| 31 | 
            -
             | 
| 32 | 
            -
            # Apply the migrations from the inst-jobs gem
         | 
| 33 | 
            -
            inst_jobs_spec = Gem::Specification.find_by_name('inst-jobs')
         | 
| 34 | 
            -
            if ::Rails.version >= '6'
         | 
| 35 | 
            -
              sm = ActiveRecord::Base.connection.schema_migration
         | 
| 36 | 
            -
              migrations = ActiveRecord::MigrationContext.new(inst_jobs_spec.gem_dir + '/db/migrate', sm).migrations
         | 
| 37 | 
            -
              ActiveRecord::Migrator.new(:up, migrations, sm).migrate
         | 
| 38 | 
            -
              migrations = ActiveRecord::MigrationContext.new(inst_jobs_spec.gem_dir + '/spec/migrate', sm).migrations
         | 
| 39 | 
            -
              ActiveRecord::Migrator.new(:up, migrations, sm).migrate
         | 
| 40 | 
            -
            else
         | 
| 41 | 
            -
              ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/db/migrate')
         | 
| 42 | 
            -
              ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/spec/migrate')
         | 
| 43 | 
            -
            end
         | 
| 44 | 
            -
            Delayed::Backend::ActiveRecord::Job.reset_column_information
         | 
| 45 | 
            -
            Delayed::Backend::ActiveRecord::Job::Failed.reset_column_information
         | 
    
        data/spec/spec_helper.rb
    DELETED
    
    | @@ -1,61 +0,0 @@ | |
| 1 | 
            -
            if /^2\.7/ =~ RUBY_VERSION && /60\./ =~ ENV['BUNDLE_GEMFILE'] # Limit coverage to one build
         | 
| 2 | 
            -
              require 'simplecov'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
              SimpleCov.start do
         | 
| 5 | 
            -
                add_filter 'lib/inst_jobs_statsd/version.rb'
         | 
| 6 | 
            -
                add_filter 'spec'
         | 
| 7 | 
            -
                track_files 'lib/**/*.rb'
         | 
| 8 | 
            -
              end
         | 
| 9 | 
            -
            end
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            require 'inst-jobs-statsd'
         | 
| 12 | 
            -
            require 'delayed/testing'
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            require 'byebug'
         | 
| 15 | 
            -
            require 'database_cleaner'
         | 
| 16 | 
            -
            require 'factory_girl'
         | 
| 17 | 
            -
            require 'pry'
         | 
| 18 | 
            -
            require 'timecop'
         | 
| 19 | 
            -
             | 
| 20 | 
            -
            # No reason to add default sleep time to specs:
         | 
| 21 | 
            -
            Delayed::Settings.sleep_delay         = 0
         | 
| 22 | 
            -
            Delayed::Settings.sleep_delay_stagger = 0
         | 
| 23 | 
            -
             | 
| 24 | 
            -
            RSpec.configure do |config|
         | 
| 25 | 
            -
              config.expect_with(:rspec) do |c|
         | 
| 26 | 
            -
                c.syntax = %i[should expect]
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
              config.include FactoryGirl::Syntax::Methods
         | 
| 30 | 
            -
              config.before(:suite) do
         | 
| 31 | 
            -
                FactoryGirl.find_definitions
         | 
| 32 | 
            -
              end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
              config.before(:suite) do
         | 
| 35 | 
            -
                DatabaseCleaner.strategy = :transaction
         | 
| 36 | 
            -
                DatabaseCleaner.clean_with(:truncation)
         | 
| 37 | 
            -
              end
         | 
| 38 | 
            -
             | 
| 39 | 
            -
              config.before(:each) do |example|
         | 
| 40 | 
            -
                DatabaseCleaner.strategy = (example.metadata[:sinatra] ? :truncation : :transaction)
         | 
| 41 | 
            -
                DatabaseCleaner.start
         | 
| 42 | 
            -
              end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
              config.after(:each) do
         | 
| 45 | 
            -
                DatabaseCleaner.clean
         | 
| 46 | 
            -
              end
         | 
| 47 | 
            -
             | 
| 48 | 
            -
              # Seed global randomization in this process using the `--seed` CLI option.
         | 
| 49 | 
            -
              # Setting this allows you to use `--seed` to deterministically reproduce
         | 
| 50 | 
            -
              # test failures related to randomization by passing the same `--seed` value
         | 
| 51 | 
            -
              # as the one that triggered the failure.
         | 
| 52 | 
            -
              config.order = :random
         | 
| 53 | 
            -
              Kernel.srand config.seed
         | 
| 54 | 
            -
            end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
            require_relative 'setup_test_db'
         | 
| 57 | 
            -
             | 
| 58 | 
            -
            Time.zone = 'UTC'
         | 
| 59 | 
            -
            Rails.logger = Logger.new(nil)
         | 
| 60 | 
            -
             | 
| 61 | 
            -
            require_relative 'matchers'
         |