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