muck-commerce 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/README.rdoc +5 -1
  2. data/VERSION +1 -1
  3. data/app/controllers/admin/muck/coupons_controller.rb +3 -1
  4. data/app/controllers/muck/subscriptions_controller.rb +64 -1
  5. data/config/muck_commerce_routes.rb +1 -1
  6. data/db/migrate/20100327171239_add_subscription_records.rb +14 -0
  7. data/lib/active_record/acts/muck_commerce_user.rb +13 -2
  8. data/lib/active_record/acts/muck_coupon.rb +3 -0
  9. data/lib/active_record/acts/muck_coupon_type.rb +9 -1
  10. data/lib/active_record/acts/muck_subscription.rb +2 -1
  11. data/lib/active_record/acts/muck_subscription_record.rb +35 -0
  12. data/lib/muck_commerce.rb +1 -0
  13. data/lib/test/muck_commerce_factories.rb +9 -1
  14. data/muck-commerce.gemspec +28 -4
  15. data/test/rails_root/app/models/coupon_type.rb +3 -0
  16. data/test/rails_root/db/migrate/20091230220327_create_muck_commerce.rb +9 -11
  17. data/test/rails_root/db/migrate/20100228060913_create_subscription_coupons.rb +14 -0
  18. data/test/rails_root/db/migrate/20100327171239_add_subscription_records.rb +14 -0
  19. data/test/rails_root/public/images/fancybox/blank.gif +0 -0
  20. data/test/rails_root/public/images/fancybox/fancy_close.png +0 -0
  21. data/test/rails_root/public/images/fancybox/fancy_loading.png +0 -0
  22. data/test/rails_root/public/images/fancybox/fancy_nav_left.png +0 -0
  23. data/test/rails_root/public/images/fancybox/fancy_nav_right.png +0 -0
  24. data/test/rails_root/public/images/fancybox/fancy_shadow_e.png +0 -0
  25. data/test/rails_root/public/images/fancybox/fancy_shadow_n.png +0 -0
  26. data/test/rails_root/public/images/fancybox/fancy_shadow_ne.png +0 -0
  27. data/test/rails_root/public/images/fancybox/fancy_shadow_nw.png +0 -0
  28. data/test/rails_root/public/images/fancybox/fancy_shadow_s.png +0 -0
  29. data/test/rails_root/public/images/fancybox/fancy_shadow_se.png +0 -0
  30. data/test/rails_root/public/images/fancybox/fancy_shadow_sw.png +0 -0
  31. data/test/rails_root/public/images/fancybox/fancy_shadow_w.png +0 -0
  32. data/test/rails_root/public/images/fancybox/fancy_title_left.png +0 -0
  33. data/test/rails_root/public/images/fancybox/fancy_title_main.png +0 -0
  34. data/test/rails_root/public/images/fancybox/fancy_title_over.png +0 -0
  35. data/test/rails_root/public/images/fancybox/fancy_title_right.png +0 -0
  36. data/test/rails_root/public/images/fancybox/fancybox-x.png +0 -0
  37. data/test/rails_root/public/images/fancybox/fancybox-y.png +0 -0
  38. data/test/rails_root/public/images/fancybox/fancybox.png +0 -0
  39. data/test/rails_root/public/javascripts/jquery/jquery.easing.js +72 -1
  40. data/test/rails_root/public/javascripts/jquery/jquery.fancybox.js +34 -6
  41. data/test/rails_root/public/javascripts/jquery/jquery.js +150 -15
  42. data/test/rails_root/public/javascripts/jquery/jquery.mousewheel.js +13 -0
  43. data/test/rails_root/public/javascripts/muck-countries.js +1 -1
  44. data/test/rails_root/public/javascripts/muck.js +0 -2
  45. data/test/rails_root/public/stylesheets/jquery/jquery.fancybox.css +77 -38
  46. data/test/rails_root/test/functional/{billings_information_controller_test.rb → billing_informations_controller_test.rb} +0 -0
  47. data/test/rails_root/test/unit/cart_coupon_test.rb +16 -0
  48. data/test/rails_root/test/unit/coupon_test.rb +65 -0
  49. data/test/rails_root/test/unit/coupon_type_test.rb +24 -0
  50. data/test/rails_root/test/unit/subscription_test.rb +153 -1
  51. data/test/rails_root/test/unit/user_test.rb +56 -8
  52. metadata +29 -5
