Project

General

Profile

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

class ReportsTest < ActiveSupport::TestCase
setup do
Rake.application.rake_require 'tasks/reports'
Rake::Task.define_task(:environment)
Rake::Task['reports:daily'].reenable

as_admin do
ActionMailer::Base.deliveries = []
@owner = FactoryGirl.create(:user, :admin, :with_mail)
@owner.mail_notifications << MailNotification[:puppet_summary]
@owner.user_mail_notifications.all.each { |notification| notification.update_attribute(:interval, 'Daily') }
@host = FactoryGirl.create(:host, :owner => @owner)
end
end

test 'reports:daily sends mail' do
Rake.application.invoke_task 'reports:daily'
mail = ActionMailer::Base.deliveries.detect { |delivery| delivery.subject =~ /Puppet Summary/ }
assert mail
assert_match /Summary from/, mail.body.encoded
end

test 'reports:daily shows a recent report' do
as_admin do
report = read_json_fixture('report-errors.json')
report["host"] = @host.name

ReportImporter.import report
Report.update_all(:reported_at => 1.minute.ago)
end

Rake.application.invoke_task 'reports:daily'
mail = ActionMailer::Base.deliveries.detect { |delivery| delivery.subject =~ /Puppet Summary/ }
assert mail
assert_match /#{@host.name}/, mail.body.encoded
end
end
(1-1/2)