gocardless 1.11.2 → 1.12.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.
@@ -10,7 +10,7 @@ describe GoCardless do
10
10
 
11
11
  describe ".account_details=" do
12
12
  it "creates a Client instance" do
13
- GoCardless::Client.should_receive :new
13
+ expect(GoCardless::Client).to receive :new
14
14
  subject.account_details = @details
15
15
  end
16
16
 
@@ -21,12 +21,30 @@ describe GoCardless do
21
21
  end
22
22
  end
23
23
 
24
+ describe ".environment=" do
25
+ subject(:method) { -> { GoCardless.environment = gc_env } }
26
+
27
+ context "with a valid environment" do
28
+ let(:gc_env) { :production }
29
+ it { is_expected.to_not raise_error }
30
+ it 'sets the environment' do
31
+ method.call
32
+ expect(GoCardless.environment).to eq(gc_env)
33
+ end
34
+ end
35
+
36
+ context "with an invalid environment" do
37
+ let(:gc_env) { :foobar }
38
+ it { is_expected.to raise_error }
39
+ end
40
+ end
41
+
24
42
 
25
43
  describe "delegated methods" do
26
44
  %w(new_subscription_url new_pre_authorization_url new_bill_url confirm_resource webhook_valid?).each do |name|
27
45
  it "#{name} delegates to @client" do
28
46
  subject.account_details = @details
29
- subject.instance_variable_get(:@client).should_receive(name.to_sym)
47
+ expect(subject.instance_variable_get(:@client)).to receive(name.to_sym)
30
48
  subject.send(name)
31
49
  end
32
50
 
data/spec/page_spec.rb CHANGED
@@ -14,12 +14,12 @@ describe GoCardless::Page do
14
14
 
15
15
  context "when there is next page available" do
16
16
  let(:links) {{ "next" => 2, "last" => 2 }}
17
- it { should be_truthy }
17
+ it { is_expected.to be_truthy }
18
18
  end
19
19
 
20
20
  context "when there is no next page" do
21
21
  let(:links) {{ "previous" => 1, "first" => 1 }}
22
- it { should be_falsey }
22
+ it { is_expected.to be_falsey }
23
23
  end
24
24
  end
25
25
 
@@ -28,12 +28,12 @@ describe GoCardless::Page do
28
28
 
29
29
  context "when there is next page available" do
30
30
  let(:links) {{ "next" => 2, "last" => 2 }}
31
- it { should == 2 }
31
+ it { is_expected.to eq(2) }
32
32
  end
33
33
 
34
34
  context "when there is no next page" do
35
35
  let(:links) {{ "previous" => 1, "first" => 1 }}
36
- it { should be_nil }
36
+ it { is_expected.to be_nil }
37
37
  end
38
38
  end
39
39
 
@@ -42,12 +42,12 @@ describe GoCardless::Page do
42
42
 
43
43
  context "when there is previous page available" do
44
44
  let(:links) {{ "previous" => 1, "first" => 1 }}
45
- it { should == 1 }
45
+ it { is_expected.to eq(1) }
46
46
  end
47
47
 
48
48
  context "when there is no previous page" do
49
49
  let(:links) {{ "next" => 2, "last" => 2 }}
50
- it { should be_nil }
50
+ it { is_expected.to be_nil }
51
51
  end
52
52
  end
53
53
 
@@ -56,12 +56,12 @@ describe GoCardless::Page do
56
56
 
57
57
  context "when there is first page available" do
58
58
  let(:links) {{ "first" => 1, "previous" => 1 }}
59
- it { should == 1 }
59
+ it { is_expected.to eq(1) }
60
60
  end
61
61
 
62
62
  context "when there is no first page" do
63
63
  let(:links) {{ "next" => 2, "last" => 2 }}
64
- it { should be_nil }
64
+ it { is_expected.to be_nil }
65
65
  end
66
66
  end
67
67
 
@@ -70,12 +70,12 @@ describe GoCardless::Page do
70
70
 
71
71
  context "when there is last page available" do
72
72
  let(:links) {{ "next" => 2, "last" => 2 }}
73
- it { should == 2 }
73
+ it { is_expected.to eq(2) }
74
74
  end
75
75
 
76
76
  context "when there is no last page" do
77
77
  let(:links) {{ "previous" => 1, "first" => 1 }}
78
- it { should be_nil }
78
+ it { is_expected.to be_nil }
79
79
  end
80
80
  end
81
81
 
@@ -86,7 +86,7 @@ describe GoCardless::Page do
86
86
  end
87
87
 
88
88
  it "properly initialises the resources" do