@@ -0,0 +1,16 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class CartCouponTest < ActiveSupport::TestCase
4
+
5
+ context 'A cart coupon instance that acts_as_muck_cart_coupon' do
6
+ setup do
7
+ @cart_coupon = Factory(:cart_coupon)
8
+ end
9
+ subject { @cart_coupon }
10
+
11
+ should_belong_to :cart
12
+ should_belong_to :coupon
13
+
14
+ end
15
+
16
+ end
@@ -0,0 +1,65 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class CouponTest < ActiveSupport::TestCase
4
+
5
+ context 'A coupon instance that acts_as_muck_coupon' do
6
+ setup do
7
+ @coupon = Factory(:coupon)
8
+ end
9
+ subject { @coupon }
10
+
11
+ should_have_many :orders
12
+ should_belong_to :user
13
+ should_belong_to :coupon_type
14
+
15
+ should_validate_presence_of :code, :amount, :percent, :uses
16
+ should_validate_uniqueness_of :code
17
+
18
+ #validate :validate_discount
19
+
20
+ context "named scopes" do
21
+ setup do
22
+ @active_coupon = Factory(:coupon)
23
+ @expired_coupon = Factory(:coupon, :expires_at => 1.week.ago)
24
+ @used_coupon = Factory(:coupon, :use_limit => 1, :uses => 2)
25
+ @referral_coupon = Factory(:coupon, :coupon_type => CouponType.default)
26
+ end
27
+ should_scope_by_newest
28
+ context "active" do
29
+ should "find active coupons" do
30
+ assert Coupon.active.include?(@active_coupon)
31
+ end
32
+ should "not find expired coupons" do
33
+ assert !Coupon.active.include?(@in_active_coupon)
34
+ end
35
+ should "not find used coupons" do
36
+ assert !Coupon.active.include?(@used_coupon)
37
+ end
38
+ end
39
+ context "referrals" do
40
+ should "find referral codes" do
41
+ assert Coupon.referrals.include?(@referral_coupon)
42
+ end
43
+ should "not find default codes" do
44
+ assert !Coupon.active.include?(@active_coupon)
45
+ end
46
+ end
47
+ context "default" do
48
+ should "find default codes" do
49
+ assert Coupon.referrals.include?(@active_coupon)
50
+ end
51
+ should "not find referral code" do
52
+ assert !Coupon.active.include?(@referral_coupon)
53
+ end
54
+ end
55
+ end
56
+
57
+ context "random_code" do
58
+ should "generate a random code" do
59
+ assert_not_nil Coupon.random_code
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ end
@@ -0,0 +1,24 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class CouponTypeTest < ActiveSupport::TestCase
4
+
5
+ context 'A coupon type instance that acts_as_muck_coupon_type' do
6
+ setup do
7
+ @coupon_type = Factory(:coupon_type)
8
+ end
9
+ subject { @coupon_type }
10
+
11
+ should_have_many :coupons
12
+
13
+ context "types" do
14
+ should "have default" do
15
+ assert_equal 'Referral', CouponType.user_referral
16
+ end
17
+ should "have referral" do
18
+ assert_equal 'Default', CouponType.default
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -5,7 +5,159 @@ class SubscriptionTest < ActiveSupport::TestCase
5
5
  include MuckCommerceTestDefinitions
6
6
 
7
7
  context "Subscription Instance" do
8
+ setup do
9
+ @subscription = Factory(:subscription)
10
+ end
11
+ subject { @subscription }
12
+ should_belong_to :user
13
+ should_belong_to :subscription_plan
8
14
 
