From 8edae44420d96070463b68e4e8cb6a03169b70c5 Mon Sep 17 00:00:00 2001 From: Liberatys Date: Tue, 20 Apr 2021 18:07:56 +0200 Subject: [PATCH 1/2] Implement check to prevent duplicate job naming --- lib/generators/rspec/job/job_generator.rb | 3 ++- .../rspec/job/templates/job_spec.rb.erb | 2 +- .../rspec/job/job_generator_spec.rb | 22 ++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/lib/generators/rspec/job/job_generator.rb b/lib/generators/rspec/job/job_generator.rb index aa20fbc7fe..1d167856b8 100644 --- a/lib/generators/rspec/job/job_generator.rb +++ b/lib/generators/rspec/job/job_generator.rb @@ -5,7 +5,8 @@ module Generators # @private class JobGenerator < Base def create_job_spec - template 'job_spec.rb.erb', File.join('spec/jobs', class_path, "#{file_name}_job_spec.rb") + file_suffix = file_name.end_with?('job') ? 'spec.rb' : 'job_spec.rb' + template 'job_spec.rb.erb', File.join('spec/jobs', class_path, [file_name, file_suffix].join('_')) end end end diff --git a/lib/generators/rspec/job/templates/job_spec.rb.erb b/lib/generators/rspec/job/templates/job_spec.rb.erb index 75e09018d6..f047b8c704 100644 --- a/lib/generators/rspec/job/templates/job_spec.rb.erb +++ b/lib/generators/rspec/job/templates/job_spec.rb.erb @@ -1,7 +1,7 @@ require 'rails_helper' <% module_namespacing do -%> -RSpec.describe <%= class_name %>Job, <%= type_metatag(:job) %> do + RSpec.describe <%= class_name %><%= "Job" unless class_name.end_with?("Job")%>, <%= type_metatag(:job) %> do pending "add some examples to (or delete) #{__FILE__}" end <% end -%> diff --git a/spec/generators/rspec/job/job_generator_spec.rb b/spec/generators/rspec/job/job_generator_spec.rb index 48eb7c3739..529fa91db3 100644 --- a/spec/generators/rspec/job/job_generator_spec.rb +++ b/spec/generators/rspec/job/job_generator_spec.rb @@ -6,13 +6,25 @@ setup_default_destination describe 'the generated files' do - before { run_generator %w[user] } + before { run_generator [file_name] } - subject { file('spec/jobs/user_job_spec.rb') } + context 'with file_name without job as suffix' do + let(:file_name) { 'user' } + subject { file('spec/jobs/user_job_spec.rb') } - it { is_expected.to exist } - it { is_expected.to contain(/require 'rails_helper'/) } - it { is_expected.to contain(/describe UserJob, #{type_metatag(:job)}/) } + it { is_expected.to exist } + it { is_expected.to contain(/require 'rails_helper'/) } + it { is_expected.to contain(/describe UserJob, #{type_metatag(:job)}/) } + end + context 'with file_name with job as suffix' do + let(:file_name) { 'user_job' } + + subject { file('spec/jobs/user_job_spec.rb') } + + it { is_expected.to exist } + it { is_expected.to contain(/require 'rails_helper'/) } + it { is_expected.to contain(/describe UserJob, #{type_metatag(:job)}/) } + end end end From a602ece918932cd71d6d891faf31e9fb7ac8f5a1 Mon Sep 17 00:00:00 2001 From: Liberatys Date: Tue, 20 Apr 2021 18:12:40 +0200 Subject: [PATCH 2/2] Remove indent --- lib/generators/rspec/job/templates/job_spec.rb.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generators/rspec/job/templates/job_spec.rb.erb b/lib/generators/rspec/job/templates/job_spec.rb.erb index f047b8c704..d265ce194d 100644 --- a/lib/generators/rspec/job/templates/job_spec.rb.erb +++ b/lib/generators/rspec/job/templates/job_spec.rb.erb @@ -1,7 +1,7 @@ require 'rails_helper' <% module_namespacing do -%> - RSpec.describe <%= class_name %><%= "Job" unless class_name.end_with?("Job")%>, <%= type_metatag(:job) %> do +RSpec.describe <%= class_name %><%= "Job" unless class_name.end_with?("Job")%>, <%= type_metatag(:job) %> do pending "add some examples to (or delete) #{__FILE__}" end <% end -%>