89
- page.map(&:id).should == ['a', 'b']
89
+ expect(page.map(&:id)).to eq(['a', 'b'])
90
90
  end
91
91
  end
92
92
  end
@@ -19,7 +19,7 @@ describe GoCardless::Paginator do
19
19
  let(:response_p2) { double(:headers => headers_p2, :parsed => [{:id => 'b'}]) }
20
20
 
21
21
  let(:client) { double('client') }
22
- before { client.stub(:api_request).and_return(response_p1, response_p2,
22
+ before { allow(client).to receive(:api_request).and_return(response_p1, response_p2,
23
23
  response_p1, response_p2) }
24
24
 
25
25
  let(:paginator) { described_class.new(client, resource_class, path, query) }
@@ -28,17 +28,17 @@ describe GoCardless::Paginator do
28
28
  describe "#per_page" do
29
29
  context "given no arguments" do
30
30
  subject { paginator.per_page }
31
- it { should == per_page }
31
+ it { is_expected.to eq(per_page) }
32
32
  end
33
33
 
34
34
  context "given an argument" do
35
35
  it "is chainable" do
36
- paginator.per_page(60).should == paginator
36
+ expect(paginator.per_page(60)).to eq(paginator)
37
37
  end
38
38
  end
39
39
 
40
40
  it "resets pagination metadata" do
41
- paginator.should_receive(:load_page).exactly(2).times
41
+ expect(paginator).to receive(:load_page).exactly(2).times
42
42
  paginator.count # reset metadata, check that we have to reload it
43
43
  paginator.per_page(50)
44
44
  paginator.count
@@ -47,7 +47,7 @@ describe GoCardless::Paginator do
47
47
 
48
48
  describe "#load_page" do
49
49
  it "asks the client for the correct path" do
50
- client.should_receive(:api_request).
50
+ expect(client).to receive(:api_request).
51
51
  with(:get, '/test', anything).
52
52
  and_return(response_p1)
53
53
  paginator.page(page_number)
@@ -55,9 +55,9 @@ describe GoCardless::Paginator do
55
55
 
56
56
  it "passes the correct pagination parameters through" do
57
57
  pagination_params = { :page => page_number, :per_page => per_page }
58
- client.should_receive(:api_request) do |_, _, opts|
59
- opts[:params].should include pagination_params
60
- end.and_return(response_p1)
58
+ expect(client).to receive(:api_request) { |_, _, opts|
59
+ expect(opts[:params]).to include pagination_params
60
+ }.and_return(response_p1)
61
61
  paginator.page(page_number)
62
62
  end
63
63
  end
@@ -89,19 +89,19 @@ describe GoCardless::Paginator do
89
89
  context "when metadata is loaded" do
90
90
  before { paginator.page(1) }
91
91
 
92
- it { should == 15 }
92
+ it { is_expected.to eq(15) }
93
93
 
94
94
  it "doesn't reload metadata" do
95
- paginator.should_not_receive(:load_page)
95
+ expect(paginator).not_to receive(:load_page)
96
96
  paginator.count
97
97
  end
98
98
  end
99
99
 
100
100
  context "when metadata is not loaded" do
101
- it { should == 15 }
101
+ it { is_expected.to eq(15) }
102
102
 
103
103
  it "loads metadata" do
104
- paginator.should_receive(:load_page)
104
+ expect(paginator).to receive(:load_page)
105
105
  paginator.count
106
106
  end
107
107
  end
@@ -113,19 +113,19 @@ describe GoCardless::Paginator do
113
113
  context "when metadata is loaded" do
114
114
  before { paginator.page(1) }
115
115
 
116
- it { should == 2 }
116
+ it { is_expected.to eq(2) }
117
117
 
118
118
  it "doesn't reload metadata" do
119
- paginator.should_not_receive(:load_page)
119
+ expect(paginator).not_to receive(:load_page)
120
120
  paginator.page_count
121
121
  end
122
122
  end
123
123
 
124
124
  context "when metadata is not loaded" do
125
- it { should == 2 }
125
+ it { is_expected.to eq(2) }
126
126
 
127
127
  it "loads metadata" do
128
- paginator.should_receive(:load_page)
128
+ expect(paginator).to receive(:load_page)
129
129
  paginator.page_count
130
130
  end
131
131
  end
@@ -9,7 +9,7 @@ describe GoCardless::PreAuthorization do
9
9
  let(:preauth) { GoCardless::PreAuthorization.new(:id => '009988') }
10
10
 
11
11
  it "should be cancellable" do
12
- client.should_receive(:api_put).with('/pre_authorizations/009988/cancel')
12
+ expect(client).to receive(:api_put).with('/pre_authorizations/009988/cancel')
13
13
  preauth.cancel!
14
14
  end
15
15
 
@@ -7,7 +7,7 @@ describe GoCardless::Resource do
7
7
  end
8
8
  props = {:id => 1, :name => 'test', :uri => 'http://test'}
9
9
  resource = test_resource.new(props)
10
- props.each { |k,v| resource.send(k).should == v }
10
+ props.each { |k,v| expect(resource.send(k)).to eq(v) }
11
11
  end
12
12
 
13
13
  describe "#date_writer" do
@@ -16,16 +16,16 @@ describe GoCardless::Resource do
16
16
  end
17
17
 
18
18
  describe "creates date writers" do
19
- specify { test_resource.instance_methods.map(&:to_sym).should include :created_at= }
20
- specify { test_resource.instance_methods.map(&:to_sym).should include :modified_at= }
19
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :created_at= }
20
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :modified_at= }
21
21
  end
