payola-payments 1.0.8 → 1.1.0

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 (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