workarea-afterpay 2.0.2

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 (120) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +20 -0
  3. data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  4. data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.gitignore +22 -0
  7. data/CHANGELOG.md +161 -0
  8. data/CODE_OF_CONDUCT.md +3 -0
  9. data/CONTRIBUTING.md +3 -0
  10. data/Gemfile +17 -0
  11. data/LICENSE +52 -0
  12. data/README.md +131 -0
  13. data/Rakefile +60 -0
  14. data/app/assets/fonts/workarea/storefront/raleway/raleway_800.woff +0 -0
  15. data/app/assets/fonts/workarea/storefront/raleway/raleway_800.woff2 +0 -0
  16. data/app/assets/fonts/workarea/storefront/raleway/raleway_regular.woff +0 -0
  17. data/app/assets/fonts/workarea/storefront/raleway/raleway_regular.woff2 +0 -0
  18. data/app/assets/images/workarea/storefront/afterpay/afterpay_logo.png +0 -0
  19. data/app/assets/images/workarea/storefront/afterpay/aus/dialog_header_image.png +0 -0
  20. data/app/assets/images/workarea/storefront/afterpay/aus/step_1.png +0 -0
  21. data/app/assets/images/workarea/storefront/afterpay/aus/step_2.png +0 -0
  22. data/app/assets/images/workarea/storefront/afterpay/aus/step_3.png +0 -0
  23. data/app/assets/images/workarea/storefront/afterpay/us/complete_checkout.svg +1 -0
  24. data/app/assets/images/workarea/storefront/afterpay/us/four_equal_payments.svg +1 -0
  25. data/app/assets/images/workarea/storefront/afterpay/us/select_installments.svg +1 -0
  26. data/app/assets/javascripts/workarea/storefront/afterpay/config.js.erb +17 -0
  27. data/app/assets/javascripts/workarea/storefront/afterpay/modules/afterpay_redirect.js +30 -0
  28. data/app/assets/stylesheets/workarea/storefront/components/_afterpay_dialog.scss +158 -0
  29. data/app/controllers/workarea/admin/afterpay/configurations_controller.rb +33 -0
  30. data/app/controllers/workarea/storefront/afterpay_controller.rb +124 -0
  31. data/app/controllers/workarea/storefront/afterpay_dialog_controller.rb +7 -0
  32. data/app/controllers/workarea/storefront/checkout/place_order_controller.decorator +11 -0
  33. data/app/helpers/workarea/storefront/afterpay_helper.rb +16 -0
  34. data/app/models/workarea/afterpay/configuration.rb +16 -0
  35. data/app/models/workarea/order.decorator +17 -0
  36. data/app/models/workarea/payment/afterpay_payment_gateway.rb +16 -0
  37. data/app/models/workarea/payment/authorize/afterpay.rb +7 -0
  38. data/app/models/workarea/payment/capture/afterpay.rb +35 -0
  39. data/app/models/workarea/payment/purchase/afterpay.rb +7 -0
  40. data/app/models/workarea/payment/refund/afterpay.rb +52 -0
  41. data/app/models/workarea/payment/tender/afterpay.rb +18 -0
  42. data/app/models/workarea/payment.decorator +42 -0
  43. data/app/services/workarea/afterpay/order_builder.rb +107 -0
  44. data/app/view_models/workarea/admin/afterpay_configuration_view_model.rb +36 -0
  45. data/app/view_models/workarea/storefront/afterpay_configuration.rb +25 -0
  46. data/app/view_models/workarea/storefront/afterpay_view_model.rb +89 -0
  47. data/app/view_models/workarea/storefront/cart_view_model.decorator +12 -0
  48. data/app/view_models/workarea/storefront/checkout/payment_view_model.decorator +32 -0
  49. data/app/view_models/workarea/storefront/product_view_model.decorator +50 -0
  50. data/app/views/workarea/admin/afterpay/configurations/edit.html.haml +59 -0
  51. data/app/views/workarea/admin/orders/tenders/_afterpay.html.haml +2 -0
  52. data/app/views/workarea/admin/shared/_afterpay_configuration_link.html.haml +1 -0
  53. data/app/views/workarea/storefront/afterpay_dialog/show.html.haml +40 -0
  54. data/app/views/workarea/storefront/afterpay_dialog/show_aus.html.haml +40 -0
  55. data/app/views/workarea/storefront/carts/_afterpay.html.haml +9 -0
  56. data/app/views/workarea/storefront/checkouts/_afterpay_payment.html.haml +17 -0
  57. data/app/views/workarea/storefront/order_mailer/tenders/_afterpay.html.haml +4 -0
  58. data/app/views/workarea/storefront/order_mailer/tenders/_afterpay.text.erb +1 -0
  59. data/app/views/workarea/storefront/orders/tenders/_afterpay.html.haml +5 -0
  60. data/app/views/workarea/storefront/products/_afterpay_pricing.html.haml +3 -0
  61. data/app/views/workarea/storefront/style_guides/components/_afterpay_dialog.html.haml +92 -0
  62. data/bin/rails +19 -0
  63. data/bin/test +5 -0
  64. data/config/initializers/appends.rb +34 -0
  65. data/config/initializers/workarea.rb +17 -0
  66. data/config/locales/en.yml +107 -0
  67. data/config/routes.rb +15 -0
  68. data/four_equal_paymnets.svg +1 -0
  69. data/lib/workarea/afterpay/bogus_gateway.rb +211 -0
  70. data/lib/workarea/afterpay/engine.rb +14 -0
  71. data/lib/workarea/afterpay/gateway.rb +121 -0
  72. data/lib/workarea/afterpay/response.rb +17 -0
  73. data/lib/workarea/afterpay/version.rb +5 -0
  74. data/lib/workarea/afterpay.rb +59 -0
  75. data/test/dummy/Rakefile +6 -0
  76. data/test/dummy/bin/bundle +3 -0
  77. data/test/dummy/bin/rails +4 -0
  78. data/test/dummy/bin/rake +4 -0
  79. data/test/dummy/bin/setup +30 -0
  80. data/test/dummy/bin/update +26 -0
  81. data/test/dummy/bin/yarn +11 -0
  82. data/test/dummy/config/application.rb +30 -0
  83. data/test/dummy/config/boot.rb +5 -0
  84. data/test/dummy/config/cable.yml +10 -0
  85. data/test/dummy/config/environment.rb +5 -0
  86. data/test/dummy/config/environments/development.rb +51 -0
  87. data/test/dummy/config/environments/production.rb +88 -0
  88. data/test/dummy/config/environments/test.rb +44 -0
  89. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  90. data/test/dummy/config/initializers/assets.rb +14 -0
  91. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  92. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  93. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  94. data/test/dummy/config/initializers/inflections.rb +16 -0
  95. data/test/dummy/config/initializers/mime_types.rb +4 -0
  96. data/test/dummy/config/initializers/new_framework_defaults.rb +18 -0
  97. data/test/dummy/config/initializers/session_store.rb +3 -0
  98. data/test/dummy/config/initializers/workarea.rb +5 -0
  99. data/test/dummy/config/initializers/wrap_parameters.rb +9 -0
  100. data/test/dummy/config/locales/en.yml +33 -0
  101. data/test/dummy/config/puma.rb +56 -0
  102. data/test/dummy/config/routes.rb +5 -0
  103. data/test/dummy/config/secrets.yml +32 -0
  104. data/test/dummy/config/spring.rb +6 -0
  105. data/test/dummy/config.ru +5 -0
  106. data/test/dummy/db/seeds.rb +2 -0
  107. data/test/dummy/log/.keep +0 -0
  108. data/test/integration/workarea/storefront/afterpay_integration_test.rb +242 -0
  109. data/test/models/workarea/afterpay_order_test.rb +10 -0
  110. data/test/models/workarea/payment/afterpay_payment_integration_test.rb +67 -0
  111. data/test/services/workarea/afterpay/order_builder_test.rb +88 -0
  112. data/test/system/workarea/storefront/afterpay_product_test.rb +51 -0
  113. data/test/system/workarea/storefront/cart_system_test.decorator +83 -0
  114. data/test/system/workarea/storefront/logged_in_checkout_system_test.decorator +10 -0
  115. data/test/teaspoon_env.rb +6 -0
  116. data/test/test_helper.rb +10 -0
  117. data/test/view_models/workarea/storefront/afterpay_view_model_test.rb +100 -0
  118. data/test/view_models/workarea/storefront/product_view_model_afterpay_test.rb +78 -0
  119. data/workarea-afterpay.gemspec +23 -0
  120. metadata +189 -0
