spec/lib/delivery/postback_spec.rb in mail_room-0.9.1 vs spec/lib/delivery/postback_spec.rb in mail_room-0.10.0

- old
+ new

@@ -1,31 +1,71 @@ require 'spec_helper' require 'mail_room/delivery/postback' describe MailRoom::Delivery::Postback do describe '#deliver' do - let(:mailbox) {MailRoom::Mailbox.new({ - :delivery_url => 'http://localhost/inbox', - :delivery_token => 'abcdefg' - })} + context 'with token auth delivery' do + let(:mailbox) {build_mailbox({ + :delivery_url => 'http://localhost/inbox', + :delivery_token => 'abcdefg' + })} - it 'posts the message with faraday' do - connection = stub - request = stub - Faraday.stubs(:new).returns(connection) + let(:delivery_options) { + MailRoom::Delivery::Postback::Options.new(mailbox) + } - connection.stubs(:token_auth) - connection.stubs(:post).yields(request) + it 'posts the message with faraday' do + connection = stub + request = stub + Faraday.stubs(:new).returns(connection) - request.stubs(:url) - request.stubs(:body=) + connection.stubs(:token_auth) + connection.stubs(:post).yields(request) - MailRoom::Delivery::Postback.new(mailbox).deliver('a message') + request.stubs(:url) + request.stubs(:body=) - expect(connection).to have_received(:token_auth).with('abcdefg') - expect(connection).to have_received(:post) + MailRoom::Delivery::Postback.new(delivery_options).deliver('a message') - expect(request).to have_received(:url).with('http://localhost/inbox') - expect(request).to have_received(:body=).with('a message') + expect(connection).to have_received(:token_auth).with('abcdefg') + expect(connection).to have_received(:post) + + expect(request).to have_received(:url).with('http://localhost/inbox') + expect(request).to have_received(:body=).with('a message') + end + end + + context 'with basic auth delivery options' do + let(:mailbox) {build_mailbox({ + :delivery_options => { + :url => 'http://localhost/inbox', + :username => 'user1', + :password => 'password123abc' + } + })} + + let(:delivery_options) { + MailRoom::Delivery::Postback::Options.new(mailbox) + } + + it 'posts the message with faraday' do + connection = stub + request = stub + Faraday.stubs(:new).returns(connection) + + connection.stubs(:basic_auth) + connection.stubs(:post).yields(request) + + request.stubs(:url) + request.stubs(:body=) + + MailRoom::Delivery::Postback.new(delivery_options).deliver('a message') + + expect(connection).to have_received(:basic_auth).with('user1', 'password123abc') + expect(connection).to have_received(:post) + + expect(request).to have_received(:url).with('http://localhost/inbox') + expect(request).to have_received(:body=).with('a message') + end end end end