-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcart_finalizer_spec.rb
38 lines (35 loc) · 1.16 KB
/
cart_finalizer_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require 'spec_helper'
module Kms
describe CartFinalizer do
let(:cart) { FactoryGirl.create(:cart_with_line_items) }
describe '#finalize' do
it 'validates customer' do
cart_finalizer = CartFinalizer.new(cart, {})
expect(cart_finalizer.customer).to receive(:valid?)
cart_finalizer.finalize
end
context 'when no customer data passed' do
it 'returns nil or false' do
cart_finalizer = CartFinalizer.new(cart, {name: nil})
expect(cart_finalizer.finalize).to be_falsy
end
end
context 'when customer data valid' do
let(:cart_finalizer) { CartFinalizer.new(cart, {name: 'John'}) }
let(:result) { cart_finalizer.finalize }
it 'returns Order object' do
expect(result).to be_instance_of(Kms::Order)
end
it 'returns persisted Order object' do
expect(result.persisted?).to be true
end
it 'returns order belonging to cart' do
expect(result.cart_id).to_not be_nil
end
it 'returns order belonging to customer' do
expect(result.customer_id).to_not be_nil
end
end
end
end
end