mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Easier way to test enqueuing specific ActionMailer and ActiveRecord delayed jobs
This commit is contained in:
parent
c0cabc6dec
commit
2c5ab340c7
3 changed files with 32 additions and 0 deletions
|
@ -5,6 +5,11 @@
|
|||
HEAD
|
||||
---------
|
||||
|
||||
- Easier way to test enqueuing specific ActionMailer and ActiveRecord delayed jobs. Instead of manually
|
||||
parsing embedded class, you can now test by fetching jobs for specific classes. [fatkodima, #4292]
|
||||
```ruby
|
||||
assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(FooMailer).size
|
||||
```
|
||||
- **Dark Mode support in Web UI** (further design polish welcome!) [#4227, mperham,
|
||||
fatkodima, silent-e]
|
||||
- **Job-specific log levels**, allowing you to turn on debugging for
|
||||
|
|
|
@ -323,6 +323,18 @@ module Sidekiq
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
module TestingExtensions
|
||||
def jobs_for(klass)
|
||||
jobs.select do |job|
|
||||
marshalled = job["args"][0]
|
||||
marshalled.index(klass.to_s) && YAML.load(marshalled)[0] == klass
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Sidekiq::Extensions::DelayedMailer.extend(TestingExtensions)
|
||||
Sidekiq::Extensions::DelayedModel.extend(TestingExtensions)
|
||||
end
|
||||
|
||||
if defined?(::Rails) && Rails.respond_to?(:env) && !Rails.env.test?
|
||||
|
|
|
@ -78,6 +78,21 @@ describe 'Sidekiq::Testing.fake' do
|
|||
Something.delay.foo(Date.today)
|
||||
assert_equal 1, Sidekiq::Extensions::DelayedClass.jobs.size
|
||||
end
|
||||
|
||||
class BarMailer < ActionMailer::Base
|
||||
def foo(str)
|
||||
str
|
||||
end
|
||||
end
|
||||
|
||||
it 'returns enqueued jobs for specific classes' do
|
||||
assert_equal 0, Sidekiq::Extensions::DelayedClass.jobs.size
|
||||
FooMailer.delay.bar('hello!')
|
||||
BarMailer.delay.foo('hello!')
|
||||
assert_equal 2, Sidekiq::Extensions::DelayedMailer.jobs.size
|
||||
assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(FooMailer).size
|
||||
assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(BarMailer).size
|
||||
end
|
||||
end
|
||||
|
||||
it 'stubs the enqueue call' do
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue