Additional email_job_spec cleanup

This commit is contained in:
Eric Schultz 2019-11-08 16:19:34 -06:00
parent bef544bf63
commit bfa3e2db3b
5 changed files with 0 additions and 65 deletions

View file

@ -1,8 +0,0 @@
Description:
Create a new EmailJob subclass in lib/job_types
Example:
rails generate email_job JobName arg1 arg2
This will create:
A file called lib/job_types/job_name_job.rb with a module named JobNameJob

View file

@ -1,11 +0,0 @@
# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class EmailJobGenerator < Rails::Generators::NamedBase
argument :attribs, type: :array
source_root File.expand_path('templates', __dir__)
def copy_file_to_lib
template 'email_job_template.erb', "lib/job_types/#{name.underscore}.rb"
template 'email_job_spec_template.erb', "spec/lib/job_types/#{name.underscore}_spec.rb"
end
end

View file

@ -1,13 +0,0 @@
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
require 'rails_helper.rb'
describe JobTypes::<%= name %> do
describe '.perform' do
it 'calls the correct active mailer' do
expect(fail).to receive(:fail).with(fail).and_wrap_original{|m, *args| mailer = double('object'); expect(mailer).to receive(:deliver).and_return(nil); mailer}
job = JobTypes::<%= name %>.new(fail)
job.perform
end
end
end

View file

@ -1,14 +0,0 @@
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module JobTypes
class <%= name %> < EmailJob
attr_reader <%= attribs.map{|i| ":#{i}"}.join(", ") %>
def initialize(<%= attribs.join(", ") %>)<% attribs.each {|i| %>
@<%= i %> = <%= i %><% }%>
end
def perform
fail
end
end
end

View file

@ -1,19 +0,0 @@
# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
require 'rails_helper.rb'
describe JobTypes::EmailJob do
describe '.reschedule_at' do
it '50 attempts takes about 24 hours' do
job = JobTypes::EmailJob.new
initial_time = Time.utc(2020, 5, 5)
end_time = initial_time + 1.day
current_time = initial_time
50.times.map { |i| i + 1 }.each do |i|
current_time = job.reschedule_at(current_time, i)
end
expect(current_time).to be_between(end_time - 5.minutes, end_time + 5.minutes)
end
end
end