payola-payments 1.0.8 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +8 -8
  2. data/app/assets/javascripts/payola/checkout_button.js +21 -12
  3. data/app/controllers/payola/transactions_controller.rb +1 -1
  4. data/app/mailers/payola/admin_mailer.rb +35 -0
  5. data/app/mailers/payola/receipt_mailer.rb +47 -0
  6. data/app/models/payola/sale.rb +10 -2
  7. data/app/services/payola/create_sale.rb +1 -1
  8. data/app/services/payola/process_sale.rb +7 -0
  9. data/app/services/payola/send_mail.rb +7 -0
  10. data/app/views/payola/admin_mailer/dispute.html.erb +10 -0
  11. data/app/views/payola/admin_mailer/failure.html.erb +11 -0
  12. data/app/views/payola/admin_mailer/receipt.html.erb +10 -0
  13. data/app/views/payola/admin_mailer/refund.html.erb +10 -0
  14. data/app/views/payola/receipt_mailer/receipt.html.erb +4 -0
  15. data/app/views/payola/receipt_mailer/receipt.text.erb +7 -0
  16. data/app/views/payola/receipt_mailer/receipt_pdf.html.erb +83 -0
  17. data/app/views/payola/receipt_mailer/refund.html.erb +8 -0
  18. data/app/views/payola/transactions/_checkout.html.erb +31 -23
  19. data/db/migrate/20141029135848_add_owner_to_payola_sale.rb +8 -0
  20. data/lib/generators/payola/install_generator.rb +1 -1
  21. data/lib/payola.rb +33 -5
  22. data/lib/payola/version.rb +1 -1
  23. data/lib/payola/worker/active_job.rb +4 -4
  24. data/lib/payola/worker/base.rb +2 -2
  25. data/lib/payola/worker/sidekiq.rb +2 -2
  26. data/lib/payola/worker/sucker_punch.rb +2 -2
  27. data/spec/dummy/app/models/owner.rb +2 -0
  28. data/spec/dummy/db/development.sqlite3 +0 -0
  29. data/spec/dummy/db/migrate/20141029140518_create_owners.rb +8 -0
  30. data/spec/dummy/db/schema.rb +9 -1
  31. data/spec/dummy/db/test.sqlite3 +0 -0
  32. data/spec/dummy/log/development.log +1946 -0
  33. data/spec/dummy/log/test.log +10516 -0
  34. data/spec/dummy/tmp/cache/assets/development/sprockets/0e585aeb88c1555ae8f5292f7c7a9068 +0 -0
  35. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  36. data/spec/dummy/tmp/cache/assets/development/sprockets/5afa4bc970e0bc781b3500c696ba25ff +0 -0
  37. data/spec/dummy/tmp/cache/assets/development/sprockets/664efeb51d1b486dcfc30d142db56f3c +0 -0
  38. data/spec/dummy/tmp/cache/assets/development/sprockets/68a3bbdc64a0729b5896fa1e33fce4b1 +0 -0
  39. data/spec/dummy/tmp/cache/assets/development/sprockets/b83da90cb58011313e13a97a4a41cb6e +0 -0
  40. data/spec/dummy/tmp/cache/assets/development/sprockets/c0b954b40f2881a6d286061bc069643e +0 -0
  41. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  42. data/spec/dummy/tmp/cache/assets/development/sprockets/d9856638a3c7b9cfd9d1b884e3b33982 +0 -0
  43. data/spec/dummy/tmp/cache/assets/development/sprockets/ef82c31948061751bb026663b54484e1 +0 -0
  44. data/spec/dummy/tmp/cache/assets/development/sprockets/f0b5d4bea0c6cdd1904e1e9a0a45532f +0 -0
  45. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  46. data/spec/models/payola/sale_spec.rb +16 -0
  47. data/spec/payola_spec.rb +32 -0
  48. data/spec/worker_spec.rb +8 -6
  49. metadata +19 -2
@@ -51,6 +51,7 @@ module Payola
51
51
  it "should instrument finish" do
52
52
  sale = create(:sale, state: 'processing')
53
53
  Payola.should_receive(:instrument).with('payola.product.sale.finished', sale)
54
+ Payola.should_receive(:instrument).with('payola.sale.finished', sale)
54
55
 
