Sha256: 0e3513e34c59300007ccb8422bcbf937230aaa7b720a4daf74c46909d33a4dd3

Contents?: true

Size: 1.81 KB

Versions: 5

Compression:

Stored size: 1.81 KB

Contents

require 'spec_helper'

module AlchemyCrm
  describe Delivery do

    before(:all) do
      @emails = ["jim@family.com", "jon@doe.com", "jane@family.com", "john@gmail.com", "jaja@binks.com", "lulu@fame.org"]
      @mailing = Mailing.create!(
        :name => 'Foo Mailing',
        :additional_email_addresses => @emails.join(', '),
        :newsletter => Newsletter.create!(:name => 'Newsletter', :layout => "#{Mailing::MAILING_PAGE_LAYOUT_PREFIX}standard")
      )
      @delivery = Delivery.create!(:mailing => @mailing)
      @recipients = @delivery.recipients
    end

    describe '#send_chunks' do

      it "should send mailings to recipients in chunks." do
        AlchemyCrm::Delivery.stub!(:settings).and_return(2)
        @delivery.should_receive(:send_mail_chunk).once.with(@recipients[0..1], {})
        @delivery.should_receive(:send_mail_chunk).once.with(@recipients[2..3], {})
        @delivery.should_receive(:send_mail_chunk).once.with(@recipients[4..5], {})
        @delivery.send_chunks
      end

    end

    describe '#after_create' do

      it "should create recipients from mailings contacts" do
        @recipients.first.should be_an_instance_of(Recipient)
        @recipients.count.should == @mailing.contacts.count
      end

      context "mailing having former deliveries" do

        before(:each) do
          @more_emails = %w(tim@struppi.de mickey@mouse.com)
          @mailing.additional_email_addresses += ", #{@more_emails.join(', ')}"
          @mailing.save
          @delivery = Delivery.create!(:mailing => @mailing)
        end

        it "should not create recipients for former recipients" do
          @mailing.recipients.should_not be_empty
          @delivery.recipients.collect(&:email).should == @more_emails
        end

      end

    end

    after(:all) do
      @mailing.destroy
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
alchemy_crm-2.0.5 spec/models/alchemy_crm/delivery_spec.rb
alchemy_crm-2.0.4.1 spec/models/alchemy_crm/delivery_spec.rb
alchemy_crm-2.1.0a spec/models/alchemy_crm/delivery_spec.rb
alchemy_crm-2.0.3 spec/models/alchemy_crm/delivery_spec.rb
alchemy_crm-2.0.2 spec/models/alchemy_crm/delivery_spec.rb