fat_zebra 3.2.0 → 3.2.1

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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +2 -2
  4. data/fat_zebra.gemspec +1 -1
  5. data/lib/fat_zebra.rb +1 -1
  6. data/lib/fat_zebra/authenticate.rb +64 -0
  7. data/lib/fat_zebra/version.rb +1 -1
  8. data/spec/cassettes/FatZebra_Authenticate/_authenticate/validations/1_3_4_1.yml +46 -0
  9. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_1.yml +91 -0
  10. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_2.yml +91 -0
  11. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_1.yml +91 -0
  12. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_2.yml +91 -0
  13. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_1.yml +91 -0
  14. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_2.yml +87 -0
  15. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_3.yml +92 -0
  16. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_4.yml +92 -0
  17. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_invalid/returns_error_when_invalid_token.yml +47 -0
  18. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_valid/decodes_JWT.yml +87 -0
  19. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_given_params.yml +44 -0
  20. data/spec/cassettes/{FatZebra_Authorise/_jwt_token → FatZebra_Authenticate/_session}/returns_JWT_with_no_params.yml +8 -10
  21. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_some_params.yml +44 -0
  22. data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_amount_is_invalid.yml +44 -0
  23. data/spec/lib/fat_zebra/authenticate_spec.rb +144 -0
  24. data/spec/spec_helper.rb +1 -1
  25. data/spec/support/payloads.rb +36 -31
  26. metadata +21 -15
  27. data/lib/fat_zebra/authorise.rb +0 -49
  28. data/spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_1.yml +0 -48
  29. data/spec/cassettes/FatZebra_Authorise/_authorise/with_challenge_response/1_2_3_2.yml +0 -48
  30. data/spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_1.yml +0 -48
  31. data/spec/cassettes/FatZebra_Authorise/_authorise/with_frictionless_response/1_2_2_2.yml +0 -48
  32. data/spec/cassettes/FatZebra_Authorise/_authorise/with_invalid_input/1_2_1_1.yml +0 -50
  33. data/spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_given_params.yml +0 -46
  34. data/spec/cassettes/FatZebra_Authorise/_jwt_token/returns_JWT_with_some_params.yml +0 -46
  35. data/spec/lib/fat_zebra/authorise_spec.rb +0 -101