22
22
 
23
23
  it "date writers work properly" do
24
24
  time = '2011-12-12T12:00:00Z'
25
25
  resource = test_resource.new(:created_at => time)
26
26
  date_time = resource.instance_variable_get(:@created_at)
27
- date_time.should be_instance_of DateTime
28
- date_time.strftime('%Y-%m-%dT%H:%M:%SZ').should == time
27
+ expect(date_time).to be_instance_of DateTime
28
+ expect(date_time.strftime('%Y-%m-%dT%H:%M:%SZ')).to eq(time)
29
29
  end
30
30
  end
31
31
 
@@ -35,17 +35,17 @@ describe GoCardless::Resource do
35
35
  end
36
36
 
37
37
  describe "creates date readers and writers" do
38
- specify { test_resource.instance_methods.map(&:to_sym).should include :created_at= }
39
- specify { test_resource.instance_methods.map(&:to_sym).should include :created_at }
40
- specify { test_resource.instance_methods.map(&:to_sym).should include :modified_at= }
41
- specify { test_resource.instance_methods.map(&:to_sym).should include :modified_at }
38
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :created_at= }
39
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :created_at }
40
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :modified_at= }
41
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :modified_at }
42
42
  end
43
43
 
44
44
  it "date readers work properly" do
45
45
  resource = test_resource.new
46
46
  date = DateTime.now
47
47
  resource.instance_variable_set(:@created_at, date)
48
- resource.created_at.should == date
48
+ expect(resource.created_at).to eq(date)
49
49
  end
50
50
  end
51
51
 
@@ -56,10 +56,10 @@ describe GoCardless::Resource do
56
56
 
57
57
  it "instantiates the correct object" do
58
58
  mock_client = double
59
- mock_client.should_receive(:api_get).and_return({:id => 123})
59
+ expect(mock_client).to receive(:api_get).and_return({:id => 123})
60
60
  resource = test_resource.find_with_client(mock_client, 123)
61
- resource.should be_a test_resource
62
- resource.id.should == 123
61
+ expect(resource).to be_a test_resource
62
+ expect(resource.id).to eq(123)
63
63
  end
64
64
  end
65
65
 
@@ -69,8 +69,8 @@ describe GoCardless::Resource do
69
69
  end
70
70
 
71
71
  it "calls find with the default client" do
72
- GoCardless.stub(:client => double)
73
- test_resource.should_receive(:find_with_client).with(GoCardless.client, 1)
72
+ allow(GoCardless).to receive_messages(:client => double)
73
+ expect(test_resource).to receive(:find_with_client).with(GoCardless.client, 1)
74
74
  test_resource.find(1)
75
75
  unset_ivar GoCardless, :client
76
76
  end
@@ -86,16 +86,16 @@ describe GoCardless::Resource do
86
86
  end
87
87
 
88
88
  describe "creates reference writers" do
89
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant= }
90
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant_id= }
91
- specify { test_resource.instance_methods.map(&:to_sym).should include :user= }
92
- specify { test_resource.instance_methods.map(&:to_sym).should include :user_id= }
89
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant= }
90
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant_id= }
91
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user= }
92
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user_id= }
93
93
  end
94
94
 
95
95
  it "direct assignment methods work properly" do
96
96
  resource = test_resource.new
97
97
  resource.user = GoCardless::User.new(:id => 123)
98
- resource.instance_variable_get(:@user_id).should == 123
98
+ expect(resource.instance_variable_get(:@user_id)).to eq(123)
99
99
  end
100
100
 
101
101
  it "requires args to end with _id" do
@@ -124,10 +124,10 @@ describe GoCardless::Resource do
124
124
  end
125
125
 
126
126
  describe "creates reference readers" do
