spree_affirm 0.2.3
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 +7 -0
- data/.gitignore +15 -0
- data/Gemfile +19 -0
- data/LICENSE +29 -0
- data/README.md +51 -0
- data/Rakefile +15 -0
- data/Versionfile +5 -0
- data/app/assets/javascripts/spree/backend/spree_affirm.js +3 -0
- data/app/assets/javascripts/spree/frontend/spree_affirm.js +2 -0
- data/app/assets/stylesheets/spree/backend/spree_affirm.css +4 -0
- data/app/assets/stylesheets/spree/frontend/spree_affirm.css +4 -0
- data/app/controllers/spree/affirm_controller.rb +68 -0
- data/app/models/spree/affirm_checkout.rb +38 -0
- data/app/models/spree/gateway/affirm.rb +51 -0
- data/app/views/spree/admin/log_entries/_affirm.html.erb +4 -0
- data/app/views/spree/admin/log_entries/index.html.erb +28 -0
- data/app/views/spree/admin/payments/source_forms/_affirm.html.erb +19 -0
- data/app/views/spree/admin/payments/source_views/_affirm.html.erb +12 -0
- data/app/views/spree/checkout/payment/_affirm.html.erb +195 -0
- data/bin/rails +7 -0
- data/config/locales/en.yml +29 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20140514194315_create_affirm_checkout.rb +10 -0
- data/lib/active_merchant/billing/affirm.rb +161 -0
- data/lib/generators/spree_affirm/install/install_generator.rb +21 -0
- data/lib/spree_affirm/engine.rb +27 -0
- data/lib/spree_affirm/factories/affirm_checkout_factory.rb +211 -0
- data/lib/spree_affirm/factories/affirm_payment_method_factory.rb +8 -0
- data/lib/spree_affirm/factories/payment_factory.rb +10 -0
- data/lib/spree_affirm/factories.rb +5 -0
- data/lib/spree_affirm/version.rb +3 -0
- data/lib/spree_affirm.rb +2 -0
- data/spec/controllers/affirm_controller_spec.rb +138 -0
- data/spec/lib/active_merchant/billing/affirm_spec.rb +294 -0
- data/spec/models/affirm_address_validator_spec.rb +13 -0
- data/spec/models/spree_affirm_checkout_spec.rb +328 -0
- data/spec/models/spree_gateway_affirm_spec.rb +134 -0
- data/spec/spec_helper.rb +98 -0
- data/spree_affirm.gemspec +30 -0
- metadata +190 -0
@@ -0,0 +1,134 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Spree::Gateway::Affirm do
|
4
|
+
let(:affirm_payment) { FactoryGirl.create(:affirm_payment) }
|
5
|
+
let(:affirm_checkout) { FactoryGirl.create(:affirm_checkout) }
|
6
|
+
|
7
|
+
describe '#provider_class' do
|
8
|
+
it "returns the Affirm ActiveMerchant class" do
|
9
|
+
expect(affirm_payment.payment_method.provider_class).to be(ActiveMerchant::Billing::Affirm)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe '#payment_source_class' do
|
14
|
+
it "returns the affirm_checkout class" do
|
15
|
+
expect(affirm_payment.payment_method.payment_source_class).to be(Spree::AffirmCheckout)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe '#source_required?' do
|
20
|
+
it "returns true" do
|
21
|
+
expect(affirm_payment.payment_method.source_required?).to be(true)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '#method_type?' do
|
26
|
+
it 'returns "affirm"' do
|
27
|
+
expect(affirm_payment.payment_method.method_type).to eq("affirm")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe '#actions?' do
|
32
|
+
it "retuns capture, void and credit" do
|
33
|
+
expect(affirm_payment.payment_method.actions).to eq(['capture', 'void', 'credit'])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#supports?' do
|
38
|
+
it "returns true if the source is an AffirmCheckout" do
|
39
|
+
expect(affirm_payment.payment_method.supports?(affirm_checkout)).to be(true)
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns false when the source is not an affirm" do
|
43
|
+
expect(affirm_payment.payment_method.supports?(6)).to be(false)
|
44
|
+
expect(affirm_payment.payment_method.supports?(affirm_payment)).to be(false)
|
45
|
+
expect(affirm_payment.payment_method.supports?(Spree::Order.new)).to be(false)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
describe "#cancel" do
|
51
|
+
context "when there is no payment with the given charge_ari" do
|
52
|
+
it "returns nil" do
|
53
|
+
expect(affirm_payment.payment_method.cancel("xxxx-xxxx")).to be(nil)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context "when the payment is in a completed state" do
|
58
|
+
before(:each) do
|
59
|
+
affirm_payment.stub(:completed?).and_return true
|
60
|
+
affirm_payment.state = "completed"
|
61
|
+
affirm_payment.save
|
62
|
+
end
|
63
|
+
|
64
|
+
context "when credit_allowed amount is > 0" do
|
65
|
+
it "calls credit! on the payment with the credit_allowed amount" do
|
66
|
+
Spree::Payment.stub_chain(:valid, :where, :first).and_return(affirm_payment)
|
67
|
+
affirm_payment.stub(:can_credit?).and_return(true)
|
68
|
+
expect(affirm_payment).to receive(:credit!).and_return false
|
69
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
70
|
+
end
|
71
|
+
|
72
|
+
it "creates an adjustment for the -credit_allowed amount" do
|
73
|
+
Spree::Payment.stub_chain(:valid, :where, :first).and_return(affirm_payment)
|
74
|
+
affirm_payment.stub(:can_credit?).and_return(true)
|
75
|
+
expect(affirm_payment).to receive(:credit!).and_return false
|
76
|
+
_payment_amount = affirm_payment.credit_allowed
|
77
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "when credit_allowed amount is 0" do
|
82
|
+
it "does not credit the payment" do
|
83
|
+
Spree::Payment.stub_chain(:valid, :where, :first).and_return(affirm_payment)
|
84
|
+
affirm_payment.stub(:can_credit?).and_return(false)
|
85
|
+
expect(affirm_payment).not_to receive(:credit!)
|
86
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
context "when the payment is in a failed state" do
|
92
|
+
before do
|
93
|
+
affirm_payment.state = "failed"
|
94
|
+
affirm_payment.save
|
95
|
+
end
|
96
|
+
|
97
|
+
it "does nothing" do
|
98
|
+
expect(affirm_payment).not_to receive(:credit!)
|
99
|
+
expect(affirm_payment).not_to receive(:void_transaction!)
|
100
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
context "when the payment is in an invalid state" do
|
105
|
+
before do
|
106
|
+
affirm_payment.state = "invalid"
|
107
|
+
affirm_payment.save
|
108
|
+
end
|
109
|
+
|
110
|
+
it "does nothing" do
|
111
|
+
expect(affirm_payment).not_to receive(:credit!)
|
112
|
+
expect(affirm_payment).not_to receive(:void_transaction!)
|
113
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
|
118
|
+
context "when the payment is in a pending state" do
|
119
|
+
before do
|
120
|
+
affirm_payment.stub(:pending?).and_return true
|
121
|
+
affirm_payment.state = "pending"
|
122
|
+
affirm_payment.save
|
123
|
+
end
|
124
|
+
|
125
|
+
it "voids the transaction" do
|
126
|
+
Spree::Payment.stub_chain(:valid, :where, :first).and_return(affirm_payment)
|
127
|
+
expect(affirm_payment).not_to receive(:credit!)
|
128
|
+
expect(affirm_payment).to receive(:void_transaction!).and_return false
|
129
|
+
affirm_payment.payment_method.cancel affirm_payment.response_code
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# Run Coverage report
|
2
|
+
require 'simplecov'
|
3
|
+
require 'minitest'
|
4
|
+
require 'simplecov-rcov'
|
5
|
+
|
6
|
+
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
|
7
|
+
SimpleCov.start do
|
8
|
+
add_filter 'spec'
|
9
|
+
add_filter 'lib/spree_affirm/factories'
|
10
|
+
add_filter 'bundled'
|
11
|
+
add_group 'Controllers', 'app/controllers'
|
12
|
+
add_group 'Helpers', 'app/helpers'
|
13
|
+
add_group 'Mailers', 'app/mailers'
|
14
|
+
add_group 'Models', 'app/models'
|
15
|
+
add_group 'Views', 'app/views'
|
16
|
+
add_group 'Libraries', 'lib'
|
17
|
+
end
|
18
|
+
|
19
|
+
# Configure Rails Environment
|
20
|
+
ENV['RAILS_ENV'] = 'test'
|
21
|
+
|
22
|
+
require File.expand_path('../dummy/config/environment.rb', __FILE__)
|
23
|
+
|
24
|
+
require 'rspec/rails'
|
25
|
+
require 'database_cleaner'
|
26
|
+
require 'ffaker'
|
27
|
+
|
28
|
+
# Requires supporting ruby files with custom matchers and macros, etc,
|
29
|
+
# in spec/support/ and its subdirectories.
|
30
|
+
Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
|
31
|
+
|
32
|
+
# Requires factories defined in spree_core
|
33
|
+
require 'spree/testing_support/authorization_helpers'
|
34
|
+
require 'spree/testing_support/factories'
|
35
|
+
require 'spree/testing_support/preferences'
|
36
|
+
require 'spree/testing_support/controller_requests'
|
37
|
+
require 'spree/testing_support/flash'
|
38
|
+
require 'spree/testing_support/url_helpers'
|
39
|
+
require 'spree/testing_support/order_walkthrough'
|
40
|
+
require 'spree/testing_support/caching'
|
41
|
+
require "spree/testing_support/i18n"
|
42
|
+
|
43
|
+
|
44
|
+
# Requires factories defined in lib/spree_affirm/factories.rb
|
45
|
+
require 'spree_affirm/factories'
|
46
|
+
|
47
|
+
RSpec.configure do |config|
|
48
|
+
config.include FactoryGirl::Syntax::Methods
|
49
|
+
|
50
|
+
# == URL Helpers
|
51
|
+
#
|
52
|
+
# Allows access to Spree's routes in specs:
|
53
|
+
#
|
54
|
+
# visit spree.admin_path
|
55
|
+
# current_path.should eql(spree.products_path)
|
56
|
+
config.include Spree::TestingSupport::UrlHelpers
|
57
|
+
config.include Spree::TestingSupport::Preferences
|
58
|
+
config.include Spree::TestingSupport::ControllerRequests
|
59
|
+
config.include Spree::TestingSupport::Flash
|
60
|
+
|
61
|
+
|
62
|
+
# == Mock Framework
|
63
|
+
#
|
64
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
65
|
+
#
|
66
|
+
# config.mock_with :mocha
|
67
|
+
# config.mock_with :flexmock
|
68
|
+
# config.mock_with :rr
|
69
|
+
config.mock_with :rspec
|
70
|
+
config.color = true
|
71
|
+
|
72
|
+
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
73
|
+
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
74
|
+
|
75
|
+
# Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
|
76
|
+
# to cleanup after each test instead. Without transactional fixtures set to false the records created
|
77
|
+
# to setup a test will be unavailable to the browser, which runs under a separate server instance.
|
78
|
+
config.use_transactional_fixtures = false
|
79
|
+
|
80
|
+
# Ensure Suite is set to use transactions for speed.
|
81
|
+
config.before :suite do
|
82
|
+
DatabaseCleaner.strategy = :transaction
|
83
|
+
DatabaseCleaner.clean_with :truncation
|
84
|
+
end
|
85
|
+
|
86
|
+
# Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
|
87
|
+
config.before :each do
|
88
|
+
DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
|
89
|
+
DatabaseCleaner.start
|
90
|
+
end
|
91
|
+
|
92
|
+
# After each spec clean the database.
|
93
|
+
config.after :each do
|
94
|
+
DatabaseCleaner.clean
|
95
|
+
end
|
96
|
+
|
97
|
+
config.fail_fast = ENV['FAIL_FAST'] || false
|
98
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "spree_affirm/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.platform = Gem::Platform::RUBY
|
7
|
+
s.name = 'spree_affirm'
|
8
|
+
s.version = SpreeAffirm::VERSION
|
9
|
+
s.summary = 'Affirm Spree Payment Gateway'
|
10
|
+
s.description = 'Affirm payment Gateway for Spree'
|
11
|
+
s.required_ruby_version = '>= 1.9.3'
|
12
|
+
|
13
|
+
s.author = 'Affirm'
|
14
|
+
s.email = 'mts@affirm.com'
|
15
|
+
s.homepage = 'http://www.affirm.com'
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.require_path = 'lib'
|
20
|
+
s.requirements << 'none'
|
21
|
+
|
22
|
+
s.add_dependency 'spree_core', '~> 2.2', '>= 2.2.0'
|
23
|
+
|
24
|
+
s.add_development_dependency 'factory_girl', '~> 4.2'
|
25
|
+
s.add_development_dependency 'ffaker', '~> 1.16'
|
26
|
+
s.add_development_dependency 'rspec-rails', '~> 2.13'
|
27
|
+
s.add_development_dependency 'simplecov', '~> 0.9'
|
28
|
+
s.add_development_dependency 'simplecov-rcov', '~> 0.2'
|
29
|
+
s.add_development_dependency 'sqlite3', '~> 1.3'
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: spree_affirm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Affirm
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-04-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: spree_core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.2'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.2.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '2.2'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.2.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: factory_girl
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '4.2'
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '4.2'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: ffaker
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.16'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.16'
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec-rails
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '2.13'
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2.13'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: simplecov
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0.9'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0.9'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: simplecov-rcov
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0.2'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0.2'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: sqlite3
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '1.3'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - "~>"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '1.3'
|
117
|
+
description: Affirm payment Gateway for Spree
|
118
|
+
email: mts@affirm.com
|
119
|
+
executables: []
|
120
|
+
extensions: []
|
121
|
+
extra_rdoc_files: []
|
122
|
+
files:
|
123
|
+
- ".gitignore"
|
124
|
+
- Gemfile
|
125
|
+
- LICENSE
|
126
|
+
- README.md
|
127
|
+
- Rakefile
|
128
|
+
- Versionfile
|
129
|
+
- app/assets/javascripts/spree/backend/spree_affirm.js
|
130
|
+
- app/assets/javascripts/spree/frontend/spree_affirm.js
|
131
|
+
- app/assets/stylesheets/spree/backend/spree_affirm.css
|
132
|
+
- app/assets/stylesheets/spree/frontend/spree_affirm.css
|
133
|
+
- app/controllers/spree/affirm_controller.rb
|
134
|
+
- app/models/spree/affirm_checkout.rb
|
135
|
+
- app/models/spree/gateway/affirm.rb
|
136
|
+
- app/views/spree/admin/log_entries/_affirm.html.erb
|
137
|
+
- app/views/spree/admin/log_entries/index.html.erb
|
138
|
+
- app/views/spree/admin/payments/source_forms/_affirm.html.erb
|
139
|
+
- app/views/spree/admin/payments/source_views/_affirm.html.erb
|
140
|
+
- app/views/spree/checkout/payment/_affirm.html.erb
|
141
|
+
- bin/rails
|
142
|
+
- config/locales/en.yml
|
143
|
+
- config/routes.rb
|
144
|
+
- db/migrate/20140514194315_create_affirm_checkout.rb
|
145
|
+
- lib/active_merchant/billing/affirm.rb
|
146
|
+
- lib/generators/spree_affirm/install/install_generator.rb
|
147
|
+
- lib/spree_affirm.rb
|
148
|
+
- lib/spree_affirm/engine.rb
|
149
|
+
- lib/spree_affirm/factories.rb
|
150
|
+
- lib/spree_affirm/factories/affirm_checkout_factory.rb
|
151
|
+
- lib/spree_affirm/factories/affirm_payment_method_factory.rb
|
152
|
+
- lib/spree_affirm/factories/payment_factory.rb
|
153
|
+
- lib/spree_affirm/version.rb
|
154
|
+
- spec/controllers/affirm_controller_spec.rb
|
155
|
+
- spec/lib/active_merchant/billing/affirm_spec.rb
|
156
|
+
- spec/models/affirm_address_validator_spec.rb
|
157
|
+
- spec/models/spree_affirm_checkout_spec.rb
|
158
|
+
- spec/models/spree_gateway_affirm_spec.rb
|
159
|
+
- spec/spec_helper.rb
|
160
|
+
- spree_affirm.gemspec
|
161
|
+
homepage: http://www.affirm.com
|
162
|
+
licenses: []
|
163
|
+
metadata: {}
|
164
|
+
post_install_message:
|
165
|
+
rdoc_options: []
|
166
|
+
require_paths:
|
167
|
+
- lib
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 1.9.3
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
requirements:
|
179
|
+
- none
|
180
|
+
rubygems_version: 3.1.2
|
181
|
+
signing_key:
|
182
|
+
specification_version: 4
|
183
|
+
summary: Affirm Spree Payment Gateway
|
184
|
+
test_files:
|
185
|
+
- spec/controllers/affirm_controller_spec.rb
|
186
|
+
- spec/lib/active_merchant/billing/affirm_spec.rb
|
187
|
+
- spec/models/affirm_address_validator_spec.rb
|
188
|
+
- spec/models/spree_affirm_checkout_spec.rb
|
189
|
+
- spec/models/spree_gateway_affirm_spec.rb
|
190
|
+
- spec/spec_helper.rb
|