[rspec-users] Problem spec'ing ActionMailer with attachment, body not getting rendered.

Rick DeNatale rick.denatale at gmail.com
Wed Mar 18 16:28:28 EDT 2009


I've got a simple ActionMailer::Base subclass:
class InfoMailer < ActionMailer::Base

    def info(user, zip_name)
    recipients user.email
    subject "Requested Info"
    attachment(:content_type => "application/zip",
                :filename => zip_name,
                :body => File.read(zip_name))
    body(:message => "Here is the Info that you Requested")
  end
end

I'm trying to spec this following
http://www.rubytutorials.net/2008/02/26/small-rspec-revelations-actionmailer/

describe AssetsInfoMailer do
  before(:each) do
    @user = mock_model(User,
        :email => @user_email = "somewhere at over.the.rainbow",
        :full_name => "The Wicked Witch of the West"
        )
    ActionMailer::Base.delivery_method = :test
    ActionMailer::Base.perform_deliveries = true
    ActionMailer::Base.deliveries = []
  end

  describe ".info" do
    before(:each) do
      @path = 'xyz.zip'
      @attachment_body = 'zip_file_contents'
      File.stub!(:read).and_return(@attachment_body)
      @the_mail = AssetsInfoMailer.deliver_info(@user, at path)
      @attachments = @the_mail.attachments
    end

    it "should have the right body" do
      @the_mail.body.should == ""
    end
  end

The expectation of an empty string is just to see what's actually getting
returned, the result is:

1)
'AssetsInfoMailer.info should have the right body' FAILED
expected: "",
     got: "Attachment: xyz.zip\n" (using ==)

It's looking like the mail template never got rendered, and body is giving
me the attachment since it's the only part.

I've got one other mailer method in that mailer which doesn't contain an
attachement, and it's body comes out fine.

I'm not sure what's going on here, and I'd appreciate any
help/insight/condolences...



-- 
Rick DeNatale

Blog: http://talklikeaduck.denhaven2.com/
Twitter: http://twitter.com/RickDeNatale
WWR: http://www.workingwithrails.com/person/9021-rick-denatale
LinkedIn: http://www.linkedin.com/in/rickdenatale
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20090318/0522d691/attachment.html>


More information about the rspec-users mailing list