55
56
  sale.finish!
56
57
  end
@@ -60,6 +61,7 @@ module Payola
60
61
  it "should instrument fail" do
61
62
  sale = create(:sale, state: 'processing')
62
63
  Payola.should_receive(:instrument).with('payola.product.sale.failed', sale)
64
+ Payola.should_receive(:instrument).with('payola.sale.failed', sale)
63
65
 
64
66
  sale.fail!
65
67
  end
@@ -69,6 +71,7 @@ module Payola
69
71
  it "should instrument refund" do
70
72
  sale = create(:sale, state: 'finished')
71
73
  Payola.should_receive(:instrument).with('payola.product.sale.refunded', sale)
74
+ Payola.should_receive(:instrument).with('payola.sale.refunded', sale)
72
75
  sale.refund!
73
76
  end
74
77
  end
@@ -82,5 +85,18 @@ module Payola
82
85
  expect(sale.custom_fields["field"]).to eq "value"
83
86
  end
84
87
  end
88
+
89
+ describe "#owner" do
90
+ it "should store and recall owner" do
91
+ sale = create(:sale)
92
+ owner = Owner.create
93
+
94
+ sale.owner = owner
95
+ sale.save!
96
+
97
+ expect(sale.owner_id).to eq owner.id
98
+ expect(sale.owner_type).to eq 'Owner'
99
+ end
100
+ end
85
101
  end
86
102
  end
data/spec/payola_spec.rb CHANGED
@@ -84,6 +84,38 @@ module Payola
84
84
  end
85
85
  end
86
86
 
87
+ describe "#send_mail" do
88
+ before do
89
+ Payola.reset!
90
+
91
+ class FakeWorker; end
92
+ Payola::Worker.registry ||= {}
93
+ Payola::Worker.registry[:fake] = FakeWorker
94
+ Payola.background_worker = :fake
95
+ end
96
+
97
+ it "should queue the SendMail service" do
98
+ class FakeMailer < ActionMailer::Base
99
+ def receipt(first, second)
100
+ end
101
+ end
102
+
103
+ FakeWorker.should_receive(:call).with(Payola::SendMail, FakeMailer, :receipt, 1, 2)
104
+ Payola.send_mail(FakeMailer, :receipt, 1, 2)
105
+ end
106
+ end
107
+
108
+ describe '#auto_emails' do
109
+ before do
110
+ Payola.reset!
111
+ end
112
+
113
+ it "should set up listeners for auto emails" do
114
+ Payola.should_receive(:subscribe).with('payola.sale.finished').at_least(2)
115
+ Payola.send_email_for :receipt, :admin_receipt
116
+ end
117
+ end
118
+
87
119
  describe "#secret_key_retriever" do
88
120
  it "should get called" do
89
121
  Payola.secret_key_retriever = lambda { |sale| 'foo' }
data/spec/worker_spec.rb CHANGED
@@ -2,6 +2,12 @@ require 'spec_helper'
2
2
 
3
3
  module Payola
4
4
 
5
+ class TestService
6
+ def self.call(thing)
7
+ thing.guid
8
+ end
9
+ end
10
+
5
11
  describe Worker::Sidekiq do
6
12
  before do
7
13
  module ::Sidekiq
@@ -21,9 +27,7 @@ module Payola
21
27
  describe "#call" do
22
28
  it "should call perform_async" do
23
29
  Payola::Worker::Sidekiq.should_receive(:perform_async)
24
- sale = double()
25
- sale.should_receive(:guid).and_return('blah')
26
- Payola::Worker::Sidekiq.call(sale)
30
+ Payola::Worker::Sidekiq.call(Payola::TestService, double)
27
31
  end
28
32
  end
29
33
  end
@@ -44,9 +48,7 @@ module Payola
44
48
  describe "#call" do
45
49
  it "should call perform_later" do
46
50
  Payola::Worker::ActiveJob.should_receive(:perform_later)
47
- sale = double()
48
- sale.should_receive(:guid).and_return('blah')
49
- Payola::Worker::ActiveJob.call(sale)
51
+ Payola::Worker::ActiveJob.call(Payola::TestService, double)
50
52
  end
51
53
  end
52
54
  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.0.8
