Skip to content

Commit b9dc43f

Browse files
Merge pull request #1208 from travis-ci/sc-get-cc-last-digits
Return cc_last_digits attribute for invoice
2 parents 99fd627 + 4894e9e commit b9dc43f

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

lib/travis/api/v3/models/invoice.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
module Travis::API::V3
22
class Models::Invoice
3-
attr_reader :id, :created_at, :status, :url, :amount_due
3+
attr_reader :id, :created_at, :status, :url, :amount_due, :cc_last_digits
44

55
def initialize(attributes = {})
66
@id = attributes.fetch('id')
77
@created_at = attributes.fetch('created_at') && DateTime.parse(attributes.fetch('created_at'))
88
@status = attributes.fetch('status')
99
@url = attributes.fetch('url')
1010
@amount_due = attributes.fetch('amount_due')
11+
@cc_last_digits = attributes.fetch('cc_last_digits')
1112
end
1213
end
1314
end

lib/travis/api/v3/renderer/invoice.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module Travis::API::V3
22
class Renderer::Invoice < ModelRenderer
3-
representation(:standard, :id, :created_at, :status, :url, :amount_due)
3+
representation(:standard, :id, :created_at, :status, :url, :amount_due, :cc_last_digits)
44
end
55
end

spec/v3/billing_client_spec.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@
5252

5353
it 'returns a list of invoices' do
5454
stub_billing_request(:get, "/subscriptions/#{subscription_id}/invoices", auth_key: auth_key, user_id: user_id)
55-
.to_return(body: JSON.dump([{'id' => invoice_id, 'created_at' => Time.now, 'url' => 'https://billing-test.travis-ci.com/invoices/111.pdf', amount_due: 999, status: 'paid' }]))
55+
.to_return(body: JSON.dump([{'id' => invoice_id, 'created_at' => Time.now, 'url' => 'https://billing-test.travis-ci.com/invoices/111.pdf', amount_due: 999, status: 'paid', cc_last_digits: '4242' }]))
5656
expect(subject.first).to be_a(Travis::API::V3::Models::Invoice)
5757
expect(subject.first.id).to eq(invoice_id)
5858
expect(subject.first.amount_due).to eq(999)
59+
expect(subject.first.cc_last_digits).to eq('4242')
5960
end
6061

6162
it 'returns an empty list if there are no invoices' do
@@ -71,10 +72,11 @@
7172

7273
it 'returns a list of invoices' do
7374
stub_billing_request(:get, "/v2/subscriptions/#{subscription_id}/invoices", auth_key: auth_key, user_id: user_id)
74-
.to_return(body: JSON.dump([{'id' => invoice_id, 'created_at' => Time.now, 'url' => 'https://billing-test.travis-ci.com/invoices/111.pdf', amount_due: 999, status: 'paid' }]))
75+
.to_return(body: JSON.dump([{'id' => invoice_id, 'created_at' => Time.now, 'url' => 'https://billing-test.travis-ci.com/invoices/111.pdf', amount_due: 999, status: 'paid', cc_last_digits: '4242' }]))
7576
expect(subject.first).to be_a(Travis::API::V3::Models::Invoice)
7677
expect(subject.first.id).to eq(invoice_id)
7778
expect(subject.first.amount_due).to eq(999)
79+
expect(subject.first.cc_last_digits).to eq('4242')
7880
end
7981

8082
it 'returns an empty list if there are no invoices' do

spec/v3/services/subscription/invoices_spec.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
let(:amount_due) { 100 }
2828
let(:status) { 'paid' }
2929
let(:subscription_id) { rand(999) }
30+
let(:cc_last_digits) { '4242' }
3031
before do
3132
stub_billing_request(:get, "/subscriptions/#{subscription_id}/invoices", auth_key: billing_auth_key, user_id: user.id)
32-
.to_return(status: 200, body: JSON.dump([{'id' => invoice_id, 'created_at' => created_at, 'url' => url, 'amount_due' => amount_due, 'status' => status }]))
33+
.to_return(status: 200, body: JSON.dump([{'id' => invoice_id, 'created_at' => created_at, 'url' => url, 'amount_due' => amount_due, 'status' => status, 'cc_last_digits' => cc_last_digits }]))
3334
end
3435

3536
it 'responds with list of subscriptions' do
@@ -47,7 +48,8 @@
4748
'created_at' => created_at,
4849
'url' => url,
4950
'amount_due' => amount_due,
50-
'status' => status
51+
'status' => status,
52+
'cc_last_digits' => cc_last_digits
5153
}]
5254
})
5355
end

spec/v3/services/v2_subscription/invoices_spec.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,11 @@
2727
let(:amount_due) { 100 }
2828
let(:status) { 'paid' }
2929
let(:subscription_id) { rand(999) }
30+
let(:cc_last_digits) { '4242' }
31+
3032
before do
3133
stub_billing_request(:get, "/v2/subscriptions/#{subscription_id}/invoices", auth_key: billing_auth_key, user_id: user.id)
32-
.to_return(status: 200, body: JSON.dump([{'id' => invoice_id, 'created_at' => created_at, 'url' => url, 'amount_due' => amount_due, 'status' => status }]))
34+
.to_return(status: 200, body: JSON.dump([{'id' => invoice_id, 'created_at' => created_at, 'url' => url, 'amount_due' => amount_due, 'status' => status, 'cc_last_digits' => cc_last_digits }]))
3335
end
3436

3537
it 'responds with list of subscriptions' do
@@ -47,7 +49,8 @@
4749
'created_at' => created_at,
4850
'url' => url,
4951
'amount_due' => amount_due,
50-
'status' => status
52+
'status' => status,
53+
'cc_last_digits' => cc_last_digits
5154
}]
5255
})
5356
end

0 commit comments

Comments
 (0)