Skip to content

Commit 5723df0

Browse files
committed
Few more job tests WRT delay and FIFO.
1 parent 59811de commit 5723df0

File tree

10 files changed

+64
-4
lines changed

10 files changed

+64
-4
lines changed

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ require "rake/testtask"
55
Rake::TestTask.new(:test) do |t|
66
t.libs << "test"
77
t.libs << "lib"
8-
t.test_files = FileList["test/cases/*_test.rb"]
8+
t.test_files = FileList["test/cases/**/*_test.rb"]
99
t.verbose = false
1010
t.warning = false
1111
end

TODO.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ end
4444
- FIFO: 256 KB??
4545
* Setting `maxReceiveCount` hard codes your retries to -1 of that value at the queue level.
4646

47+
Q: How do I handle job priorities?
48+
A: Use different queues.
49+
50+
4751
## Our Siqekiq Interfaces
4852

4953
```ruby
@@ -61,6 +65,14 @@ DO I MIRROR or MIGRATE
6165

6266
## Migrating from Sidekiq
6367

68+
#### Change Worker
69+
70+
```ruby
71+
class ApplicationJob < ActiveJob::Base
72+
include Sidekiq::Worker
73+
include Lambdakiq::Worker
74+
end
75+
```
6476

6577
#### Single Job
6678

lib/lambdakiq.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
require 'lambdakiq/record'
1515
require 'lambdakiq/backoff'
1616
require 'lambdakiq/metrics'
17+
require 'lambdakiq/worker'
1718
require 'rails/railtie'
1819
require 'lambdakiq/railtie'
1920

lib/lambdakiq/worker.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module Lambdakiq
2+
module Worker
3+
4+
end
5+
end
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
require 'test_helper'
2+
3+
class BasicJobDelayTest < LambdakiqSpec
4+
before do
5+
TestHelper::Jobs::BasicJob.set(wait: 5.minutes).perform_later('somework')
6+
expect(sent_message).must_be :present?
7+
end
8+
9+
it 'message attributes include `delay_seconds` since no wait was set' do
10+
delay_seconds = sent_message_attributes['delay_seconds']
11+
expect(delay_seconds).must_be :present?
12+
expect(delay_seconds[:data_type]).must_equal 'String'
13+
expect(delay_seconds[:string_value]).must_equal '300'
14+
end
15+
end
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
require 'test_helper'
2+
3+
class BasicJobNofifoDelayTest < LambdakiqSpec
4+
before do
5+
TestHelper::Jobs::BasicNofifoJob.set(wait: 5.minutes).perform_later('somework')
6+
expect(sent_message).must_be :present?
7+
end
8+
9+
it 'uses default `delay_seconds` since non-FIFO queues support this natively' do
10+
expect(sent_message_params[:delay_seconds]).must_equal 300
11+
end
12+
13+
it 'message attributes exclude `delay_seconds` since non-FIFO queues support this natively' do
14+
delay_seconds = sent_message_attributes['delay_seconds']
15+
expect(delay_seconds).must_be_nil
16+
end
17+
end

test/cases/basic_nofifo_job_test.rb renamed to test/cases/jobs/basic_job_nofifo_job_test.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
require 'test_helper'
22

3-
class BasicNofifoJobTest < LambdakiqSpec
3+
class BasicJobNofifoTest < LambdakiqSpec
44
before do
55
TestHelper::Jobs::BasicNofifoJob.perform_later('somework')
6+
expect(sent_message).must_be :present?
67
end
78

89
it 'message body has no fifo queue nave vs fifo super class ' do

test/cases/basic_job_test.rb renamed to test/cases/jobs/basic_job_test.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ class BasicJobTest < LambdakiqSpec
1919
expect(lambdakiq[:string_value]).must_equal '1'
2020
end
2121

22+
it 'message attributes do not include `delay_seconds` since no wait was set' do
23+
expect(sent_message_attributes.key?('delay_seconds')).must_equal false
24+
end
25+
2226
it 'message group and deduplication id for default fifo queue are sent' do
2327
expect(sent_message_params[:message_group_id]).must_equal 'LambdakiqMessage'
2428
expect(sent_message_params[:message_deduplication_id]).must_be :present?

test/cases/queue_test.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
require 'test_helper'
22

33
class QueueTest < LambdakiqSpec
4+
let(:queue) { Lambdakiq.client.queues[queue_name] }
5+
6+
it '#fifo?' do
7+
expect(queue.fifo?).must_equal true
8+
end
9+
410
it '#max_receive_count' do
5-
queue = Lambdakiq.client.queues[queue_name]
611
expect(queue.max_receive_count).must_equal 8
712
end
813
end

test/test_helper/jobs/basic_nofifo_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module TestHelper
22
module Jobs
33
class BasicNofifoJob < ApplicationJob
4-
queue_as 'lambdakiq-JobsQueue-TESTING123'
4+
queue_as ENV['TEST_QUEUE_NAME'].sub('.fifo','')
55
def perform(object)
66
object
77
end

0 commit comments

Comments
 (0)