Project

General

Profile

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

class ReportImporterTest < ActiveSupport::TestCase

def setup
User.current = User.admin
end

def teardown
User.current = nil
end

test 'json_fixture_loader' do
assert_kind_of Hash, read_json_fixture('report-empty.json')
end

test 'it should import reports with no metrics' do
r = ReportImporter.import(read_json_fixture('report-empty.json'))
assert r
assert_equal({}, r.metrics)
end

test 'it should import reports where logs is nil' do
r = Report.import read_json_fixture('report-no-logs.json')
assert_empty r.logs
end

test 'when notification is set to true, if report has an error, a mail to admin should be sent' do
setup_for_email_reporting
Setting[:failed_report_email_notification] = true
assert_difference 'ActionMailer::Base.deliveries.size' do
ReportImporter.import read_json_fixture('report-errors.json')
end
end

test 'when notification is set to false, if the report has an error, no mail should be sent' do
setup_for_email_reporting
Setting[:failed_report_email_notification] = false
assert_no_difference 'ActionMailer::Base.deliveries.size' do
ReportImporter.import read_json_fixture('report-errors.json')
end
end

test 'if report has no error, no mail should be sent' do
setup_for_email_reporting
assert_no_difference 'ActionMailer::Base.deliveries.size' do
ReportImporter.import read_json_fixture('report-applied.json')
end
end

private

def setup_for_email_reporting
# Email recipient
Setting[:administrator] = 'admin@example.com'
Setting[:failed_report_email_notification] = true
end

end
(71-71/96)