1
0
Fork 0
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:
Marcelo Lauxen 2021-11-17 13:35:18 -03:00 committed by GitHub
parent 2ed5af0a68
commit 6b15877375
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 76 additions and 76 deletions

View 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

View file

@ -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

View file

@ -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 -%>

View file

@ -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

View file

@ -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

View file

@ -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