15
+ should_have_many :subscription_records
16
+ should_have_many :order_coupons
17
+ should_have_many :coupons, :through => :subscription_coupons
18
+ should_have_many :order_transactions, :as => :transactionable, :dependent => :destroy
19
+
20
+ should_validate_presence_of :amount
21
+ should_validate_presence_of :user
22
+
23
+ context "named scope" do
24
+ setup do
25
+ @user = Factory(:user)
26
+ @default_subscription = Factory(:subscription, :default => :true)
27
+ @user.subscriptions << @default_subscription
28
+ @non_default_subscription = Factory(:subscription, :default => :false)
29
+ @user.subscriptions << @non_default_subscription
30
+
31
+ @subscription = Factory(:subscription, :aasm_state => 'active', :next_renewal_at => 2.weeks.from_now)
32
+ @due_today_subscription = Factory(:subscription, :aasm_state => 'active', :next_renewal_at => DateTime.now)
33
+ @past_due_subscription = Factory(:subscription, :aasm_state => 'active', :next_renewal_at => DateTime.now)
34
+ @expiring_trial_subscription = Factory(:subscription, :aasm_state => 'trial', :next_renewal_at => DateTime.now)
35
+ @expired_trial_subscription = Factory(:subscription, :aasm_state => 'trial', :next_renewal_at => 1.week.ago)
36
+ @suspended_subscription = Factory(:subscription, :aasm_state => 'suspended', :next_renewal_at => 1.week.ago)
37
+
38
+ end
39
+
40
+ should_scope_newest
41
+
42
+ context "expiring_trials" do
43
+ should "find expiring trials" do
44
+ assert Subscription.expiring_trials.include?(@expiring_trial_subscription)
45
+ end
46
+ should "find expired trial" do
47
+ assert Subscription.expiring_trials.include?(@expired_trial_subscription)
48
+ end
49
+ should "not find active subscription" do
50
+ assert !Subscription.expiring_trials.include?(@subscription)
51
+ end
52
+ should "not find past due active subscription" do
53
+ assert !Subscription.expiring_trials.include?(@past_due_subscription)
54
+ end
55
+ should "not find active subscription due today" do
56
+ assert !Subscription.expiring_trials.include?(@due_today_subscription)
57
+ end
58
+ end
59
+
60
+ context "due_today" do
61
+ should "find expiring trials" do
62
+ assert Subscription.due_today.include?(@expiring_trial_subscription)
63
+ end
64
+ should "not find expired trial" do
65
+ assert !Subscription.due_today.include?(@expired_trial_subscription)
66
+ end
67
+ should "not find active subscription" do
68
+ assert !Subscription.due_today.include?(@subscription)
69
+ end
70
+ should "not find past due active subscription" do
71
+ assert !Subscription.due_today.include?(@past_due_subscription)
72
+ end
73
+ should "find active subscription due today" do
74
+ assert Subscription.due_today.include?(@due_today_subscription)
75
+ end
76
+ should "not find suspeded subscription" do
77
+ assert !Subscription.past_due.include?(@suspended_subscription)
78
+ end
79
+
80
+ end
81
+
82
+ context "past_due" do
83
+ should "find expiring trials" do
84
+ assert Subscription.past_due.include?(@expiring_trial_subscription)
85
+ end
86
+ should "find expired trial" do
87
+ assert Subscription.past_due.include?(@expired_trial_subscription)
88
+ end
89
+ should "not find active subscription" do
90
+ assert !Subscription.past_due.include?(@subscription)
91
+ end
92
+ should "find past due active subscription" do
93
+ assert Subscription.past_due.include?(@past_due_subscription)
94
+ end
95
+ should "find active subscription due today" do
96
+ assert Subscription.past_due.include?(@due_today_subscription)
97
+ end
98
+ should "find suspeded subscription" do
99
+ assert Subscription.past_due.include?(@suspended_subscription)
100
+ end
101
+ end
102
+
103
+ context "default" do
104
+ should "get default subscription" do
105
+ assert @user.subscriptions.default.include?(@default_subscription)
106
+ end
107
+ should "not get non default subscription" do
108
+ assert !@user.subscriptions.default.include?(@non_default_subscription)
109
+ end
110
+ end
111
+
112
+ context "states" do
113
+ setup do
114
+ @subscription = Factory(:subscription)
115
+ end
116
+ should "be in the trial state" do
117
+ assert @subscription.trial?
118
+ end
119
+ should "move to the active state" do
120
+ assert @subscription.activate!
121
+ assert @subscription.active?
122
+ end
123
+ should "move to the suspended state from the active state" do
124
+ assert @subscription.activate!
125
+ assert @subscription.active?
126
+ assert @subscription.suspend!
127
+ assert @subscription.suspended?
128
+ end
129
+ should "move to the suspended state from the trial state" do
130
+ assert @subscription.trial?
131
+ assert @subscription.suspend!
132
+ assert @subscription.suspended?
133
+ end
134
+ should "move to the cancelled state from the trial state" do
135
+ assert @subscription.trial?
136
+ assert @subscription.cancel!
137
+ assert @subscription.cancelled?
138
+ end
139
+ should "move to the cancelled state from the active state" do
140
+ assert @subscription.activate!
141
+ assert @subscription.active?
142
+ assert @subscription.cancel!
143
+ assert @subscription.cancelled?
144
+ end
145
+ end
146
+
147
+ context "authorize_subscription" do
148
+ authorize_subscription(user, options = {})
149
+ end
150
+
151
+ context "subscribe" do
152
+ subscribe(user, subscription_plan_id, discount_code = '')
153
+ end
154
+
155
+ context "subscribe_custom" do
156
+ subscribe_custom(user, amount, subscription_values = {}, renewal_period = nil, discount_codes = [], run_authorization = false)
157
+ end
158
+
159
+ end
160
+
9
161
  end
