From bb8871e3d126ff6ccde852a5f015d08f909b0108 Mon Sep 17 00:00:00 2001 From: "Luiz Felipe G. Pereira" Date: Mon, 11 Nov 2019 15:37:39 -0300 Subject: [PATCH] Follow generator configuration to determine the resulting test file (#4371) Verifying that `RSpec` is defined assumes that the library is loaded on the same environment that the generator is running. It is often common to not have the rspec gem required on development, which is the default environment to run the generator from. Following the configured generator removes the assumption and works as expected without breaking expectations. --- lib/generators/sidekiq/worker_generator.rb | 2 +- test/test_worker_generator.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/generators/sidekiq/worker_generator.rb b/lib/generators/sidekiq/worker_generator.rb index 70f34eb4..0a769827 100644 --- a/lib/generators/sidekiq/worker_generator.rb +++ b/lib/generators/sidekiq/worker_generator.rb @@ -18,7 +18,7 @@ module Sidekiq def create_test_file return unless test_framework - if defined?(RSpec) + if test_framework == :rspec create_worker_spec else create_worker_test diff --git a/test/test_worker_generator.rb b/test/test_worker_generator.rb index bb626afd..dbb60ad1 100644 --- a/test/test_worker_generator.rb +++ b/test/test_worker_generator.rb @@ -38,4 +38,19 @@ class WorkerGeneratorTest < Rails::Generators::TestCase g.test_framework :test_case end end + + test 'respects rails config test_framework option for rspec' do + Rails.application.config.generators do |g| + g.test_framework :rspec + end + + run_generator ['foo'] + + assert_file 'app/workers/foo_worker.rb' + assert_file 'spec/workers/foo_worker_spec.rb' + ensure + Rails.application.config.generators do |g| + g.test_framework :test_case + end + end end