Project

General

Profile

Download (1.66 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'

class TemplateRenderJobTest < ActiveJob::TestCase
describe 'processing' do
def render_job(composer_params)
job = TemplateRenderJob.new(composer_params, user_id: users(:admin).id)
job.provider_job_id = 'UNIQUE-PROVIDER-ID'
job
end

it 'render report and stores it' do
composer = MiniTest::Mock.new
composer.expect('render', 'result')
composer.expect('send_mail?', false)
ReportComposer.expects('new').with('foo' => 'bar', 'gzip' => false).returns(composer)
StoredValue.expects('write').with('UNIQUE-PROVIDER-ID', 'result', has_key(:expire_at))
render_job({'foo' => 'bar'}).perform_now
assert composer.verify
end

it 'render report and delivers it to mail' do
mailer = mock('mailer')
mailer.expects('deliver_now')

ReportComposer.any_instance.expects('render').returns('result')
ReportComposer.any_instance.expects('report_filename').returns('report.gz')
ReportMailer.expects('report').with('this@email.cz', 'report.gz', 'result').returns(mailer)
render_job({ 'foo' => 'bar', 'send_mail' => true, 'mail_to' => 'this@email.cz', 'gzip' => true }).perform_now
end
end

describe '#humanized_name' do
let(:template) { FactoryBot.create(:report_template, :organizations => [ taxonomies(:organization1) ], :locations => [ taxonomies(:location1) ]) }
before do
@job = TemplateRenderJob.new({'template_id' => template.id, 'foo' => 'bar'}, user_id: users(:admin).id)
@job.provider_job_id = 'UNIQUE-PROVIDER-ID'
end

it 'returns template name' do
assert_equal @job.humanized_name, "Render report #{template.name}"
end
end
end
(2-2/2)