55 subject ( :controller_instance ) do
66 Class . new ( ApplicationController ) do
77 include CreateSubscription
8- attr_accessor :params , :current_order
9-
10- def initialize ( params = { } )
11- super
12- end
138 end . new
149 end
1510
1611 let ( :variant ) { create ( :variant ) }
1712 let ( :order ) { create ( :order ) }
1813
1914 before do
20- controller_instance . current_order = order
15+ allow ( controller_instance ) . to receive ( :current_order ) . and_return ( order )
2116 end
2217
2318 describe '#subscription_line_item_params_present?' do
@@ -49,15 +44,19 @@ def initialize(params = {})
4944 end
5045
5146 describe '#handle_subscription_line_items' do
52- context 'when subscription params are missing' do
53- it 'does not invoke handle_subscription_line_items and does not create a subscription line item' do
54- order . line_items . count
47+ before do
48+ allow ( controller_instance ) . to receive ( :params ) . and_return ( params )
49+ end
5550
56- controller_instance . params = {
51+ context 'when subscription params are missing' do
52+ let ( :params ) do
53+ {
5754 variant_id : variant . id ,
5855 subscription_line_item : { }
5956 }
57+ end
6058
59+ it 'does not invoke handle_subscription_line_items and does not create a subscription line item' do
6160 expect ( controller_instance . send ( :valid_subscription_line_item_params? ) ) . to be false
6261
6362 expect ( controller_instance ) . not_to receive ( :handle_subscription_line_items )
@@ -67,17 +66,19 @@ def initialize(params = {})
6766 end
6867
6968 context 'when subscription params are present' do
70- it 'calls create_subscription_line_item with the correct line item' do
71- line_item = create ( :line_item , order : order , variant : variant )
72-
73- controller_instance . params = {
69+ let ( :params ) do
70+ {
7471 variant_id : variant . id ,
7572 subscription_line_item : {
7673 subscribable_id : 1 ,
7774 quantity : 2 ,
7875 interval_length : 1
7976 }
8077 }
78+ end
79+
80+ it 'calls create_subscription_line_item with the correct line item' do
81+ line_item = create ( :line_item , order : order , variant : variant )
8182
8283 allow ( order . line_items ) . to receive ( :find_by ) . with ( variant_id : variant . id ) . and_return ( line_item )
8384
0 commit comments