Sha256: 255fa420602466d27865c45c71fb15309e42510652b49a2341960df4fed7d9b3

Contents?: true

Size: 1.05 KB

Versions: 5

Compression:

Stored size: 1.05 KB

Contents

require "spec_helper"

describe Qe::ActionMailer do
  let(:worker) {
    Class.new do
      include Qe::Worker
      include Qe::ActionMailer
    end
  }

  let(:mailer) { double(:mailer) }

  subject(:job) {
    worker.new(
      :name => "John Doe",
      :email => "john@example.org",
      :mail => :hello
    )
  }

  describe "#mail" do
    it "raises error when have no :mail" do
      job.options.delete(:mail)

      expect {
        job.mail
      }.to raise_error(Qe::ActionMailer::MissingMailNameError)
    end

    it "returns object for :mail option" do
      job.stub :mailer => mailer

      mailer
        .should_receive(:hello)
        .with(job.options)

      job.mail
    end
  end

  describe "#mailer" do
    it "raises error when method implemented" do
      expect {
        job.mailer
      }.to raise_error(Qe::ActionMailer::AbstractMethodError)
    end
  end

  describe "#perform" do
    it "delivers e-mail" do
      mail = double(:mail)
      job.stub :mail => mail

      mail.should_receive(:deliver)

      job.perform
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
qe-0.3.4 spec/qe/action_mailer_spec.rb
qe-0.3.3 spec/qe/action_mailer_spec.rb
qe-0.3.2 spec/qe/action_mailer_spec.rb
qe-0.3.1 spec/qe/action_mailer_spec.rb
qe-0.3.0 spec/qe/action_mailer_spec.rb