diff --git a/lib/cloudtasker/cron/job.rb b/lib/cloudtasker/cron/job.rb index 64911ce..918121b 100644 --- a/lib/cloudtasker/cron/job.rb +++ b/lib/cloudtasker/cron/job.rb @@ -168,7 +168,7 @@ def flag(state) # not lead to a new task getting scheduled). # def schedule! - return false unless cron_schedule && next_time + return false unless cron_schedule # Configure next cron worker next_worker = worker.new_instance.tap { |e| e.job_meta.set(key(:time_at), next_time.iso8601) } diff --git a/lib/cloudtasker/cron/schedule.rb b/lib/cloudtasker/cron/schedule.rb index e4be899..d08b1ee 100644 --- a/lib/cloudtasker/cron/schedule.rb +++ b/lib/cloudtasker/cron/schedule.rb @@ -225,7 +225,7 @@ def to_h # @return [Fugit::Cron] The cron schedule. # def cron_schedule - @cron_schedule ||= Fugit::Cron.parse(cron) + @cron_schedule ||= Fugit::Cron.do_parse(cron) end # @@ -245,7 +245,7 @@ def worker_instance # @return [EtOrbi::EoTime] The time the schedule job should run next. # def next_time(*args) - cron_schedule&.next_time(*args) + cron_schedule.next_time(*args) end # diff --git a/spec/cloudtasker/cron/job_spec.rb b/spec/cloudtasker/cron/job_spec.rb index 36ed775..c75ae5d 100644 --- a/spec/cloudtasker/cron/job_spec.rb +++ b/spec/cloudtasker/cron/job_spec.rb @@ -223,13 +223,6 @@ it { is_expected.to be_falsey } end - context 'with no next_time' do - before { allow(job).to receive(:next_time).and_return(nil) } - - before { expect(next_worker).not_to receive(:schedule) } - it { is_expected.to be_falsey } - end - context 'with cron_schedule' do before { expect(next_worker).to receive(:schedule).with(time_at: job.next_time).and_return(resp) } after { expect(next_worker.job_meta.get(job.key(:time_at))).to eq(job.next_time.iso8601) } diff --git a/spec/cloudtasker/cron/schedule_spec.rb b/spec/cloudtasker/cron/schedule_spec.rb index 7a342b9..1881689 100644 --- a/spec/cloudtasker/cron/schedule_spec.rb +++ b/spec/cloudtasker/cron/schedule_spec.rb @@ -299,9 +299,17 @@ end describe '#cron_schedule' do - subject { schedule.cron_schedule } + subject(:cron_schedule) { schedule.cron_schedule } - it { is_expected.to eq(Fugit::Cron.parse(cron)) } + context 'with valid cron definition' do + it { is_expected.to eq(Fugit::Cron.parse(cron)) } + end + + context 'with invalid cron definition' do + let(:cron) { 'random string' } + + it { expect { cron_schedule }.to raise_error(ArgumentError) } + end end describe '#next_time' do @@ -309,14 +317,7 @@ let(:now) { Time.now } - context 'with cron_schedule' do - it { is_expected.to eq(schedule.cron_schedule.next_time(now)) } - end - - context 'with nil cron_schedule' do - before { allow(schedule).to receive(:cron_schedule).and_return(nil) } - it { is_expected.to be_nil } - end + it { is_expected.to eq(schedule.cron_schedule.next_time(now)) } end describe '#assign_attributes' do