mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Replace worker generator with job generator (#5055)
This commit is contained in:
parent
2ed5af0a68
commit
6b15877375
6 changed files with 76 additions and 76 deletions
57
lib/generators/sidekiq/job_generator.rb
Normal file
57
lib/generators/sidekiq/job_generator.rb
Normal file
|
@ -0,0 +1,57 @@
|
|||
require "rails/generators/named_base"
|
||||
|
||||
module Sidekiq
|
||||
module Generators # :nodoc:
|
||||
class JobGenerator < ::Rails::Generators::NamedBase # :nodoc:
|
||||
desc "This generator creates a Sidekiq Job in app/sidekiq and a corresponding test"
|
||||
|
||||
check_class_collision suffix: "Job"
|
||||
|
||||
def self.default_generator_root
|
||||
File.dirname(__FILE__)
|
||||
end
|
||||
|
||||
def create_job_file
|
||||
template "job.rb.erb", File.join("app/sidekiq", class_path, "#{file_name}_job.rb")
|
||||
end
|
||||
|
||||
def create_test_file
|
||||
return unless test_framework
|
||||
|
||||
if test_framework == :rspec
|
||||
create_job_spec
|
||||
else
|
||||
create_job_test
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_job_spec
|
||||
template_file = File.join(
|
||||
"spec/sidekiq",
|
||||
class_path,
|
||||
"#{file_name}_job_spec.rb"
|
||||
)
|
||||
template "job_spec.rb.erb", template_file
|
||||
end
|
||||
|
||||
def create_job_test
|
||||
template_file = File.join(
|
||||
"test/sidekiq",
|
||||
class_path,
|
||||
"#{file_name}_job_test.rb"
|
||||
)
|
||||
template "job_test.rb.erb", template_file
|
||||
end
|
||||
|
||||
def file_name
|
||||
@_file_name ||= super.sub(/_?job\z/i, "")
|
||||
end
|
||||
|
||||
def test_framework
|
||||
::Rails.application.config.generators.options[:rails][:test_framework]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,6 +1,6 @@
|
|||
<% module_namespacing do -%>
|
||||
class <%= class_name %>Worker
|
||||
include Sidekiq::Worker
|
||||
class <%= class_name %>Job
|
||||
include Sidekiq::Job
|
||||
|
||||
def perform(*args)
|
||||
# Do something
|
|
@ -1,6 +1,6 @@
|
|||
require 'rails_helper'
|
||||
<% module_namespacing do -%>
|
||||
RSpec.describe <%= class_name %>Worker, type: :worker do
|
||||
RSpec.describe <%= class_name %>Job, type: :job do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
||||
<% end -%>
|
|
@ -1,6 +1,6 @@
|
|||
require 'test_helper'
|
||||
<% module_namespacing do -%>
|
||||
class <%= class_name %>WorkerTest < Minitest::Test
|
||||
class <%= class_name %>JobTest < Minitest::Test
|
||||
def test_example
|
||||
skip "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
|
@ -1,57 +0,0 @@
|
|||
require "rails/generators/named_base"
|
||||
|
||||
module Sidekiq
|
||||
module Generators # :nodoc:
|
||||
class WorkerGenerator < ::Rails::Generators::NamedBase # :nodoc:
|
||||
desc "This generator creates a Sidekiq Worker in app/workers and a corresponding test"
|
||||
|
||||
check_class_collision suffix: "Worker"
|
||||
|
||||
def self.default_generator_root
|
||||
File.dirname(__FILE__)
|
||||
end
|
||||
|
||||
def create_worker_file
|
||||
template "worker.rb.erb", File.join("app/workers", class_path, "#{file_name}_worker.rb")
|
||||
end
|
||||
|
||||
def create_test_file
|
||||
return unless test_framework
|
||||
|
||||
if test_framework == :rspec
|
||||
create_worker_spec
|
||||
else
|
||||
create_worker_test
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_worker_spec
|
||||
template_file = File.join(
|
||||
"spec/workers",
|
||||
class_path,
|
||||
"#{file_name}_worker_spec.rb"
|
||||
)
|
||||
template "worker_spec.rb.erb", template_file
|
||||
end
|
||||
|
||||
def create_worker_test
|
||||
template_file = File.join(
|
||||
"test/workers",
|
||||
class_path,
|
||||
"#{file_name}_worker_test.rb"
|
||||
)
|
||||
template "worker_test.rb.erb", template_file
|
||||
end
|
||||
|
||||
def file_name
|
||||
@_file_name ||= super.sub(/_?worker\z/i, "")
|
||||
end
|
||||
|
||||
def test_framework
|
||||
::Rails.application.config.generators.options[:rails][:test_framework]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -2,26 +2,26 @@
|
|||
require_relative 'helper'
|
||||
require_relative 'dummy/config/environment'
|
||||
require 'rails/generators/test_case'
|
||||
require 'generators/sidekiq/worker_generator'
|
||||
require 'generators/sidekiq/job_generator'
|
||||
|
||||
class WorkerGeneratorTest < Rails::Generators::TestCase
|
||||
tests Sidekiq::Generators::WorkerGenerator
|
||||
class JobGeneratorTest < Rails::Generators::TestCase
|
||||
tests Sidekiq::Generators::JobGenerator
|
||||
destination File.expand_path('../../tmp', __FILE__)
|
||||
setup :prepare_destination
|
||||
|
||||
test 'all files are properly created' do
|
||||
run_generator ['foo']
|
||||
assert_file 'app/workers/foo_worker.rb'
|
||||
assert_file 'test/workers/foo_worker_test.rb'
|
||||
assert_file 'app/sidekiq/foo_job.rb'
|
||||
assert_file 'test/sidekiq/foo_job_test.rb'
|
||||
end
|
||||
|
||||
test 'gracefully handles extra worker suffix' do
|
||||
run_generator ['foo_worker']
|
||||
assert_no_file 'app/workers/foo_worker_worker.rb'
|
||||
assert_no_file 'test/workers/foo_worker_worker_test.rb'
|
||||
test 'gracefully handles extra job suffix' do
|
||||
run_generator ['foo_job']
|
||||
assert_no_file 'app/sidekiq/foo_job_job.rb'
|
||||
assert_no_file 'test/sidekiq/foo_job_job_test.rb'
|
||||
|
||||
assert_file 'app/workers/foo_worker.rb'
|
||||
assert_file 'test/workers/foo_worker_test.rb'
|
||||
assert_file 'app/sidekiq/foo_job.rb'
|
||||
assert_file 'test/sidekiq/foo_job_test.rb'
|
||||
end
|
||||
|
||||
test 'respects rails config test_framework option' do
|
||||
|
@ -31,8 +31,8 @@ class WorkerGeneratorTest < Rails::Generators::TestCase
|
|||
|
||||
run_generator ['foo']
|
||||
|
||||
assert_file 'app/workers/foo_worker.rb'
|
||||
assert_no_file 'test/workers/foo_worker_test.rb'
|
||||
assert_file 'app/sidekiq/foo_job.rb'
|
||||
assert_no_file 'test/sidekiq/foo_job_test.rb'
|
||||
ensure
|
||||
Rails.application.config.generators do |g|
|
||||
g.test_framework :test_case
|
||||
|
@ -46,8 +46,8 @@ class WorkerGeneratorTest < Rails::Generators::TestCase
|
|||
|
||||
run_generator ['foo']
|
||||
|
||||
assert_file 'app/workers/foo_worker.rb'
|
||||
assert_file 'spec/workers/foo_worker_spec.rb'
|
||||
assert_file 'app/sidekiq/foo_job.rb'
|
||||
assert_file 'spec/sidekiq/foo_job_spec.rb'
|
||||
ensure
|
||||
Rails.application.config.generators do |g|
|
||||
g.test_framework :test_case
|
Loading…
Add table
Add a link
Reference in a new issue