effective_orders 3.0.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/effective_orders/version.rb +1 -1
  4. metadata +10 -258
  5. data/spec/controllers/admin/orders_controller_spec.rb +0 -243
  6. data/spec/controllers/carts_controller_spec.rb +0 -143
  7. data/spec/controllers/ccbill_orders_controller_spec.rb +0 -103
  8. data/spec/controllers/moneris_orders_controller_spec.rb +0 -133
  9. data/spec/controllers/orders_controller_spec.rb +0 -500
  10. data/spec/controllers/stripe_orders_controller_spec.rb +0 -128
  11. data/spec/controllers/webhooks_controller_spec.rb +0 -170
  12. data/spec/dummy/README.rdoc +0 -8
  13. data/spec/dummy/Rakefile +0 -6
  14. data/spec/dummy/app/assets/javascripts/application.js +0 -13
  15. data/spec/dummy/app/assets/stylesheets/application.css +0 -15
  16. data/spec/dummy/app/controllers/application_controller.rb +0 -5
  17. data/spec/dummy/app/helpers/application_helper.rb +0 -2
  18. data/spec/dummy/app/models/product.rb +0 -9
  19. data/spec/dummy/app/models/product_with_float_price.rb +0 -9
  20. data/spec/dummy/app/models/user.rb +0 -11
  21. data/spec/dummy/app/views/layouts/application.html.erb +0 -14
  22. data/spec/dummy/bin/bundle +0 -3
  23. data/spec/dummy/bin/rails +0 -4
  24. data/spec/dummy/bin/rake +0 -4
  25. data/spec/dummy/config.ru +0 -4
  26. data/spec/dummy/config/application.rb +0 -32
  27. data/spec/dummy/config/boot.rb +0 -5
  28. data/spec/dummy/config/database.yml +0 -25
  29. data/spec/dummy/config/environment.rb +0 -5
  30. data/spec/dummy/config/environments/development.rb +0 -37
  31. data/spec/dummy/config/environments/production.rb +0 -80
  32. data/spec/dummy/config/environments/test.rb +0 -36
  33. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  34. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -3
  35. data/spec/dummy/config/initializers/devise.rb +0 -254
  36. data/spec/dummy/config/initializers/effective_addresses.rb +0 -15
  37. data/spec/dummy/config/initializers/effective_orders.rb +0 -269
  38. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  39. data/spec/dummy/config/initializers/inflections.rb +0 -16
  40. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  41. data/spec/dummy/config/initializers/session_store.rb +0 -3
  42. data/spec/dummy/config/initializers/simple_form.rb +0 -189
  43. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  44. data/spec/dummy/config/locales/en.yml +0 -23
  45. data/spec/dummy/config/routes.rb +0 -3
  46. data/spec/dummy/config/secrets.yml +0 -22
  47. data/spec/dummy/db/schema.rb +0 -158
  48. data/spec/dummy/db/test.sqlite3 +0 -0
  49. data/spec/dummy/log/development.log +0 -164
  50. data/spec/dummy/log/test.log +0 -60
  51. data/spec/dummy/public/404.html +0 -67
  52. data/spec/dummy/public/422.html +0 -67
  53. data/spec/dummy/public/500.html +0 -66
  54. data/spec/dummy/public/favicon.ico +0 -0
  55. data/spec/fixtures/stripe_webhooks/invoice.payment_succeeded.without_renewals.json +0 -76
  56. data/spec/helpers/effective_orders_helper_spec.rb +0 -21
  57. data/spec/models/acts_as_purchasable_spec.rb +0 -75
  58. data/spec/models/customer_spec.rb +0 -72
  59. data/spec/models/factories_spec.rb +0 -35
  60. data/spec/models/order_item_spec.rb +0 -35
  61. data/spec/models/order_spec.rb +0 -445
  62. data/spec/models/stripe_charge_spec.rb +0 -39
  63. data/spec/models/subscription_spec.rb +0 -103
  64. data/spec/spec_helper.rb +0 -46
  65. data/spec/support/factories.rb +0 -139