4
+ version: 1.1.0
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-10-27 00:00:00.000000000 Z
11
+ date: 2014-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -167,6 +167,8 @@ files:
167
167
  - app/controllers/payola/transactions_controller.rb
168
168
  - app/helpers/payola/application_helper.rb
169
169
  - app/helpers/payola/price_helper.rb
170
+ - app/mailers/payola/admin_mailer.rb
171
+ - app/mailers/payola/receipt_mailer.rb
170
172
  - app/models/concerns/payola/sellable.rb
171
173
  - app/models/payola/affiliate.rb
172
174
  - app/models/payola/coupon.rb
@@ -174,7 +176,17 @@ files:
174
176
  - app/models/payola/stripe_webhook.rb
175
177
  - app/services/payola/charge_card.rb
176
178
  - app/services/payola/create_sale.rb
179
+ - app/services/payola/process_sale.rb
180
+ - app/services/payola/send_mail.rb
177
181
  - app/views/layouts/payola/application.html.erb
182
+ - app/views/payola/admin_mailer/dispute.html.erb
183
+ - app/views/payola/admin_mailer/failure.html.erb
184
+ - app/views/payola/admin_mailer/receipt.html.erb
185
+ - app/views/payola/admin_mailer/refund.html.erb
186
+ - app/views/payola/receipt_mailer/receipt.html.erb
187
+ - app/views/payola/receipt_mailer/receipt.text.erb
188
+ - app/views/payola/receipt_mailer/receipt_pdf.html.erb
189
+ - app/views/payola/receipt_mailer/refund.html.erb
178
190
  - app/views/payola/transactions/_checkout.html.erb
179
191
  - app/views/payola/transactions/_form.html.erb
180
192
  - app/views/payola/transactions/_stripe_header.html.erb
@@ -191,6 +203,7 @@ files:
191
203
  - db/migrate/20141017233304_add_currency_to_payola_sale.rb
192
204
  - db/migrate/20141026101628_add_custom_fields_to_payola_sale.rb
193
205
  - db/migrate/20141026144800_rename_custom_fields_to_signed_custom_fields_on_payola_sale.rb
206
+ - db/migrate/20141029135848_add_owner_to_payola_sale.rb
194
207
  - lib/generators/payola/install_generator.rb
195
208
  - lib/generators/payola/templates/initializer.rb
196
209
  - lib/payola-payments.rb
@@ -215,6 +228,7 @@ files:
215
228
  - spec/dummy/app/controllers/buy_controller.rb
216
229
  - spec/dummy/app/helpers/application_helper.rb
217
230
  - spec/dummy/app/helpers/buy_helper.rb
231
+ - spec/dummy/app/models/owner.rb
218
232
  - spec/dummy/app/models/product.rb
219
233
  - spec/dummy/app/views/buy/index.html.erb
220
234
  - spec/dummy/app/views/layouts/application.html.erb
@@ -244,6 +258,7 @@ files:
244
258
  - spec/dummy/config/secrets.yml
245
259
  - spec/dummy/db/development.sqlite3
246
260
  - spec/dummy/db/migrate/20141001230848_create_products.rb
261
+ - spec/dummy/db/migrate/20141029140518_create_owners.rb
247
262
  - spec/dummy/db/schema.rb
248
263
  - spec/dummy/db/test.sqlite3
249
264
  - spec/dummy/log/development.log
@@ -328,6 +343,7 @@ test_files:
328
343
  - spec/dummy/app/controllers/buy_controller.rb
329
344
  - spec/dummy/app/helpers/application_helper.rb
330
345
  - spec/dummy/app/helpers/buy_helper.rb
346
+ - spec/dummy/app/models/owner.rb
331
347
  - spec/dummy/app/models/product.rb
332
348
  - spec/dummy/app/views/buy/index.html.erb
333
349
  - spec/dummy/app/views/layouts/application.html.erb
@@ -357,6 +373,7 @@ test_files:
357
373
  - spec/dummy/config.ru
358
374
  - spec/dummy/db/development.sqlite3
359
375
  - spec/dummy/db/migrate/20141001230848_create_products.rb
376
+ - spec/dummy/db/migrate/20141029140518_create_owners.rb
360
377
  - spec/dummy/db/schema.rb
361
378
  - spec/dummy/db/test.sqlite3
362
379
  - spec/dummy/log/development.log