govuk-pay-api-client 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -25
- data/lib/govuk_pay_api_client/version.rb +1 -1
- metadata +1 -3
- data/lib/tasks/spec_setup.rake +0 -11
- data/shared_examples/shared_examples_for_govpay.rb +0 -164
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e732d71a1639aade11e5fd80d94d40cc323d7c8e
|
4
|
+
data.tar.gz: 6427e2344c1f0c97b6e31844dc7d5781940cbae5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce803a91eb8e68cf276c0900406f7b05a1ecaef29bc6e0b66eb3d6a797a20f732c531e8c7409cc23d2ce55e9b99703a7f88e61f5c6921def29619aa54a231b78
|
7
|
+
data.tar.gz: 3256f874884a02c3664ad920083ac1baa55d3861c63a3614cca5565d31ed41762d5b5e4480b3536bc18cabb9b4aded2764984b9f78123de1dfcde011e6d3bb0c
|
data/README.md
CHANGED
@@ -73,31 +73,6 @@ Or install it yourself as:
|
|
73
73
|
Run `bundle rake` in the gem source directory for a full set of specs,
|
74
74
|
mutation tests and rubocop checks.
|
75
75
|
|
76
|
-
### Shared examples
|
77
|
-
|
78
|
-
The gem can install a set of shared examples in your app that will stub
|
79
|
-
a sensible set of API calls using Excon’s stubbing functionality. To
|
80
|
-
install these, install the gem, make sure you have the `spec/support`
|
81
|
-
subdirectory then run:
|
82
|
-
|
83
|
-
```ruby
|
84
|
-
bundle exec rake govuk_pay_api_client:install_shared_examples
|
85
|
-
```
|
86
|
-
|
87
|
-
This will install `spec/support/shared_examples_for_govpay.rb`.
|
88
|
-
|
89
|
-
Lastly, add these lines to `spec/rails_helper`:
|
90
|
-
|
91
|
-
```ruby
|
92
|
-
config.before(:all) do
|
93
|
-
Excon.defaults[:mock] = true
|
94
|
-
end
|
95
|
-
|
96
|
-
config.after(:each) do
|
97
|
-
Excon.stubs.clear
|
98
|
-
end
|
99
|
-
```
|
100
|
-
|
101
76
|
## Contributing
|
102
77
|
|
103
78
|
Fork, then clone the repo:
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk-pay-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Tyree
|
@@ -190,8 +190,6 @@ files:
|
|
190
190
|
- lib/govuk_pay_api_client/version.rb
|
191
191
|
- lib/tasks/mutant.rake
|
192
192
|
- lib/tasks/rubocop.rake
|
193
|
-
- lib/tasks/spec_setup.rake
|
194
|
-
- shared_examples/shared_examples_for_govpay.rb
|
195
193
|
homepage: https://github.com/ministryofjustice/govuk-pay-api-client/
|
196
194
|
licenses:
|
197
195
|
- MIT
|
data/lib/tasks/spec_setup.rake
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
namespace :govuk_pay_api_client do
|
2
|
-
desc 'Copy the shared examples for govuk pay api rspec testing'
|
3
|
-
task :install_shared_examples
|
4
|
-
source = File.join(
|
5
|
-
Gem.loaded_specs['govuk-pay-api-client'].full_gem_path,
|
6
|
-
'shared_examples',
|
7
|
-
'shared_examples_for_govpay.rb'
|
8
|
-
)
|
9
|
-
target = File.join(Rails.root, 'spec', 'support', 'shared_examples_for_govpay.rb')
|
10
|
-
FileUtils.cp_r source, target
|
11
|
-
end
|
@@ -1,164 +0,0 @@
|
|
1
|
-
module GovpayExample
|
2
|
-
module Mocks
|
3
|
-
def a_create_payment_timeout
|
4
|
-
class_double(Excon, 'create payment timeout').tap { |ex|
|
5
|
-
expect(ex).to receive(:post).and_raise(Excon::Errors::Timeout)
|
6
|
-
}
|
7
|
-
end
|
8
|
-
|
9
|
-
def a_payment_status_timeout
|
10
|
-
class_double(Excon, 'create payment timeout').tap { |ex|
|
11
|
-
expect(ex).to receive(:get).and_raise(Excon::Errors::Timeout)
|
12
|
-
}
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
module Responses
|
17
|
-
def initial_payment_response(payment_id = 'rmpaurrjuehgpvtqg997bt50f')
|
18
|
-
{
|
19
|
-
'payment_id' => payment_id,
|
20
|
-
'payment_provider' => 'sandbox',
|
21
|
-
'amount' => 2000,
|
22
|
-
'state' => {
|
23
|
-
'status' => 'created',
|
24
|
-
'finished' => false
|
25
|
-
},
|
26
|
-
'description' => 'TC/2016/00001 - Lodgement Fee',
|
27
|
-
'return_url' => 'https://www-integration-2.pymnt.uk/liabilities/960eb61a-a592-4e79-a5f8-c35cde24352a/post_pay',
|
28
|
-
'reference' => '7G20160718180649',
|
29
|
-
'created_date' => '2016-07-18T17:06:53.172Z',
|
30
|
-
'_links' => {
|
31
|
-
'self' => {
|
32
|
-
'href' => 'https://publicapi.pymnt.uk/v1/payments/rmpaurrjuehgpvtqg997bt50fm',
|
33
|
-
'method' => 'GET'
|
34
|
-
},
|
35
|
-
'next_url' => {
|
36
|
-
'href' => 'https://www-integration-2.pymnt.uk/secure/94b35000-37f2-44e6-a2f5-c0193ca1e98a',
|
37
|
-
'method' => 'GET'
|
38
|
-
}
|
39
|
-
}
|
40
|
-
}.to_json
|
41
|
-
end
|
42
|
-
|
43
|
-
def post_pay_response
|
44
|
-
{
|
45
|
-
'payment_id' => 'oio28jhr7mj6rqc9g12pff2i44',
|
46
|
-
'payment_provider' => 'sandbox', 'amount' => 2000,
|
47
|
-
'state' => {
|
48
|
-
'status' => 'success',
|
49
|
-
'finished' => true
|
50
|
-
},
|
51
|
-
'description' => 'TC/2016/00001 - Lodgement Fee',
|
52
|
-
'return_url' => 'https://www-integration-2.pymnt.uk/liabilities/7f475fde-b509-4612-bffb-e2dac0066f4c/post_pay',
|
53
|
-
'reference' => '7G20160725115358',
|
54
|
-
'created_date' => '2016-07-25T10:54:00.294Z',
|
55
|
-
'_links' => {
|
56
|
-
'self' => {
|
57
|
-
'href' => 'https://publicapi.pymnt.uk/v1/payments/oio28jhr7mj6rqc9g12pff2i44',
|
58
|
-
'method' => 'GET'
|
59
|
-
},
|
60
|
-
'next_url' => nil,
|
61
|
-
'next_url_post' => nil,
|
62
|
-
'events' => {
|
63
|
-
'href' => 'https://publicapi.pymnt.uk/v1/payments/oio28jhr7mj6rqc9g12pff2i44/events',
|
64
|
-
'method' => 'GET'
|
65
|
-
},
|
66
|
-
'cancel' => nil
|
67
|
-
}
|
68
|
-
}.to_json
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
RSpec.shared_examples 'govpay payment response' do |fee, govpay_payment_id|
|
74
|
-
include GovpayExample::Responses
|
75
|
-
|
76
|
-
let(:request_body) {
|
77
|
-
{
|
78
|
-
return_url: 'the_return_url',
|
79
|
-
description: fee.description,
|
80
|
-
reference: fee.govpay_reference,
|
81
|
-
amount: fee.amount
|
82
|
-
}.to_json
|
83
|
-
}
|
84
|
-
|
85
|
-
before do
|
86
|
-
Excon.stub(
|
87
|
-
{
|
88
|
-
method: :post,
|
89
|
-
host: 'govpay-test.dsd.io',
|
90
|
-
body: request_body,
|
91
|
-
path: '/payments'
|
92
|
-
},
|
93
|
-
status: 201, body: initial_payment_response(govpay_payment_id)
|
94
|
-
)
|
95
|
-
|
96
|
-
Excon.stub(
|
97
|
-
{
|
98
|
-
method: :get,
|
99
|
-
host: 'govpay-test.dsd.io',
|
100
|
-
path: "/payments/#{govpay_payment_id}"
|
101
|
-
},
|
102
|
-
status: 200, body: post_pay_response
|
103
|
-
)
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
RSpec.shared_examples 'govpay returns a 404' do |fee|
|
108
|
-
|
109
|
-
let(:request_body) {
|
110
|
-
{
|
111
|
-
return_url: 'the_return_url',
|
112
|
-
description: fee.description,
|
113
|
-
reference: fee.govpay_reference,
|
114
|
-
amount: fee.amount
|
115
|
-
}.to_json
|
116
|
-
}
|
117
|
-
|
118
|
-
before do
|
119
|
-
Excon.stub(
|
120
|
-
{
|
121
|
-
method: :post,
|
122
|
-
host: 'govpay-test.dsd.io',
|
123
|
-
body: request_body,
|
124
|
-
path: '/payments'
|
125
|
-
},
|
126
|
-
status: 404
|
127
|
-
)
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
RSpec.shared_examples 'govpay post_pay returns a 500' do |govpay_payment_id|
|
132
|
-
before do
|
133
|
-
Excon.stub(
|
134
|
-
{
|
135
|
-
method: :get,
|
136
|
-
host: 'govpay-test.dsd.io',
|
137
|
-
path: "/payments/#{govpay_payment_id}"
|
138
|
-
},
|
139
|
-
status: 500, body: '{"message":"Govpay is not working"}'
|
140
|
-
)
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
RSpec.shared_examples 'govpay payment status times out' do
|
145
|
-
include GovpayExample::Responses
|
146
|
-
include GovpayExample::Mocks
|
147
|
-
|
148
|
-
before do
|
149
|
-
expect(Excon).to receive(:new).
|
150
|
-
and_return(
|
151
|
-
a_payment_status_timeout
|
152
|
-
)
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
RSpec.shared_examples 'govpay create payment times out' do
|
157
|
-
include GovpayExample::Responses
|
158
|
-
include GovpayExample::Mocks
|
159
|
-
|
160
|
-
before do
|
161
|
-
expect(Excon).to receive(:new).
|
162
|
-
and_return(a_create_payment_timeout)
|
163
|
-
end
|
164
|
-
end
|