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 = "somewh...@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,@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
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to