Sha256: e1a43cb6cad5eb8cdbdefc3bff9d0bbc017616e1d98d8a2b7109869bd827f7ce

Contents?: true

Size: 1020 Bytes

Versions: 11

Compression:

Stored size: 1020 Bytes

Contents

require 'spec_helper'

module Marty
  describe Jobs::Schedule do
    let!(:schedule) do
      Marty::BackgroundJob::Schedule.create!(
        job_class: 'TestJob',
        cron: '0 0 * * *',
        state: 'on'
      )
    end

    it 'schedules jobs' do
      expect(TestJob).to_not be_scheduled
      described_class.call
      expect(TestJob).to be_scheduled
    end

    it 'deletes previously scheduled jobs' do
      described_class.call
      expect(TestJob).to be_scheduled
      schedule.destroy!

      non_cron_job = Delayed::Job.create!(handler: 'Non cron job')

      dj = Delayed::Job.last
      dj.handler = dj.handler.gsub('TestJob', 'WrongTestJob')
      dj.save!

      described_class.call

      expect(TestJob).to_not be_scheduled
      any_old_scheduled_jobs = Delayed::Job.where('handler ILIKE ?', '%WrongTestJob%').any?
      expect(any_old_scheduled_jobs).to be false

      non_cron_job = Delayed::Job.find_by(handler: 'Non cron job')
      expect(non_cron_job).to be_present
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
marty-9.5.1 spec/services/jobs/schedule_spec.rb
marty-9.5.0 spec/services/jobs/schedule_spec.rb
marty-9.3.3 spec/services/jobs/schedule_spec.rb
marty-9.3.2 spec/services/jobs/schedule_spec.rb
marty-9.3.0 spec/services/jobs/schedule_spec.rb
marty-8.5.0 spec/services/jobs/schedule_spec.rb
marty-8.4.1 spec/services/jobs/schedule_spec.rb
marty-8.3.1 spec/services/jobs/schedule_spec.rb
marty-8.2.0 spec/services/jobs/schedule_spec.rb
marty-8.0.0 spec/services/jobs/schedule_spec.rb
marty-6.1.0 spec/services/jobs/schedule_spec.rb