127
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant }
128
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant_id }
129
- specify { test_resource.instance_methods.map(&:to_sym).should include :user }
130
- specify { test_resource.instance_methods.map(&:to_sym).should include :user_id }
127
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant }
128
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant_id }
129
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user }
130
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user_id }
131
131
  end
132
132
 
133
133
  it "lookup methods work properly" do
@@ -137,8 +137,8 @@ describe GoCardless::Resource do
137
137
  @client.merchant_id = '123'
138
138
  stub_get(@client, {:id => 123})
139
139
  user = resource.user
140
- user.should be_a GoCardless::User
141
- user.id.should == 123
140
+ expect(user).to be_a GoCardless::User
141
+ expect(user.id).to eq(123)
142
142
  end
143
143
 
144
144
  it "requires args to end with _id" do
@@ -158,20 +158,20 @@ describe GoCardless::Resource do
158
158
  end
159
159
 
160
160
  describe "creates reference readers and writers" do
161
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant }
162
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant_id }
163
- specify { test_resource.instance_methods.map(&:to_sym).should include :user }
164
- specify { test_resource.instance_methods.map(&:to_sym).should include :user_id }
165
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant= }
166
- specify { test_resource.instance_methods.map(&:to_sym).should include :merchant_id= }
167
- specify { test_resource.instance_methods.map(&:to_sym).should include :user= }
168
- specify { test_resource.instance_methods.map(&:to_sym).should include :user_id= }
161
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant }
162
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant_id }
163
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user }
164
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user_id }
165
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant= }
166
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :merchant_id= }
167
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user= }
168
+ specify { expect(test_resource.instance_methods.map(&:to_sym)).to include :user_id= }
169
169
  end
170
170
  end
171
171
 
172
172
  it "#persisted? works" do
173
- GoCardless::Resource.new.persisted?.should be_falsey
174
- GoCardless::Resource.new(:id => 1).persisted?.should be_truthy
173
+ expect(GoCardless::Resource.new.persisted?).to be_falsey
174
+ expect(GoCardless::Resource.new(:id => 1).persisted?).to be_truthy
175
175
  end
176
176
 
177
177
  describe "#save" do
@@ -193,28 +193,28 @@ describe GoCardless::Resource do
193
193
  client = double
194
194
  data = {:x => 1, :y => 2}
195
195
  resource = @test_resource.new_with_client(client, data)
196
- client.should_receive(:api_post).with(anything, data)
196
+ expect(client).to receive(:api_post).with(anything, data)
197
197
  resource.save
198
198
  end
199
199
 
200
200
  it "sends the correct path" do
201
201
  client = double
202
202
  resource = @test_resource.new_with_client(client)
203
- client.should_receive(:api_post).with('/test', anything)
203
+ expect(client).to receive(:api_post).with('/test', anything)
204
204
  resource.save
205
205
  end
206
206
 
207
207
  it "POSTs when not persisted" do
208
208
  client = double
209
209
  resource = @test_resource.new_with_client(client)
210
- client.should_receive(:api_post)
210
+ expect(client).to receive(:api_post)
211
211
  resource.save
212
212
  end
213
213
 
214
214
  it "PUTs when already persisted" do
215
215
  client = double
216
216
  resource = @test_resource.new_with_client(client, :id => 1)
217
- client.should_receive(:api_put)
217
+ expect(client).to receive(:api_put)
218
218
  resource.save
219
219
  end
220
220
  end
@@ -263,7 +263,7 @@ describe GoCardless::Resource do
263
263
 
264
264
  attrs = {:id => 1, :uri => 'http:', :x => 'y'}
265
265
  resource = test_resource.new_with_client(double, attrs)
266
- resource.to_hash.should == attrs
266
+ expect(resource.to_hash).to eq(attrs)
267
267
  end
268
268
 
269
269
  it "#to_json converts to the correct JSON format" do
@@ -281,15 +281,15 @@ describe GoCardless::Resource do
281
281
  })
282
282
 
283
283
  result = MultiJson.decode(bill.to_json)
284
- result['amount'].should == bill.amount
285
- result['when'].should == time_str
286
- result['person_id'].should == 15
284
+ expect(result['amount']).to eq(bill.amount)
285
+ expect(result['when']).to eq(time_str)
286
+ expect(result['person_id']).to eq(15)
287
287
  end
288
288
 
289
289
  describe "resource permissions" do
290
290
  it "are not given by default" do
291
- GoCardless::Resource.creatable?.should be_falsey
292
- GoCardless::Resource.updatable?.should be_falsey
291
+ expect(GoCardless::Resource.creatable?).to be_falsey
292
+ expect(GoCardless::Resource.updatable?).to be_falsey
293
293
  end