10
162
 
11
- end
163
+ end
@@ -2,22 +2,70 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  class UserTest < ActiveSupport::TestCase
4
4
 
5
- context 'A user instance with has_muck_profile' do
5
+ context 'A user instance that acts_as_muck_commerce_user' do
6
6
  setup do
7
7
  @user = Factory(:user)
8
8
  end
9
9
  subject { @user }
10
10
 
11
- should_accept_nested_attributes_for :profile
12
- should_have_one :profile
11
+ should_have_one :cart
12
+ should_have_many :billing_informations
13
+ should_have_many :order_transactions
14
+ should_have_many :orders
15
+ should_have_many :subscriptions
13
16
 
14
- should "have a profile after creation" do
15
- assert @user.profile
17
+ should "have a referral_code after creation" do
18
+ assert_not_nil @user.referral_code
19
+ assert_not_nil @user.referral_code.code
20
+ code = @user.referral_code.code
21
+ # Make sure that the referral code isn't getting reassigned
22
+ assert_equal code, @user.referral_code.code
16
23
  end
17
24
 
18
- should "have a photo method delegated to the profile" do
19
- assert @user.photo
25
+ context "subscription" do
26
+ setup do
27
+ @default = @user.subscriptions.create(Factory.attributes_for(:subscription, :default => true))
28
+ @other = @user.subscriptions.create(Factory.attributes_for(:subscription, :default => false))
29
+ end
30
+ should "give the default subscription" do
31
+ assert_equal @default, @user.subscription
32
+ end
33
+ end
34
+
35
+ context "billing information" do
36
+ context "get billing_information" do
37
+ setup do
38
+ @default = @user.billing_informations.create(Factory.attributes_for(:billing_information, :default => true))
39
+ @other = @user.billing_informations.create(Factory.attributes_for(:billing_information, :default => false))
40
+ end
41
+ should "give the default billing information" do
42
+ assert_equal @default, @user.billing_information
43
+ end
44
+ end
45
+ context "create_update_billing_information!" do
46
+ context "billing information exists" do
47
+ should "update existing billing information" do
48
+ @default = @user.billing_informations.create(Factory.attributes_for(:billing_information, :default => true))
49
+ @user.create_update_billing_information!(Factory.attributes_for(:billing_information))
50
+ assert_equal @default, @user.billing_information
51
+ assert_equal 1, @user.billing_informations.length
52
+ end
53
+ end
54
+ context "no billing information" do
55
+ should "create a new billing entry" do
56
+ billing_information = @user.create_update_billing_information!(Factory.attributes_for(:billing_information))
57
+ assert_equal billing_information, @user.billing_information
58
+ end
59
+ end
60
+
61
+ end
62
+ context "build_billing_information" do
63
+ should "build but not save billing information for the user" do
64
+ billing_information = @user.build_billing_information(Factory.attributes_for(:billing_information))
65
+ assert_nil @user.billing_information
66
+ end
67
+ end
20
68
  end
21
69
  end
22
70
 
23
- end
71
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 8
9
- version: 0.1.8
8
+ - 9
9
+ version: 0.1.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Justin Ball
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-03-17 00:00:00 -06:00
18
+ date: 2010-03-29 00:00:00 -06:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -152,6 +152,7 @@ files:
152
152
  - db/migrate/20100228060913_create_subscription_coupons.rb
