payola-payments 1.2.0 → 1.2.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/payola/checkout_button.js +9 -9
- data/app/assets/javascripts/payola/form.js +6 -6
- data/app/assets/javascripts/payola/subscription_form.js +6 -6
- data/app/controllers/concerns/payola/affiliate_behavior.rb +17 -0
- data/app/controllers/concerns/payola/async_behavior.rb +36 -0
- data/app/controllers/payola/subscriptions_controller.rb +31 -46
- data/app/controllers/payola/transactions_controller.rb +16 -32
- data/app/mailers/payola/admin_mailer.rb +7 -15
- data/app/mailers/payola/receipt_mailer.rb +2 -0
- data/app/models/concerns/payola/guid_behavior.rb +20 -0
- data/app/models/concerns/payola/plan.rb +0 -1
- data/app/models/payola/sale.rb +6 -12
- data/app/models/payola/subscription.rb +9 -12
- data/app/services/payola/charge_card.rb +42 -33
- data/app/services/payola/create_plan.rb +2 -2
- data/app/services/payola/invoice_behavior.rb +55 -0
- data/app/services/payola/invoice_failed.rb +4 -29
- data/app/services/payola/invoice_paid.rb +4 -31
- data/lib/payola.rb +13 -11
- data/lib/payola/version.rb +1 -1
- data/spec/concerns/plan_spec.rb +0 -5
- data/spec/controllers/payola/subscriptions_controller_spec.rb +10 -1
- data/spec/controllers/payola/transactions_controller_spec.rb +10 -1
- data/spec/dummy/app/models/subscription_plan_without_interval_count.rb +3 -0
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20141120170744_create_subscription_plan_without_interval_counts.rb +12 -0
- data/spec/dummy/db/schema.rb +10 -1
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +222 -0
- data/spec/dummy/log/test.log +15830 -141203
- data/spec/factories/subscription_plan.rb +7 -0
- data/spec/mailers/payola/admin_mailer_spec.rb +35 -0
- data/spec/mailers/payola/receipt_mailer_spec.rb +52 -0
- data/spec/models/payola/subscription_spec.rb +21 -0
- data/spec/payola_spec.rb +6 -2
- data/spec/services/payola/create_plan_spec.rb +9 -0
- data/spec/services/payola/process_sale_spec.rb +15 -0
- data/spec/services/payola/process_subscription_spec.rb +15 -0
- data/spec/services/payola/send_mail_spec.rb +25 -0
- data/spec/spec_helper.rb +13 -0
- data/spec/worker_spec.rb +55 -0
- metadata +40 -8
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Payola
|
4
|
+
describe AdminMailer do
|
5
|
+
let(:sale) { create(:sale) }
|
6
|
+
|
7
|
+
describe '#receipt' do
|
8
|
+
it "should send a receipt notification" do
|
9
|
+
mail = AdminMailer.receipt(sale.guid)
|
10
|
+
expect(mail.subject).to eq 'Receipt'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#refund' do
|
15
|
+
it "should send a refund notification" do
|
16
|
+
mail = AdminMailer.refund(sale.guid)
|
17
|
+
expect(mail.subject).to eq 'Refund'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe '#dispute' do
|
22
|
+
it "should send a dispute notification" do
|
23
|
+
mail = AdminMailer.dispute(sale.guid)
|
24
|
+
expect(mail.subject).to eq 'Dispute'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#failure' do
|
29
|
+
it "should send a failure notification" do
|
30
|
+
mail = AdminMailer.failure(sale.guid)
|
31
|
+
expect(mail.subject).to eq 'Failure'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Payola
|
4
|
+
describe ReceiptMailer do
|
5
|
+
let(:sale) { create(:sale) }
|
6
|
+
|
7
|
+
describe '#receipt' do
|
8
|
+
it 'should send a receipt' do
|
9
|
+
Payola.pdf_receipt = false
|
10
|
+
mail = Payola::ReceiptMailer.receipt(sale.guid)
|
11
|
+
expect(mail.subject).to eq 'Purchase Receipt'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should send a receipt with a pdf' do
|
15
|
+
Payola.pdf_receipt = true
|
16
|
+
mail = Payola::ReceiptMailer.receipt(sale.guid)
|
17
|
+
expect(mail.attachments["receipt-#{sale.guid}.pdf"]).to_not be nil
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should allow product to override subject" do
|
21
|
+
expect_any_instance_of(Product).to receive(:receipt_subject).and_return("Override Subject")
|
22
|
+
mail = Payola::ReceiptMailer.receipt(sale.guid)
|
23
|
+
expect(mail.subject).to eq 'Override Subject'
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should allow product to override from address" do
|
27
|
+
expect_any_instance_of(Product).to receive(:receipt_from_address).and_return("Override <override@example.com>")
|
28
|
+
mail = Payola::ReceiptMailer.receipt(sale.guid)
|
29
|
+
expect(mail.from.first).to eq 'override@example.com'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#refund' do
|
34
|
+
it "should send refund email" do
|
35
|
+
mail = Payola::ReceiptMailer.refund(sale.guid)
|
36
|
+
expect(mail.subject).to eq 'Refund Confirmation'
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should allow product to override subject" do
|
40
|
+
expect_any_instance_of(Product).to receive(:refund_subject).and_return("Override Subject")
|
41
|
+
mail = Payola::ReceiptMailer.refund(sale.guid)
|
42
|
+
expect(mail.subject).to eq 'Override Subject'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should allow product to override from address" do
|
46
|
+
expect_any_instance_of(Product).to receive(:refund_from_address).and_return("Override <override@example.com>")
|
47
|
+
mail = Payola::ReceiptMailer.refund(sale.guid)
|
48
|
+
expect(mail.from.first).to eq 'override@example.com'
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -36,6 +36,9 @@ module Payola
|
|
36
36
|
trial_start = subscription.trial_start
|
37
37
|
trial_end = subscription.trial_end
|
38
38
|
|
39
|
+
now = Time.now.to_i
|
40
|
+
expect(stripe_sub).to receive(:canceled_at).and_return(now).at_least(1)
|
41
|
+
|
39
42
|
subscription.sync_with!(stripe_sub)
|
40
43
|
|
41
44
|
subscription.reload
|
@@ -44,6 +47,24 @@ module Payola
|
|
44
47
|
expect(subscription.current_period_start).to_not eq old_start
|
45
48
|
expect(subscription.current_period_end).to eq Time.at(stripe_sub.current_period_end)
|
46
49
|
expect(subscription.current_period_end).to_not eq old_end
|
50
|
+
expect(subscription.canceled_at).to eq Time.at(now)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should sync non-timestamp fields" do
|
54
|
+
plan = create(:subscription_plan)
|
55
|
+
subscription = build(:subscription, plan: plan)
|
56
|
+
stripe_sub = Stripe::Customer.create.subscriptions.create(plan: plan.stripe_id, card: StripeMock.generate_card_token(last4: '1234', exp_year: Time.now.year + 1))
|
57
|
+
|
58
|
+
expect(stripe_sub).to receive(:quantity).and_return(10).at_least(1)
|
59
|
+
expect(stripe_sub).to receive(:cancel_at_period_end).and_return(true).at_least(1)
|
60
|
+
|
61
|
+
subscription.sync_with!(stripe_sub)
|
62
|
+
|
63
|
+
subscription.reload
|
64
|
+
|
65
|
+
expect(subscription.quantity).to eq 10
|
66
|
+
expect(subscription.stripe_status).to eq 'active'
|
67
|
+
expect(subscription.cancel_at_period_end).to eq true
|
47
68
|
end
|
48
69
|
end
|
49
70
|
end
|
data/spec/payola_spec.rb
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
module Payola
|
4
|
+
class FakeWorker
|
5
|
+
def self.can_run?
|
6
|
+
false
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
4
10
|
describe "#configure" do
|
5
11
|
it "should pass the class back to the given block" do
|
6
12
|
Payola.configure do |payola|
|
@@ -42,7 +48,6 @@ module Payola
|
|
42
48
|
before do
|
43
49
|
Payola.reset!
|
44
50
|
|
45
|
-
class FakeWorker; end
|
46
51
|
Payola::Worker.registry ||= {}
|
47
52
|
Payola::Worker.registry[:fake] = FakeWorker
|
48
53
|
end
|
@@ -88,7 +93,6 @@ module Payola
|
|
88
93
|
before do
|
89
94
|
Payola.reset!
|
90
95
|
|
91
|
-
class FakeWorker; end
|
92
96
|
Payola::Worker.registry ||= {}
|
93
97
|
Payola::Worker.registry[:fake] = FakeWorker
|
94
98
|
Payola.background_worker = :fake
|
@@ -18,6 +18,15 @@ module Payola
|
|
18
18
|
expect(plan.currency).to eq 'usd'
|
19
19
|
expect(plan.trial_period_days).to eq @subscription_plan.trial_period_days
|
20
20
|
end
|
21
|
+
|
22
|
+
it "should default interval_count" do
|
23
|
+
our_plan = create(:subscription_plan_without_interval_count)
|
24
|
+
|
25
|
+
expect(our_plan.respond_to?(:interval_count)).to eq false
|
26
|
+
|
27
|
+
plan = Stripe::Plan.retrieve(our_plan.stripe_id)
|
28
|
+
expect(plan.interval_count).to be_nil
|
29
|
+
end
|
21
30
|
end
|
22
31
|
|
23
32
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Payola
|
4
|
+
describe ProcessSale do
|
5
|
+
describe "#call" do
|
6
|
+
it "should call process!" do
|
7
|
+
sale = create(:sale)
|
8
|
+
expect(Payola::Sale).to receive(:find_by).with(guid: sale.guid).and_return(sale)
|
9
|
+
expect(sale).to receive(:process!)
|
10
|
+
|
11
|
+
Payola::ProcessSale.call(sale.guid)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Payola
|
4
|
+
describe ProcessSubscription do
|
5
|
+
describe "#call" do
|
6
|
+
it "should call process!" do
|
7
|
+
sale = create(:sale)
|
8
|
+
expect(Payola::Subscription).to receive(:find_by).with(guid: sale.guid).and_return(sale)
|
9
|
+
expect(sale).to receive(:process!)
|
10
|
+
|
11
|
+
Payola::ProcessSubscription.call(sale.guid)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Payola
|
4
|
+
|
5
|
+
class TestMailer < ActionMailer::Base
|
6
|
+
def test_mail(to, text)
|
7
|
+
mail(
|
8
|
+
to: to,
|
9
|
+
from: 'from@example.com',
|
10
|
+
body: text
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe SendMail do
|
16
|
+
describe "#call" do
|
17
|
+
it "should send a mail" do
|
18
|
+
mail = double
|
19
|
+
expect(TestMailer).to receive(:test_mail).with('to@example.com', 'Some Text').and_return(mail)
|
20
|
+
expect(mail).to receive(:deliver)
|
21
|
+
Payola::SendMail.call('Payola::TestMailer', 'test_mail', 'to@example.com', 'Some Text')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
require 'simplecov'
|
2
|
+
require "codeclimate-test-reporter"
|
3
|
+
|
4
|
+
if ENV['CIRCLE_ARTIFACTS']
|
5
|
+
dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage")
|
6
|
+
SimpleCov.coverage_dir(dir)
|
7
|
+
CodeClimate::TestReporter.start
|
8
|
+
end
|
9
|
+
SimpleCov.start 'rails' do
|
10
|
+
add_filter 'app/secrets'
|
11
|
+
end
|
12
|
+
|
13
|
+
|
1
14
|
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
15
|
ENV["RAILS_ENV"] ||= 'test'
|
3
16
|
require File.expand_path("../dummy/config/environment", __FILE__)
|
data/spec/worker_spec.rb
CHANGED
@@ -8,6 +8,29 @@ module Payola
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
describe Worker do
|
12
|
+
describe "#autofind" do
|
13
|
+
it "should return ActiveJob if available" do
|
14
|
+
expect(Payola::Worker::ActiveJob).to receive(:can_run?).and_return(true)
|
15
|
+
expect(Payola::Worker.autofind).to eq Payola::Worker::ActiveJob
|
16
|
+
end
|
17
|
+
it "should return something else if available" do
|
18
|
+
expect(Payola::Worker::ActiveJob).to receive(:can_run?).and_return(false)
|
19
|
+
expect(Payola::Worker::Sidekiq).to receive(:can_run?).and_return(false)
|
20
|
+
expect(Payola::Worker::SuckerPunch).to receive(:can_run?).and_return(true)
|
21
|
+
expect(Payola::Worker.autofind).to eq Payola::Worker::SuckerPunch
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should raise if nothing available" do
|
25
|
+
expect(Payola::Worker::ActiveJob).to receive(:can_run?).and_return(false).at_least(1)
|
26
|
+
expect(Payola::Worker::Sidekiq).to receive(:can_run?).and_return(false)
|
27
|
+
expect(Payola::Worker::SuckerPunch).to receive(:can_run?).and_return(false)
|
28
|
+
|
29
|
+
expect { Payola::Worker.autofind }.to raise_error("No eligable background worker systems found.")
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
11
34
|
describe Worker::Sidekiq do
|
12
35
|
before do
|
13
36
|
module ::Sidekiq
|
@@ -32,6 +55,24 @@ module Payola
|
|
32
55
|
end
|
33
56
|
end
|
34
57
|
|
58
|
+
describe Worker::SuckerPunch do
|
59
|
+
describe "#can_run?" do
|
60
|
+
it "should return true if SuckerPunch is defined" do
|
61
|
+
expect(Payola::Worker::SuckerPunch.can_run?).to be_truthy
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#call" do
|
66
|
+
it "should call async" do
|
67
|
+
worker = double
|
68
|
+
expect(Payola::Worker::SuckerPunch).to receive(:new).and_return(worker)
|
69
|
+
expect(worker).to receive(:async).and_return(worker)
|
70
|
+
expect(worker).to receive(:perform)
|
71
|
+
Payola::Worker::SuckerPunch.call(Payola::TestService, double)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
35
76
|
describe Worker::ActiveJob do
|
36
77
|
before do
|
37
78
|
module ::ActiveJob
|
@@ -52,4 +93,18 @@ module Payola
|
|
52
93
|
end
|
53
94
|
end
|
54
95
|
end
|
96
|
+
|
97
|
+
describe Worker::BaseWorker do
|
98
|
+
|
99
|
+
class SomeTestService
|
100
|
+
def self.call; end
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "#perform" do
|
104
|
+
it "should call the given service" do
|
105
|
+
expect(SomeTestService).to receive(:call)
|
106
|
+
Payola::Worker::BaseWorker.new.perform('Payola::SomeTestService')
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
55
110
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: payola-payments
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pete Keen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -56,28 +56,28 @@ dependencies:
|
|
56
56
|
name: aasm
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: '4.0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '4.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: stripe_event
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 1.3.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.3.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: 1.2.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: docverter
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
description: One-off and subscription payments for your Rails application
|
154
168
|
email:
|
155
169
|
- pete@payola.io
|
@@ -164,6 +178,8 @@ files:
|
|
164
178
|
- app/assets/javascripts/payola/form.js
|
165
179
|
- app/assets/javascripts/payola/subscription_form.js
|
166
180
|
- app/assets/stylesheets/payola/application.css
|
181
|
+
- app/controllers/concerns/payola/affiliate_behavior.rb
|
182
|
+
- app/controllers/concerns/payola/async_behavior.rb
|
167
183
|
- app/controllers/payola/application_controller.rb
|
168
184
|
- app/controllers/payola/subscriptions_controller.rb
|
169
185
|
- app/controllers/payola/transactions_controller.rb
|
@@ -171,6 +187,7 @@ files:
|
|
171
187
|
- app/helpers/payola/price_helper.rb
|
172
188
|
- app/mailers/payola/admin_mailer.rb
|
173
189
|
- app/mailers/payola/receipt_mailer.rb
|
190
|
+
- app/models/concerns/payola/guid_behavior.rb
|
174
191
|
- app/models/concerns/payola/plan.rb
|
175
192
|
- app/models/concerns/payola/sellable.rb
|
176
193
|
- app/models/payola/affiliate.rb
|
@@ -184,6 +201,7 @@ files:
|
|
184
201
|
- app/services/payola/create_plan.rb
|
185
202
|
- app/services/payola/create_sale.rb
|
186
203
|
- app/services/payola/create_subscription.rb
|
204
|
+
- app/services/payola/invoice_behavior.rb
|
187
205
|
- app/services/payola/invoice_failed.rb
|
188
206
|
- app/services/payola/invoice_paid.rb
|
189
207
|
- app/services/payola/process_sale.rb
|
@@ -260,6 +278,7 @@ files:
|
|
260
278
|
- spec/dummy/app/models/owner.rb
|
261
279
|
- spec/dummy/app/models/product.rb
|
262
280
|
- spec/dummy/app/models/subscription_plan.rb
|
281
|
+
- spec/dummy/app/models/subscription_plan_without_interval_count.rb
|
263
282
|
- spec/dummy/app/views/buy/index.html.erb
|
264
283
|
- spec/dummy/app/views/home/index.html.erb
|
265
284
|
- spec/dummy/app/views/layouts/application.html.erb
|
@@ -293,6 +312,7 @@ files:
|
|
293
312
|
- spec/dummy/db/migrate/20141001230848_create_products.rb
|
294
313
|
- spec/dummy/db/migrate/20141029140518_create_owners.rb
|
295
314
|
- spec/dummy/db/migrate/20141105010234_create_subscription_plans.rb
|
315
|
+
- spec/dummy/db/migrate/20141120170744_create_subscription_plan_without_interval_counts.rb
|
296
316
|
- spec/dummy/db/schema.rb
|
297
317
|
- spec/dummy/db/test.sqlite3
|
298
318
|
- spec/dummy/log/development.log
|
@@ -334,6 +354,8 @@ files:
|
|
334
354
|
- spec/factories/sales.rb
|
335
355
|
- spec/factories/subscription_plan.rb
|
336
356
|
- spec/helpers/payola/price_helper_spec.rb
|
357
|
+
- spec/mailers/payola/admin_mailer_spec.rb
|
358
|
+
- spec/mailers/payola/receipt_mailer_spec.rb
|
337
359
|
- spec/models/payola/sale_spec.rb
|
338
360
|
- spec/models/payola/stripe_webhook_spec.rb
|
339
361
|
- spec/models/payola/subscription_spec.rb
|
@@ -346,6 +368,9 @@ files:
|
|
346
368
|
- spec/services/payola/create_subscription_spec.rb
|
347
369
|
- spec/services/payola/invoice_failed_spec.rb
|
348
370
|
- spec/services/payola/invoice_paid_spec.rb
|
371
|
+
- spec/services/payola/process_sale_spec.rb
|
372
|
+
- spec/services/payola/process_subscription_spec.rb
|
373
|
+
- spec/services/payola/send_mail_spec.rb
|
349
374
|
- spec/services/payola/start_subscription_spec.rb
|
350
375
|
- spec/services/payola/sync_subscription_spec.rb
|
351
376
|
- spec/services/payola/update_card_spec.rb
|
@@ -394,6 +419,7 @@ test_files:
|
|
394
419
|
- spec/dummy/app/models/owner.rb
|
395
420
|
- spec/dummy/app/models/product.rb
|
396
421
|
- spec/dummy/app/models/subscription_plan.rb
|
422
|
+
- spec/dummy/app/models/subscription_plan_without_interval_count.rb
|
397
423
|
- spec/dummy/app/views/buy/index.html.erb
|
398
424
|
- spec/dummy/app/views/home/index.html.erb
|
399
425
|
- spec/dummy/app/views/layouts/application.html.erb
|
@@ -427,6 +453,7 @@ test_files:
|
|
427
453
|
- spec/dummy/db/migrate/20141001230848_create_products.rb
|
428
454
|
- spec/dummy/db/migrate/20141029140518_create_owners.rb
|
429
455
|
- spec/dummy/db/migrate/20141105010234_create_subscription_plans.rb
|
456
|
+
- spec/dummy/db/migrate/20141120170744_create_subscription_plan_without_interval_counts.rb
|
430
457
|
- spec/dummy/db/schema.rb
|
431
458
|
- spec/dummy/db/test.sqlite3
|
432
459
|
- spec/dummy/log/development.log
|
@@ -470,6 +497,8 @@ test_files:
|
|
470
497
|
- spec/factories/sales.rb
|
471
498
|
- spec/factories/subscription_plan.rb
|
472
499
|
- spec/helpers/payola/price_helper_spec.rb
|
500
|
+
- spec/mailers/payola/admin_mailer_spec.rb
|
501
|
+
- spec/mailers/payola/receipt_mailer_spec.rb
|
473
502
|
- spec/models/payola/sale_spec.rb
|
474
503
|
- spec/models/payola/stripe_webhook_spec.rb
|
475
504
|
- spec/models/payola/subscription_spec.rb
|
@@ -482,6 +511,9 @@ test_files:
|
|
482
511
|
- spec/services/payola/create_subscription_spec.rb
|
483
512
|
- spec/services/payola/invoice_failed_spec.rb
|
484
513
|
- spec/services/payola/invoice_paid_spec.rb
|
514
|
+
- spec/services/payola/process_sale_spec.rb
|
515
|
+
- spec/services/payola/process_subscription_spec.rb
|
516
|
+
- spec/services/payola/send_mail_spec.rb
|
485
517
|
- spec/services/payola/start_subscription_spec.rb
|
486
518
|
- spec/services/payola/sync_subscription_spec.rb
|
487
519
|
- spec/services/payola/update_card_spec.rb
|