@@ -1,46 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://gateway.sandbox.fatzebra.com.au/v1.0/authorise/jwt_token?amount=100&confirm_url=https://example.com&currency_code=036&order_number=xxxx-xxxx-xxxx&reference_id=xxxx-xxxx-xxxx&test=true
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - application/json
14
- User-Agent:
15
- - Ruby
16
- Host:
17
- - gateway.sandbox.fatzebra.com.au
18
- Authorization:
19
- - Basic VEVTVDpURVNU
20
- Content-Type:
21
- - application/json
22
- response:
23
- status:
24
- code: 200
25
- message: OK
26
- headers:
27
- Cache-Control:
28
- - no-store
29
- Pragma:
30
- - no-cache
31
- Content-Type:
32
- - application/json; charset=utf-8
33
- X-Request-Version:
34
- - 1.21.8
35
- X-Request-Id:
36
- - ca35fe7e5bb33bf91045771b066e3225
37
- X-Runtime:
38
- - '2.541608'
39
- Transfer-Encoding:
40
- - chunked
41
- body:
42
- encoding: UTF-8
43
- string: '{"successful":true,"response":{"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NjczOTkyMDMsImlhdCI6MTU2NzM4NDgwMywiaXNzIjoiNTgyZTBhMjAzM2ZhZGQxMjYwZjk5MGY2IiwianRpIjoiNzJjYzkzZTktY2I0Ni00NjNiLTllZWMtNWFjYzViMzRlZDk2IiwiT3JnVW5pdElkIjoiNTgyYmU5ZGVkYTUyOTMyYTk0NmM0NWM0IiwiT2JqZWN0aWZ5UGF5bG9hZCI6dHJ1ZSwiUmVmZXJlbmNlSWQiOiJlMTdkMGIxNy1jYTViLTRhYzQtYWE3YS0xN2ZhYzQzMDNiM2IifQ.pslZfApXY1MtDA2OKks9OhkEY_KIFkc-XTrO4Xc7zIg","reference_id":"e17d0b17-ca5b-4ac4-aa7a-17fac4303b3b"},"errors":[],"test":true}'
44
- http_version:
45
- recorded_at: Mon, 02 Sep 2019 00:40:03 GMT
46
- recorded_with: VCR 3.0.3
@@ -1,46 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://gateway.sandbox.fatzebra.com.au/v1.0/authorise/jwt_token?amount=100&confirm_url=https://example.com&currency_code=036&order_number=xxxx-xxxx-xxxx&test=true
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept-Encoding:
11
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - application/json
14
- User-Agent:
15
- - Ruby
16
- Host:
17
- - gateway.sandbox.fatzebra.com.au
18
- Authorization:
19
- - Basic VEVTVDpURVNU
20
- Content-Type:
21
- - application/json
22
- response:
23
- status:
24
- code: 200
25
- message: OK
26
- headers:
27
- Cache-Control:
28
- - no-store
29
- Pragma:
30
- - no-cache
31
- Content-Type:
32
- - application/json; charset=utf-8
33
- X-Request-Version:
34
- - 1.21.8
35
- X-Request-Id:
36
- - baa38892840aad6e85125b672b0f3264
37
- X-Runtime:
38
- - '0.265561'
39
- Transfer-Encoding:
40
- - chunked
41
- body:
42
- encoding: UTF-8
43
- string: '{"successful":true,"response":{"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NjczOTkyMDMsImlhdCI6MTU2NzM4NDgwMywiaXNzIjoiNTgyZTBhMjAzM2ZhZGQxMjYwZjk5MGY2IiwianRpIjoiZDZkMTFjYzItYzJlNS00MDk1LWJhMjktMmY2NDhiNzJjNzU1IiwiT3JnVW5pdElkIjoiNTgyYmU5ZGVkYTUyOTMyYTk0NmM0NWM0IiwiT2JqZWN0aWZ5UGF5bG9hZCI6dHJ1ZSwiUmVmZXJlbmNlSWQiOiJiODg2MDAzZi1lYTJiLTQwMjAtOGVlNC01NjFlYTdjMTI3MzEifQ.w2EKM09LU0lF7iq5luyVbpwXx6p_np3DApXsP5XpTWw","reference_id":"b886003f-ea2b-4020-8ee4-561ea7c12731"},"errors":[],"test":true}'
44
- http_version:
45
- recorded_at: Mon, 02 Sep 2019 00:40:03 GMT
46
- recorded_with: VCR 3.0.3
@@ -1,101 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe FatZebra::Authorise do
4
-
5
- describe '.jwt_token', :vcr do
6
- subject(:token) { FatZebra::Authorise.jwt_token(valid_3ds_token_payload) }
7
-
8
- let(:valid_3ds_token_payload) {{
9
- reference_id: 'xxxx-xxxx-xxxx',
10
- confirm_url: 'https://example.com',
11
- order_number: 'xxxx-xxxx-xxxx',
12
- currency_code: '036',
13
- amount: 100
14
- }}
15
-
16
- it 'returns JWT with given params' do
17
- is_expected.to be_accepted
18
- expect(token.jwt).to be_truthy
19
- expect(token.reference_id).to be_truthy
20
- end
21
-
22
- it 'returns JWT with some params' do
23
- valid_3ds_token_payload.delete(:reference_id)
24
- is_expected.to be_accepted
25
- expect(token.jwt).to be_truthy
26
- expect(token.reference_id).to be_truthy
27
- end
28
-
29
- it 'returns JWT with no params' do
30
- valid_3ds_token_payload.clear
31
- is_expected.to be_accepted
32
- expect(token.jwt).to be_truthy
33
- expect(token.reference_id).to be_truthy
34
- end
35
- end
36
-
37
- describe '.authorise', :vcr do
38
- subject(:authorise) { FatZebra::Authorise.authorise(valid_3ds_authorise_payload) }
39
-
40
- context 'with invalid input' do
41
- before do
42
- valid_3ds_authorise_payload[:card_expiry] = DateTime.now.prev_month.strftime('%m/%Y')
43
- end
44
-
45
- it do
46
- is_expected.not_to be_accepted
47
- expect(authorise.errors).to match(/Error Validating Credit Card Expiration/)
48
- end
49
- end
50
-
51
- context 'with frictionless response' do
52
- before do
53
- valid_3ds_authorise_payload[:card_number] = '4000000000001000'
54
- end
55
-
56
- it do
57
- is_expected.to be_accepted
58
- expect(authorise.keys).to include('Enrolled', 'ACSUrl', 'CardBin', 'TransactionId')
59
- expect(authorise.errors).not_to be_truthy
60
- end
61
-
62
- it do
63
- expect(authorise.Enrolled).to eq('Y')
64
- expect(authorise.ACSUrl).not_to be_truthy
65
- expect(authorise.CardBin).to be_truthy
66
- expect(authorise.ErrorNo).to eq('0')
67
- expect(authorise.ErrorDesc).not_to be_truthy
68
- expect(authorise.CardBrand).to be_truthy
69
- expect(authorise.TransactionId).to be_truthy
70
- end
71
- end
72
-
73
- context 'with challenge response' do
74
- before do
75
- valid_3ds_authorise_payload[:card_number] = '4111111111111111'
76
- end
77
-
78
- it do
79
- is_expected.to be_accepted
80
- expect(authorise.keys).to include('Enrolled', 'ACSUrl', 'CardBin', 'TransactionId')
81
- expect(authorise.errors).not_to be_truthy
82
- end
83
-
84
- it do
85
- expect(authorise.Enrolled).to eq('Y')
86
- expect(authorise.ACSUrl).to be_truthy
87
- expect(authorise.CardBin).to be_truthy
88
- expect(authorise.ErrorNo).to eq('0')
89
- expect(authorise.ErrorDesc).not_to be_truthy
90
- expect(authorise.CardBrand).to be_truthy
91
- expect(authorise.TransactionId).to be_truthy
92
- end
93
- end
94
-
95
- context 'validations' do
96
- let(:valid_3ds_authorise_payload) {{}}
97
-
98
- it { expect{ authorise }.to raise_error(FatZebra::RequestValidationError) }
99
- end
100
- end
101
- end