153
153
  - db/migrate/20100309183304_add_coupon_subscrption_uses.rb
154
154
  - db/migrate/20100310180031_create_coupon_types.rb
155
+ - db/migrate/20100327171239_add_subscription_records.rb
155
156
  - lib/action_controller/muck_billing_application.rb
156
157
  - lib/active_record/acts/muck_billing_information.rb
157
158
  - lib/active_record/acts/muck_cart.rb
@@ -164,6 +165,7 @@ files:
164
165
  - lib/active_record/acts/muck_order_transaction.rb
165
166
  - lib/active_record/acts/muck_subscription.rb
166
167
  - lib/active_record/acts/muck_subscription_plan.rb
168
+ - lib/active_record/acts/muck_subscription_record.rb
167
169
  - lib/muck_commerce.rb
168
170
  - lib/muck_commerce/cart_methods.rb
169
171
  - lib/muck_commerce/configure.rb
@@ -193,6 +195,7 @@ files:
193
195
  - test/rails_root/app/models/cart.rb
194
196
  - test/rails_root/app/models/cart_coupon.rb
195
197
  - test/rails_root/app/models/coupon.rb
198
+ - test/rails_root/app/models/coupon_type.rb
196
199
  - test/rails_root/app/models/order.rb
197
200
  - test/rails_root/app/models/order_coupon.rb
198
201
  - test/rails_root/app/models/order_transaction.rb
@@ -229,8 +232,10 @@ files:
229
232
  - test/rails_root/db/migrate/20100123035450_create_access_codes.rb
230
233
  - test/rails_root/db/migrate/20100123233654_create_access_code_requests.rb
231
234
  - test/rails_root/db/migrate/20100206000906_remove_name_fields.rb
235
+ - test/rails_root/db/migrate/20100228060913_create_subscription_coupons.rb
232
236
  - test/rails_root/db/migrate/20100309183304_add_coupon_subscrption_uses.rb
233
237
  - test/rails_root/db/migrate/20100310180031_create_coupon_types.rb
238
+ - test/rails_root/db/migrate/20100327171239_add_subscription_records.rb
234
239
  - test/rails_root/features/step_definitions/webrat_steps.rb
235
240
  - test/rails_root/features/support/env.rb
236
241
  - test/rails_root/lib/tasks/muck.rake
@@ -252,8 +257,13 @@ files:
252
257
  - test/rails_root/public/images/arrow_right.gif
253
258
  - test/rails_root/public/images/arrow_up.gif
254
259
  - test/rails_root/public/images/blue/preview.gif
260
+ - test/rails_root/public/images/fancybox/blank.gif
261
+ - test/rails_root/public/images/fancybox/fancy_close.png
255
262
  - test/rails_root/public/images/fancybox/fancy_closebox.png
256
263
  - test/rails_root/public/images/fancybox/fancy_left.png
264
+ - test/rails_root/public/images/fancybox/fancy_loading.png
265
+ - test/rails_root/public/images/fancybox/fancy_nav_left.png
266
+ - test/rails_root/public/images/fancybox/fancy_nav_right.png
257
267
  - test/rails_root/public/images/fancybox/fancy_progress.png
258
268
  - test/rails_root/public/images/fancybox/fancy_right.png
259
269
  - test/rails_root/public/images/fancybox/fancy_shadow_e.png
@@ -266,7 +276,11 @@ files:
266
276
  - test/rails_root/public/images/fancybox/fancy_shadow_w.png
267
277
  - test/rails_root/public/images/fancybox/fancy_title_left.png
268
278
  - test/rails_root/public/images/fancybox/fancy_title_main.png
279
+ - test/rails_root/public/images/fancybox/fancy_title_over.png
269
280
  - test/rails_root/public/images/fancybox/fancy_title_right.png
281
+ - test/rails_root/public/images/fancybox/fancybox-x.png
282
+ - test/rails_root/public/images/fancybox/fancybox-y.png
283
+ - test/rails_root/public/images/fancybox/fancybox.png
270
284
  - test/rails_root/public/images/icons/accept.png
271
285
  - test/rails_root/public/images/icons/add.png
272
286
  - test/rails_root/public/images/icons/blue_guy.png
@@ -660,6 +674,7 @@ files:
660
674
  - test/rails_root/public/javascripts/jquery/jquery.jgrowl.js