@@ -0,0 +1,78 @@
1
+ require 'test_helper'
2
+
3
+ module Workarea
4
+ class Storefront::ProductViewModelAfterpayTest < TestCase
5
+ def test_show_afterpay
6
+ settings = Workarea::Afterpay::Configuration.create!
7
+
8
+ product = create_product(
9
+ name: 'Test Product',
10
+ variants: [
11
+ { sku: 'SKU', details: { color: 'Pink' }, regular: 100.to_m }
12
+ ]
13
+ )
14
+ vm = Storefront::ProductViewModel.new(product)
15
+ assert(vm.show_afterpay?)
16
+
17
+
18
+ product = create_product(
19
+ name: 'Test Product',
20
+ variants: [
21
+ { sku: 'SKU', details: { color: 'Pink' }, regular: 1.to_m }
22
+ ]
23
+ )
24
+ vm = Storefront::ProductViewModel.new(product)
25
+ refute(vm.show_afterpay?)
26
+
27
+ settings.enabled = false
28
+ settings.save!
29
+
30
+ product = create_product(
31
+ name: 'Test Product 3',
32
+ variants: [
33
+ { sku: 'SKU3', details: { color: 'Pink' }, regular: 100.to_m }
34
+ ]
35
+ )
36
+ vm = Storefront::ProductViewModel.new(product)
37
+ refute(vm.show_afterpay?)
38
+
39
+ settings.enabled = true
40
+ settings.display_on_pdp = false
41
+
42
+ settings.save!
43
+
44
+ product = create_product(
45
+ name: 'Test Product 3',
46
+ variants: [
47
+ { sku: 'SKU3', details: { color: 'Pink' }, regular: 100.to_m }
48
+ ]
49
+ )
50
+ vm = Storefront::ProductViewModel.new(product)
51
+ refute(vm.show_afterpay?)
52
+ end
53
+
54
+ def test_show_afterpay_returns_false_when_no_pricing
55
+ product = create_product(
56
+ name: 'Test Product',
57
+ variants: [
58
+ { sku: 'SKU', details: { color: 'Pink' } }
59
+ ]
60
+ )
61
+
62
+ vm = Storefront::ProductViewModel.new(product)
63
+ refute(vm.show_afterpay?)
64
+ end
65
+
66
+ def test_afterpay_installment_price
67
+ product ||= create_product(
68
+ name: 'Test Product',
69
+ variants: [
70
+ { sku: 'SKU', details: { color: 'Pink' }, regular: 100.to_m }
71
+ ]
72
+ )
73
+ vm = Storefront::ProductViewModel.new(product)
74
+
75
+ assert_equal(25.00.to_m, vm.installment_price)
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,23 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ # Maintain your gem's version:
4
+ require "workarea/afterpay/version"
5
+
6
+ # Describe your gem and declare its dependencies:
7
+ Gem::Specification.new do |s|
8
+ s.name = "workarea-afterpay"
9
+ s.version = Workarea::Afterpay::VERSION
10
+ s.authors = ["Jeff Yucis"]
11
+ s.email = ["jyucis@workarea.com"]
12
+ s.homepage = "https://github.com/workarea-commerce/workarea-afterpay"
13
+ s.summary = "Workarea Commerce Platform Afterpay integration"
14
+ s.description = "Adds Afterpay as a payment method for Workarea Commerce Platform"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+
18
+ s.license = 'Business Software License'
19
+
20
+ s.add_dependency 'workarea', '~> 3.x'
21
+
22
+ s.add_dependency "faraday", "~> 0.10"
23
+ end
metadata ADDED
@@ -0,0 +1,189 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: workarea-afterpay
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Yucis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-08-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: workarea
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.x
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 3.x
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.10'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.10'
41
+ description: Adds Afterpay as a payment method for Workarea Commerce Platform
42
+ email:
43
+ - jyucis@workarea.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".editorconfig"
49
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
50
+ - ".github/ISSUE_TEMPLATE/documentation-request.md"
51
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
52
+ - ".gitignore"
53
+ - CHANGELOG.md
54
+ - CODE_OF_CONDUCT.md
55
+ - CONTRIBUTING.md
56
+ - Gemfile
57
+ - LICENSE
58
+ - README.md
59
+ - Rakefile
60
+ - app/assets/fonts/workarea/storefront/raleway/raleway_800.woff
61
+ - app/assets/fonts/workarea/storefront/raleway/raleway_800.woff2
62
+ - app/assets/fonts/workarea/storefront/raleway/raleway_regular.woff
63
+ - app/assets/fonts/workarea/storefront/raleway/raleway_regular.woff2
64
+ - app/assets/images/workarea/storefront/afterpay/afterpay_logo.png
65
+ - app/assets/images/workarea/storefront/afterpay/aus/dialog_header_image.png
66
+ - app/assets/images/workarea/storefront/afterpay/aus/step_1.png
67
+ - app/assets/images/workarea/storefront/afterpay/aus/step_2.png
68
+ - app/assets/images/workarea/storefront/afterpay/aus/step_3.png
69
+ - app/assets/images/workarea/storefront/afterpay/us/complete_checkout.svg
70
+ - app/assets/images/workarea/storefront/afterpay/us/four_equal_payments.svg
71
+ - app/assets/images/workarea/storefront/afterpay/us/select_installments.svg
72
+ - app/assets/javascripts/workarea/storefront/afterpay/config.js.erb
73
+ - app/assets/javascripts/workarea/storefront/afterpay/modules/afterpay_redirect.js
74
+ - app/assets/stylesheets/workarea/storefront/components/_afterpay_dialog.scss
75
+ - app/controllers/workarea/admin/afterpay/configurations_controller.rb
76
+ - app/controllers/workarea/storefront/afterpay_controller.rb
77
+ - app/controllers/workarea/storefront/afterpay_dialog_controller.rb
78
+ - app/controllers/workarea/storefront/checkout/place_order_controller.decorator
79
+ - app/helpers/workarea/storefront/afterpay_helper.rb
80
+ - app/models/workarea/afterpay/configuration.rb
81
+ - app/models/workarea/order.decorator
82
+ - app/models/workarea/payment.decorator
83
+ - app/models/workarea/payment/afterpay_payment_gateway.rb
84
+ - app/models/workarea/payment/authorize/afterpay.rb
85
+ - app/models/workarea/payment/capture/afterpay.rb
86
+ - app/models/workarea/payment/purchase/afterpay.rb
87
+ - app/models/workarea/payment/refund/afterpay.rb
88
+ - app/models/workarea/payment/tender/afterpay.rb
89
+ - app/services/workarea/afterpay/order_builder.rb
90
+ - app/view_models/workarea/admin/afterpay_configuration_view_model.rb
91
+ - app/view_models/workarea/storefront/afterpay_configuration.rb
92
+ - app/view_models/workarea/storefront/afterpay_view_model.rb
93
+ - app/view_models/workarea/storefront/cart_view_model.decorator
94
+ - app/view_models/workarea/storefront/checkout/payment_view_model.decorator
95
+ - app/view_models/workarea/storefront/product_view_model.decorator
96
+ - app/views/workarea/admin/afterpay/configurations/edit.html.haml
97
+ - app/views/workarea/admin/orders/tenders/_afterpay.html.haml
98
+ - app/views/workarea/admin/shared/_afterpay_configuration_link.html.haml
99
+ - app/views/workarea/storefront/afterpay_dialog/show.html.haml
100
+ - app/views/workarea/storefront/afterpay_dialog/show_aus.html.haml
101
+ - app/views/workarea/storefront/carts/_afterpay.html.haml
102
+ - app/views/workarea/storefront/checkouts/_afterpay_payment.html.haml
103
+ - app/views/workarea/storefront/order_mailer/tenders/_afterpay.html.haml
104
+ - app/views/workarea/storefront/order_mailer/tenders/_afterpay.text.erb
105
+ - app/views/workarea/storefront/orders/tenders/_afterpay.html.haml
106
+ - app/views/workarea/storefront/products/_afterpay_pricing.html.haml
107
+ - app/views/workarea/storefront/style_guides/components/_afterpay_dialog.html.haml
108
+ - bin/rails
109
+ - bin/test
110
+ - config/initializers/appends.rb
111
+ - config/initializers/workarea.rb
112
+ - config/locales/en.yml
113
+ - config/routes.rb
114
+ - four_equal_paymnets.svg
115
+ - lib/workarea/afterpay.rb
116
+ - lib/workarea/afterpay/bogus_gateway.rb
117
+ - lib/workarea/afterpay/engine.rb
118
+ - lib/workarea/afterpay/gateway.rb
119
+ - lib/workarea/afterpay/response.rb
120
+ - lib/workarea/afterpay/version.rb
121
+ - test/dummy/Rakefile
122
+ - test/dummy/bin/bundle
123
+ - test/dummy/bin/rails
124
+ - test/dummy/bin/rake
125
+ - test/dummy/bin/setup
126
+ - test/dummy/bin/update
127
+ - test/dummy/bin/yarn
128
+ - test/dummy/config.ru
129
+ - test/dummy/config/application.rb
130
+ - test/dummy/config/boot.rb
131
+ - test/dummy/config/cable.yml
132
+ - test/dummy/config/environment.rb
133
+ - test/dummy/config/environments/development.rb
134
+ - test/dummy/config/environments/production.rb
135
+ - test/dummy/config/environments/test.rb
136
+ - test/dummy/config/initializers/application_controller_renderer.rb
137
+ - test/dummy/config/initializers/assets.rb
138
+ - test/dummy/config/initializers/backtrace_silencers.rb
139
+ - test/dummy/config/initializers/cookies_serializer.rb
140
+ - test/dummy/config/initializers/filter_parameter_logging.rb
141
+ - test/dummy/config/initializers/inflections.rb
142
+ - test/dummy/config/initializers/mime_types.rb
143
+ - test/dummy/config/initializers/new_framework_defaults.rb
144
+ - test/dummy/config/initializers/session_store.rb
145
+ - test/dummy/config/initializers/workarea.rb
146
+ - test/dummy/config/initializers/wrap_parameters.rb
147
+ - test/dummy/config/locales/en.yml
148
+ - test/dummy/config/puma.rb
149
+ - test/dummy/config/routes.rb
150
+ - test/dummy/config/secrets.yml
151
+ - test/dummy/config/spring.rb
152
+ - test/dummy/db/seeds.rb
153
+ - test/dummy/log/.keep
154
+ - test/integration/workarea/storefront/afterpay_integration_test.rb
155
+ - test/models/workarea/afterpay_order_test.rb
156
+ - test/models/workarea/payment/afterpay_payment_integration_test.rb
157
+ - test/services/workarea/afterpay/order_builder_test.rb
158
+ - test/system/workarea/storefront/afterpay_product_test.rb
159
+ - test/system/workarea/storefront/cart_system_test.decorator
160
+ - test/system/workarea/storefront/logged_in_checkout_system_test.decorator
161
+ - test/teaspoon_env.rb
162
+ - test/test_helper.rb
163
+ - test/view_models/workarea/storefront/afterpay_view_model_test.rb
164
+ - test/view_models/workarea/storefront/product_view_model_afterpay_test.rb
165
+ - workarea-afterpay.gemspec
166
+ homepage: https://github.com/workarea-commerce/workarea-afterpay
167
+ licenses:
168
+ - Business Software License
169
+ metadata: {}
170
+ post_install_message:
171
+ rdoc_options: []
172
+ require_paths:
173
+ - lib
174
+ required_ruby_version: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ required_rubygems_version: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - ">="
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ requirements: []
185
+ rubygems_version: 3.0.4
186
+ signing_key:
187
+ specification_version: 4
188
+ summary: Workarea Commerce Platform Afterpay integration
189
+ test_files: []