Refactor email sending, tests

This commit is contained in:
Martin Lensment 2015-04-23 10:59:45 +03:00
parent d3c17ce4e3
commit 12e32af524
3 changed files with 24 additions and 7 deletions

View file

@ -20,9 +20,7 @@ class Registrar::InvoicesController < RegistrarController
@invoice.billing_email = params[:invoice][:billing_email] @invoice.billing_email = params[:invoice][:billing_email]
if @invoice.forward if @invoice.forward(render_to_string('pdf', layout: false))
pdf = @invoice.pdf(render_to_string('pdf', layout: false))
InvoiceMailer.invoice_email(@invoice, pdf).deliver_now
flash[:notice] = t('invoice_forwared') flash[:notice] = t('invoice_forwared')
redirect_to([:registrar, @invoice]) redirect_to([:registrar, @invoice])
else else

View file

@ -55,11 +55,11 @@ class Invoice < ActiveRecord::Base
"invoice-#{number}.pdf" "invoice-#{number}.pdf"
end end
def forward def forward(html)
return false unless valid? return false unless valid?
return false unless billing_email return false unless billing_email.present?
# TODO: forward invoice InvoiceMailer.invoice_email(self, pdf(html)).deliver_now
true true
end end

View file

@ -4,7 +4,7 @@ feature 'Invoices', type: :feature do
before :all do before :all do
create_settings create_settings
@user = Fabricate(:api_user) @user = Fabricate(:api_user)
Fabricate(:invoice) @invoice = Fabricate(:invoice, buyer: @user.registrar)
end end
context 'as unknown user' do context 'as unknown user' do
@ -32,5 +32,24 @@ feature 'Invoices', type: :feature do
visit '/registrar/invoices' visit '/registrar/invoices'
page.should have_text('Invoices') page.should have_text('Invoices')
end end
it 'should forward invoice' do
visit '/registrar/invoices'
click_link @invoice.to_s
click_link 'Forward invoice'
click_button 'Forward'
page.should have_text('Failed to forward invoice')
fill_in 'Billing email', with: 'test@test.ee'
click_button 'Forward'
page.should have_text('Invoice forwarded')
end
it 'should download invoice' do
visit '/registrar/invoices'
click_link @invoice.to_s
click_link 'Download'
response_headers['Content-Type'].should == 'application/pdf'
response_headers['Content-Disposition'].should == "attachment; filename=\"#{@invoice.pdf_name}\""
end
end end
end end