@@ -1,39 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # # Attributes
4
- describe Effective::Providers::StripeCharge do
5
- let(:order) { FactoryGirl.create(:order_with_subscription) }
6
- let(:charge) { Effective::Providers::StripeCharge.new(order) }
7
-
8
- before { StripeMock.start }
9
- after { StripeMock.stop }
10
-
11
- it 'can be initialized with an order' do
12
- charge = Effective::Providers::StripeCharge.new(order)
13
- charge.order.should eq order
14
- charge.effective_order_id.should eq order.to_param
15
- end
16
-
17
- it 'can be initialized without an order' do
18
- charge = Effective::Providers::StripeCharge.new(:token => 'tok_123', :effective_order_id => 3)
19
- charge.token.should eq 'tok_123'
20
- charge.effective_order_id.should eq 3
21
- charge.order.nil?.should eq true
22
- end
23
-
24
- it 'performs validations' do
25
- charge = Effective::Providers::StripeCharge.new()
26
- charge.valid?.should eq false
27
- charge.errors[:token].present?.should eq true
28
- charge.errors[:effective_order_id].present?.should eq true
29
- end
30
-
31
- it '#order_items returns all OrderItems where the purchasable is not a Subscription' do
32
- charge.order_items.all? { |oi| oi.purchasable_type != 'Effective::Subscription'}.should eq true
33
- end
34
-
35
- it '#subscriptions returns all Subscriptions (not order items)' do
36
- charge.subscriptions.all? { |oi| oi.kind_of?(Effective::Subscription) }.should eq true
37
- end
38
-
39
- end
@@ -1,103 +0,0 @@
1
- require 'spec_helper'
2
-
3
- # # Attributes
4
- describe Effective::Subscription do
5
- let(:subscription) { FactoryGirl.create(:subscription) }
6
-
7
- before { StripeMock.start }
8
- after { StripeMock.stop }
9
-
10
- describe '#stripe_plan' do
11
-
12
- end
13
-
14
- describe '#stripe_plan_id=' do
15
- it 'assigns the stripe_plan_id' do
16
- subscription.stripe_plan_id = 'Plan 9'
17
- subscription.stripe_plan_id.should eq 'Plan 9'
18
- end
19
-
20
- it 'rejects an invalid stripe_plan' do
21
- subscription.stripe_plan.present?.should eq true # From the Factory
22
-
23
- subscription.stripe_plan_id = 'Plan 9' # Set it to an Invalid plan
24
- subscription.stripe_plan_id.should eq 'Plan 9'
25
-
26
- subscription.stripe_plan.should eq nil
27
- end
28
-
29
- it 'sets the stripe plan' do
30
- subscription = Effective::Subscription.new()
31
-
32
- plan = ::Stripe::Plan.create(:id => 'stripe_plan', :name => 'Stripe Plan', :amount => 1000, :currency => 'USD', :interval => 'month')
33
- subscription.stripe_plan_id = plan.id
34
- subscription.stripe_plan.id.should eq plan.id
35
- end
36
- end
37
-
38
- describe '#stripe_coupon_id=' do
39
- it 'assigns the stripe_coupon_id' do
40
- subscription.stripe_coupon_id = 'Plan 9'
41
- subscription.stripe_coupon_id.should eq 'Plan 9'
42
- end
43
-
44
- it 'rejects an invalid stripe_coupon' do
45
- subscription.stripe_coupon.present?.should eq true # From the Factory
46
-
47
- subscription.stripe_coupon_id = 'Plan 9' # Set it to an Invalid plan
48
- subscription.stripe_coupon_id.should eq 'Plan 9'
49
-
50
- subscription.stripe_coupon.should eq nil
51
- end
52
-
53
- it 'sets the stripe coupon' do
54
- subscription = Effective::Subscription.new()
55
-
56
- coupon = FactoryGirl.create(:stripe_coupon)
57
- subscription.stripe_coupon_id = coupon.id
58
- subscription.stripe_coupon.id.should eq coupon.id
59
- end
60
- end
61
-
62
- describe '#assign_price_and_title' do
63
- it 'assigns the price and title as per the stripe plan and coupon' do
64
- subscription = Effective::Subscription.new()
65
-
66
- plan = ::Stripe::Plan.create(:id => 'stripe_plan', :name => 'Stripe Plan', :amount => 1000, :currency => 'USD', :interval => 'month')
67
-
68
- subscription.stripe_plan_id = plan.id
69
-
70
- subscription.price.should eq plan.amount
71
- subscription.title.include?(plan.name).should eq true
72
- subscription.title.include?(plan.interval).should eq true
73
- end
74
-
75
- it 'assigns the price and title as per the stripe plan and coupon amount off' do
76
- subscription = Effective::Subscription.new()
77
-
78
- plan = ::Stripe::Plan.create(:id => 'stripe_plan', :name => 'Stripe Plan', :amount => 1000, :currency => 'USD', :interval => 'month')
79
- coupon = FactoryGirl.create(:stripe_coupon, :percent_off => 25)
80
-
81
- subscription.stripe_plan_id = plan.id
82
- subscription.stripe_coupon_id = coupon.id
83
-
84
- subscription.price.should eq (plan.amount * (coupon.percent_off.to_i / 100.0)).round(0).to_i
85
- subscription.title.include?('25% off').should eq true
86
- end
87
-
88
- it 'assigns the price and title as per the stripe plan and coupon percent off' do
89
- subscription = Effective::Subscription.new()
90
-
91
- plan = ::Stripe::Plan.create(:id => 'stripe_plan', :name => 'Stripe Plan', :amount => 1000, :currency => 'USD', :interval => 'month')
92
- coupon = FactoryGirl.create(:stripe_coupon, :percent_off => nil, :amount_off => 100)
93
-
94
- subscription.stripe_plan_id = plan.id
95
- subscription.stripe_coupon_id = coupon.id
96
-
97
- subscription.price.should eq plan.amount - coupon.amount_off
98
- subscription.title.include?('$1.00 off').should eq true
99
- end
100
- end
101
-
102
-
103
- end
data/spec/spec_helper.rb DELETED
@@ -1,46 +0,0 @@
1
- ENV["RAILS_ENV"] ||= 'test'
2
-
3
- require File.expand_path("../dummy/config/environment", __FILE__)
4
-
5
- require 'rspec/rails'
6
- require 'factory_girl_rails'
7
- require 'stripe_mock'
8
- require 'pry'
9
- require 'shoulda-matchers'
10
-
11
- # Requires supporting ruby files with custom matchers and macros, etc,
12
- # in spec/support/ and its subdirectories.
13
- Dir[Rails.root.join("../../spec/support/**/*.rb")].each {|f| require f }
14
-
15
- RSpec.configure do |config|
16
- config.fixture_path = "#{::Rails.root}/spec/fixtures"
17
-
18
- config.include Devise::Test::ControllerHelpers, :type => :controller
19
- config.include Shoulda::Matchers::ActiveModel, :type => :model
20
-
21
- Rails.logger.level = 4 # Output only minimal stuff to test.log
22
-
23
- config.use_transactional_fixtures = true # Make this false to once again use DatabaseCleaner
24
- config.order = 'random'
25
- end
26
-
27
- class ActiveRecord::Base
28
- mattr_accessor :shared_connection
29
- @@shared_connection = nil
30
-
31
- def self.connection
32
- @@shared_connection || retrieve_connection
33
- end
34
- end
35
-
36
- # Forces all threads to share the same connection. This works on
37
- # Capybara because it starts the web server in a thread.
38
- ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
39
-
40
-
41
- # To set up this gem for testing:
42
- # spec/dummy> ln -s ../../spec spec
43
- #
44
- # spec/dummy> rails generate effective_orders:install
45
- # spec/dummy> rake db:migrate
46
- # spec/dummy> rake db:test:prepare
@@ -1,139 +0,0 @@
1
- require 'factory_girl'
2
-
3
- FactoryGirl.define do
4
- factory :address, class: Effective::Address do
5
- category 'billing'
6
- full_name 'Peter Pan'
7
- sequence(:address1) { |n| "1234#{n} Fake Street" }
8
- city 'A canadian city'
9
- state_code ['AB', 'BC', 'MB', 'NB', 'NL', 'NT', 'NS', 'ON', 'PE', 'QC', 'SK', 'YT', 'NU'].sample
10
- country_code 'CA'
11
- postal_code 'T5T2T1'
12
- end
13
-
14
- factory :product do # This only exists in the dummy/ app
15
- sequence(:title) { |n| "Product #{n}" }
16
-
17
- price 1000
18
- tax_exempt false
19
- end
20
-
21
- factory :product_with_float_price do # This only exists in the dummy/ app
22
- sequence(:title) { |n| "Product #{n}" }
23
-
24
- price 10.00
25
- tax_exempt false
26
- end
27
-
28
- factory :user do # This only exists in the dummy/ app
29
- sequence(:email) { |n| "user_#{n}@effective_orders.test"}
30
-
31
- password '12345678'
32
-
33
- after(:build) { |user| user.skip_confirmation! if user.respond_to?(:skip_confirmation!) }
34
- end
35
-
36
- factory :customer, class: Effective::Customer do
37
- association :user
38
- end
39
-
40
- factory :subscription, class: Effective::Subscription do
41
- association :customer
42
-
43
- before(:create) do |subscription|
44
- stripe_plan = Stripe::Plan.create(id: "stripe_plan_#{subscription.object_id}", name: 'Stripe Plan', amount: 1000, currency: 'USD', interval: 'month')
45
- stripe_coupon = FactoryGirl.create(:stripe_coupon)
46
-
47
- subscription.stripe_plan_id = stripe_plan.id
48
- subscription.stripe_coupon_id = stripe_coupon.id
49
- end
50
- end
51
-
52
- factory :cart, class: Effective::Cart do
53
- association :user
54
- cart_items_count 0
55
-
56
- before(:create) do |cart|
57
- 3.times { cart.cart_items << FactoryGirl.build(:cart_item, cart: cart) }
58
- end
59
- end
60
-
61
- factory :cart_item, class: Effective::CartItem do
62
- association :purchasable, factory: :product
63
- association :cart, factory: :cart
64
-
65
- quantity 1
66
- end
67
-
68
- factory :cart_with_subscription, class: Effective::Cart do
69
- association :user
70
-
71
- before(:create) do |cart|
72
- cart.cart_items << FactoryGirl.create(:cart_item, cart: cart)
73
- cart.cart_items << FactoryGirl.create(:cart_item, cart: cart, purchasable: FactoryGirl.create(:subscription))
74
- end
75
- end
76
-
77
- factory :cart_with_items, class: Effective::Cart do
78
- association :user
79
-
80
- before(:create) do |cart|
81
- 3.times { cart.cart_items << FactoryGirl.create(:cart_item, cart: cart) }
82
- end
83
- end
84
-
85
- factory :order, class: Effective::Order do
86
- association :user
87
-
88
- before(:create) do |order|
89
- order.billing_address = FactoryGirl.build(:address, addressable: order)
90
- order.shipping_address = FactoryGirl.build(:address, addressable: order)
91
-
92
- 3.times { order.order_items << FactoryGirl.create(:order_item, order: order) }
93
- end
94
- end
95
-
96
- factory :order_with_subscription, class: Effective::Order do
97
- association :user
98
-
99
- before(:create) do |order|
100
- order.billing_address = FactoryGirl.build(:address, addressable: order)
101
- order.shipping_address = FactoryGirl.build(:address, addressable: order)
102
-
103
- order.order_items << FactoryGirl.create(:order_item, order: order)
104
- order.order_items << FactoryGirl.create(:order_item, purchasable: FactoryGirl.create(:subscription), order: order)
105
- end
106
- end
107
-
108
- factory :order_item, class: Effective::OrderItem do
109
- association :purchasable, factory: :product
110
- association :order, factory: :order
111
-
112
- sequence(:title) { |n| "Order Item #{n}" }
113
- quantity 1
114
- price 1000
115
- tax_exempt false
116
- end
117
-
118
- factory :purchased_order, parent: :order do
119
- payment_provider 'admin'
120
- payment_card 'unknown'
121
-
122
- after(:create) { |order| order.purchase! }
123
- end
124
-
125
- factory :declined_order, parent: :order do
126
- payment_provider 'admin'
127
-
128
- after(:create) { |order| order.decline! }
129
- end
130
-
131
- factory :pending_order, parent: :order do
132
- purchase_state 'pending'
133
- end
134
-
135
- factory :stripe_coupon, class: Stripe::Coupon do
136
- to_create {|c| c.save}
137
- duration 'once'
138
- end
139
- end