661
675
  - test/rails_root/public/javascripts/jquery/jquery.js
662
676
  - test/rails_root/public/javascripts/jquery/jquery.metadata.min.js
677
+ - test/rails_root/public/javascripts/jquery/jquery.mousewheel.js
663
678
  - test/rails_root/public/javascripts/jquery/jquery.queryString.js
664
679
  - test/rails_root/public/javascripts/jquery/jquery.swapimage.js
665
680
  - test/rails_root/public/javascripts/jquery/jquery.swapimage.min.js
@@ -806,11 +821,14 @@ files:
806
821
  - test/rails_root/test/functional/admin/billing_informations_controller_test.rb
807
822
  - test/rails_root/test/functional/admin/coupons_controller_test.rb
808
823
  - test/rails_root/test/functional/admin/subscription_plans_controller_test.rb
809
- - test/rails_root/test/functional/billings_information_controller_test.rb
824
+ - test/rails_root/test/functional/billing_informations_controller_test.rb
810
825
  - test/rails_root/test/functional/carts_controller_test.rb
811
826
  - test/rails_root/test/functional/orders_controller_test.rb
812
827
  - test/rails_root/test/functional/subscription_controller_test.rb
813
828
  - test/rails_root/test/test_helper.rb
829
+ - test/rails_root/test/unit/cart_coupon_test.rb
830
+ - test/rails_root/test/unit/coupon_test.rb
831
+ - test/rails_root/test/unit/coupon_type_test.rb
814
832
  - test/rails_root/test/unit/order_test.rb
815
833
  - test/rails_root/test/unit/order_transaction_test.rb
816
834
  - test/rails_root/test/unit/subscription_test.rb
@@ -900,6 +918,7 @@ test_files:
900
918
  - test/rails_root/app/models/cart.rb
901
919
  - test/rails_root/app/models/cart_coupon.rb
902
920
  - test/rails_root/app/models/coupon.rb
921
+ - test/rails_root/app/models/coupon_type.rb
903
922
  - test/rails_root/app/models/order.rb
904
923
  - test/rails_root/app/models/order_coupon.rb
905
924
  - test/rails_root/app/models/order_transaction.rb
@@ -933,8 +952,10 @@ test_files:
933
952
  - test/rails_root/db/migrate/20100123035450_create_access_codes.rb
934
953
  - test/rails_root/db/migrate/20100123233654_create_access_code_requests.rb
935
954
  - test/rails_root/db/migrate/20100206000906_remove_name_fields.rb
955
+ - test/rails_root/db/migrate/20100228060913_create_subscription_coupons.rb
936
956
  - test/rails_root/db/migrate/20100309183304_add_coupon_subscrption_uses.rb
937
957
  - test/rails_root/db/migrate/20100310180031_create_coupon_types.rb
958
+ - test/rails_root/db/migrate/20100327171239_add_subscription_records.rb
938
959
  - test/rails_root/features/step_definitions/webrat_steps.rb
939
960
  - test/rails_root/features/support/env.rb
940
961
  - test/rails_root/public/dispatch.rb
@@ -946,11 +967,14 @@ test_files:
946
967
  - test/rails_root/test/functional/admin/billing_informations_controller_test.rb
947
968
  - test/rails_root/test/functional/admin/coupons_controller_test.rb
948
969
  - test/rails_root/test/functional/admin/subscription_plans_controller_test.rb
949
- - test/rails_root/test/functional/billings_information_controller_test.rb
970
+ - test/rails_root/test/functional/billing_informations_controller_test.rb
950
971
  - test/rails_root/test/functional/carts_controller_test.rb
951
972
  - test/rails_root/test/functional/orders_controller_test.rb
952
973
  - test/rails_root/test/functional/subscription_controller_test.rb
953
974
  - test/rails_root/test/test_helper.rb
975
+ - test/rails_root/test/unit/cart_coupon_test.rb
976
+ - test/rails_root/test/unit/coupon_test.rb
977
+ - test/rails_root/test/unit/coupon_type_test.rb
954
978
  - test/rails_root/test/unit/order_test.rb
955
979
  - test/rails_root/test/unit/order_transaction_test.rb
956
980
  - test/rails_root/test/unit/subscription_test.rb