294
294
 
295
295
  it "are present when specified" do
@@ -301,14 +301,14 @@ describe GoCardless::Resource do
301
301
  updatable
302
302
  end
303
303
 
304
- CreatableResource.creatable?.should be_truthy
305
- CreatableResource.updatable?.should be_falsey
304
+ expect(CreatableResource.creatable?).to be_truthy
305
+ expect(CreatableResource.updatable?).to be_falsey
306
306
 
307
- UpdatableResource.creatable?.should be_falsey
308
- UpdatableResource.updatable?.should be_truthy
307
+ expect(UpdatableResource.creatable?).to be_falsey
308
+ expect(UpdatableResource.updatable?).to be_truthy
309
309
 
310
- GoCardless::Resource.creatable?.should be_falsey
311
- GoCardless::Resource.updatable?.should be_falsey
310
+ expect(GoCardless::Resource.creatable?).to be_falsey
311
+ expect(GoCardless::Resource.updatable?).to be_falsey
312
312
  end
313
313
  end
314
314
 
@@ -324,31 +324,31 @@ describe GoCardless::Resource do
324
324
 
325
325
  it "are defined on instances" do
326
326
  r = test_resource.new(@attrs)
327
- r.should respond_to :bills
327
+ expect(r).to respond_to :bills
328
328
  end
329
329
 
330
330
  it "aren't defined for other instances of the class" do
331
331
  test_resource.new(@attrs)
332
332
  resource = test_resource.new
333
- resource.should_not respond_to :bills
333
+ expect(resource).not_to respond_to :bills
334
334
  end
335
335
 
336
336
  it "use the correct resource" do
337
- GoCardless::Paginator.should_receive(:new).
337
+ expect(GoCardless::Paginator).to receive(:new).
338
338
  with(anything, GoCardless::Bill, anything, anything)
339
339
  r = test_resource.new_with_client(double, @attrs)
340
340
  r.bills
341
341
  end
342
342
 
343
343
  it "use the correct uri path" do
344
- GoCardless::Paginator.should_receive(:new).
344
+ expect(GoCardless::Paginator).to receive(:new).
345
345
  with(anything, anything, '/api/bills/', anything)
346
346
  r = test_resource.new_with_client(double, @attrs)
347
347
  r.bills
348
348
  end
349
349
 
350
350
  it "strips the api prefix from the path" do
351
- GoCardless::Paginator.should_receive(:new).
351
+ expect(GoCardless::Paginator).to receive(:new).
352
352
  with(anything, anything, '/bills/', anything)
353
353
  uris = {'bills' => 'https://test.com/api/v123/bills/'}
354
354
  r = test_resource.new_with_client(double, 'sub_resource_uris' => uris)
@@ -357,7 +357,7 @@ describe GoCardless::Resource do
357
357
 
358
358
  it "use the correct query string params" do
359
359
  query = { 'merchant_id' => '1' }
360
- GoCardless::Paginator.should_receive(:new).
360
+ expect(GoCardless::Paginator).to receive(:new).
361
361
  with(anything, anything, anything, query)
362
362
  r = test_resource.new_with_client(double, @attrs)
363
363
  r.bills
@@ -365,7 +365,7 @@ describe GoCardless::Resource do
365
365
 
366
366
  it "adds provided params to existing query string params" do
367
367
  params = { 'merchant_id' => '1', :amount => '10.00' }
368
- GoCardless::Paginator.should_receive(:new).
368
+ expect(GoCardless::Paginator).to receive(:new).
369
369
  with(anything, anything, anything, params)
370
370
  r = test_resource.new_with_client(double, @attrs)
371
371
  r.bills(:amount => '10.00')
@@ -373,7 +373,7 @@ describe GoCardless::Resource do
373
373
 
374
374
  it "adds provided params when there are no existing query string params" do
375
375
  params = { :source_id => 'xxx' }
376
- GoCardless::Paginator.should_receive(:new).
376
+ expect(GoCardless::Paginator).to receive(:new).
377
377
  with(anything, anything, anything, params)
378
378
  r = test_resource.new_with_client(double, {
379
379
  'sub_resource_uris' => {
@@ -385,7 +385,7 @@ describe GoCardless::Resource do
385
385
 
386
386
  it "return instances of the correct resource class" do
387
387
  r = test_resource.new_with_client(double, @attrs)
388
- r.bills.should be_a GoCardless::Paginator
388
+ expect(r.bills).to be_a GoCardless::Paginator
389
389
  end
390
390
  end
391
391
  end