after_ship 0.0.5 → 0.0.6

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.
data/spec/spec_helper.rb DELETED
@@ -1,13 +0,0 @@
1
- require 'bundler/setup'
2
-
3
- require 'simplecov'
4
- require 'webmock' # Disable all HTTP access
5
- require 'multi_json'
6
-
7
- # Coverage tool, needs to be started as soon as possible
8
- SimpleCov.start do
9
- add_filter '/spec/' # Ignore spec directory
10
- end
11
-
12
- require 'after_ship'
13
- require 'request_stubs'
@@ -1,104 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe AfterShip do
4
- it 'fails to make a client' do
5
- expect { AfterShip.new }.to raise_error
6
- end
7
-
8
- context 'With api_key' do
9
- let(:client) { AfterShip.new(api_key: 'key') }
10
-
11
- it 'api_key' do
12
- expect(client.api_key).to eq('key')
13
- end
14
-
15
- it 'debug' do
16
- AfterShip.debug = true
17
- expect(AfterShip.debug).to eq(true)
18
- AfterShip.debug = nil
19
- end
20
-
21
- it 'trackings' do
22
- allow(AfterShip::Request).to receive(:get).and_yield(
23
- data: {
24
- trackings: [
25
- {
26
- slug: 'ups'
27
- }
28
- ]
29
- }
30
- )
31
-
32
- trackings = client.trackings
33
- expect(trackings.size).to eq(1)
34
- end
35
-
36
- it 'tracking' do
37
- allow(AfterShip::Request).to receive(:get).and_yield(
38
- data: {
39
- tracking: {
40
- slug: 'ups'
41
- }
42
- }
43
- )
44
-
45
- tracking = client.tracking('tracking-number', 'ups')
46
- expect(tracking.slug).to eq('ups')
47
- end
48
-
49
- it 'create_tracking' do
50
- allow(AfterShip::Request).to receive(:post).and_yield(
51
- data: {
52
- tracking: {
53
- slug: 'ups',
54
- order_id: 'order-id'
55
- }
56
- }
57
- )
58
-
59
- tracking = client.create_tracking(
60
- 'tracking-number',
61
- 'ups',
62
- order_id: 'order-id'
63
- )
64
-
65
- expect(tracking.slug).to eq('ups')
66
- expect(tracking.order_id).to eq('order-id')
67
- end
68
-
69
- it 'update_tracking' do
70
- allow(AfterShip::Request).to receive(:put).and_yield(
71
- data: {
72
- tracking: {
73
- slug: 'ups',
74
- order_id: 'order-id'
75
- }
76
- }
77
- )
78
-
79
- tracking = client.update_tracking(
80
- 'tracking-number',
81
- 'ups',
82
- order_id: 'order-id'
83
- )
84
-
85
- expect(tracking.slug).to eq('ups')
86
- expect(tracking.order_id).to eq('order-id')
87
- end
88
-
89
- it 'couriers' do
90
- allow(AfterShip::Request).to receive(:get).and_yield(
91
- data: {
92
- couriers: [
93
- {
94
- slug: 'ups'
95
- }
96
- ]
97
- }
98
- )
99
-
100
- couriers = client.couriers
101
- expect(couriers.size).to eq(1)
102
- end
103
- end
104
- end
@@ -1,135 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe AfterShip::Checkpoint do
4
- context 'Attributes' do
5
- it 'created_at' do
6
- data = { created_at: '2014-10-30T10:05:48' }
7
- tracking = AfterShip::Checkpoint.new(data)
8
- expect(tracking.created_at).to be_a(DateTime)
9
- expect(tracking.created_at.to_s).to eq('2014-10-30T10:05:48+00:00')
10
- end
11
-
12
- it 'slug' do
13
- data = { slug: 'ups' }
14
- tracking = AfterShip::Checkpoint.new(data)
15
- expect(tracking.slug).to eq('ups')
16
- end
17
-
18
- it 'courier' do
19
- data = { slug: 'ups' }
20
- tracking = AfterShip::Checkpoint.new(data)
21
- expect(tracking.courier).to eq('UPS')
22
- end
23
-
24
- it 'checkpoint_time' do
25
- data = { checkpoint_time: '2014-10-30T10:05:48+00:00' }
26
- tracking = AfterShip::Checkpoint.new(data)
27
- expect(tracking.checkpoint_time).to be_a(DateTime)
28
- expect(tracking.checkpoint_time.to_s)
29
- .to eq('2014-10-30T10:05:48+00:00')
30
- end
31
-
32
- it 'city' do
33
- data = { city: 'MUMBAI' }
34
- tracking = AfterShip::Checkpoint.new(data)
35
- expect(tracking.city).to eq('MUMBAI')
36
- end
37
-
38
- it 'country_iso3' do
39
- data = { country_iso3: 'IND' }
40
- tracking = AfterShip::Checkpoint.new(data)
41
- expect(tracking.country_iso3).to eq('IND')
42
- end
43
-
44
- it 'country_name' do
45
- data = { country_name: 'IN' }
46
- tracking = AfterShip::Checkpoint.new(data)
47
- expect(tracking.country_name).to eq('IN')
48
- end
49
-
50
- it 'message' do
51
- data = { message: 'PICKUP SCAN' }
52
- tracking = AfterShip::Checkpoint.new(data)
53
- expect(tracking.message).to eq('PICKUP SCAN')
54
- end
55
-
56
- it 'state' do
57
- data = { state: 'CA' }
58
- tracking = AfterShip::Checkpoint.new(data)
59
- expect(tracking.state).to eq('CA')
60
- end
61
-
62
- it 'tag' do
63
- data = { tag: 'Delivered' }
64
- tracking = AfterShip::Checkpoint.new(data)
65
- expect(tracking.tag).to eq('Delivered')
66
- end
67
-
68
- it 'status' do
69
- data = { tag: 'Delivered' }
70
- tracking = AfterShip::Checkpoint.new(data)
71
- expect(tracking.status).to eq('Delivered')
72
- end
73
-
74
- it 'zip' do
75
- data = { zip: '94110' }
76
- tracking = AfterShip::Checkpoint.new(data)
77
- expect(tracking.zip).to eq('94110')
78
- end
79
- end
80
-
81
- context 'status' do
82
- it 'Pending' do
83
- data = { tag: 'Pending' }
84
- checkpoint = AfterShip::Checkpoint.new(data)
85
- expect(checkpoint.status).to eq('Pending')
86
- end
87
-
88
- it 'InfoReceived' do
89
- data = { tag: 'InfoReceived' }
90
- checkpoint = AfterShip::Checkpoint.new(data)
91
- expect(checkpoint.status).to eq('Info Received')
92
- end
93
-
94
- it 'InTransit' do
95
- data = { tag: 'InTransit' }
96
- checkpoint = AfterShip::Checkpoint.new(data)
97
- expect(checkpoint.status).to eq('In Transit')
98
- end
99
-
100
- it 'OutForDelivery' do
101
- data = { tag: 'OutForDelivery' }
102
- checkpoint = AfterShip::Checkpoint.new(data)
103
- expect(checkpoint.status).to eq('Out for Delivery')
104
- end
105
-
106
- it 'AttemptFail' do
107
- data = { tag: 'AttemptFail' }
108
- checkpoint = AfterShip::Checkpoint.new(data)
109
- expect(checkpoint.status).to eq('Attempt Failed')
110
- end
111
-
112
- it 'Delivered' do
113
- data = { tag: 'Delivered' }
114
- checkpoint = AfterShip::Checkpoint.new(data)
115
- expect(checkpoint.status).to eq('Delivered')
116
- end
117
-
118
- it 'Exception' do
119
- data = { tag: 'Exception' }
120
- checkpoint = AfterShip::Checkpoint.new(data)
121
- expect(checkpoint.status).to eq('Exception')
122
- end
123
-
124
- it 'Expired' do
125
- data = { tag: 'Expired' }
126
- checkpoint = AfterShip::Checkpoint.new(data)
127
- expect(checkpoint.status).to eq('Expired')
128
- end
129
-
130
- it 'error' do
131
- data = { tag: 'error' }
132
- expect { AfterShip::Checkpoint.new(data) }.to raise_error(KeyError)
133
- end
134
- end
135
- end
@@ -1,41 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe AfterShip::Courier do
4
- context 'Attributes' do
5
- it 'slug' do
6
- data = { slug: 'ups' }
7
- tracking = AfterShip::Courier.new(data)
8
- expect(tracking.slug).to eq('ups')
9
- end
10
-
11
- it 'name' do
12
- data = { name: 'UPS' }
13
- tracking = AfterShip::Courier.new(data)
14
- expect(tracking.name).to eq('UPS')
15
- end
16
-
17
- it 'phone' do
18
- data = { phone: '+1 800 742 5877' }
19
- tracking = AfterShip::Courier.new(data)
20
- expect(tracking.phone).to eq('+1 800 742 5877')
21
- end
22
-
23
- it 'other_name' do
24
- data = { other_name: 'United Parcel Service' }
25
- tracking = AfterShip::Courier.new(data)
26
- expect(tracking.other_name).to eq('United Parcel Service')
27
- end
28
-
29
- it 'web_url' do
30
- data = { web_url: 'http://www.ups.com' }
31
- tracking = AfterShip::Courier.new(data)
32
- expect(tracking.web_url).to eq('http://www.ups.com')
33
- end
34
-
35
- it 'required_fields' do
36
- data = { required_fields: [] }
37
- tracking = AfterShip::Courier.new(data)
38
- expect(tracking.required_fields).to eq([])
39
- end
40
- end
41
- end
@@ -1,67 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe AfterShip::DateUtils do
4
- context 'parse' do
5
- it 'empty string' do
6
- date = AfterShip::DateUtils.parse('')
7
- expect(date).to be_nil
8
- end
9
-
10
- it 'nil' do
11
- date = AfterShip::DateUtils.parse(nil)
12
- expect(date).to be_nil
13
- end
14
-
15
- it 'YYYYMMDD' do
16
- date = AfterShip::DateUtils.parse('20140729')
17
- expected = Date.parse('20140729')
18
- expect(date).to eq(expected)
19
- expect(date.to_s).to eq('2014-07-29')
20
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 00:00:00')
21
- end
22
-
23
- it 'YYYY-MM-DD' do
24
- date = AfterShip::DateUtils.parse('2014-07-29')
25
- expected = Date.parse('2014-07-29')
26
- expect(date).to eq(expected)
27
- expect(date.to_s).to eq('2014-07-29')
28
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 00:00:00')
29
- end
30
-
31
- it 'YYYY-MM-DDTHH:MM:SS' do
32
- date = AfterShip::DateUtils.parse('2014-07-29T16:08:23')
33
- expected = DateTime.parse('2014-07-29T16:08:23')
34
- expect(date).to eq(expected)
35
- expect(date.to_s).to eq('2014-07-29T16:08:23+00:00')
36
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 16:08:23')
37
- end
38
-
39
- it 'YYYY-MM-DDTHH:MM:SSZ' do
40
- date = AfterShip::DateUtils.parse('2014-07-29T16:08:23Z')
41
- expected = DateTime.parse('2014-07-29T16:08:23Z')
42
- expect(date).to eq(expected)
43
- expect(date.to_s).to eq('2014-07-29T16:08:23+00:00')
44
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 16:08:23')
45
- end
46
-
47
- it 'YYYY-MM-DDTHH:MM:SS+HH:MM' do
48
- date = AfterShip::DateUtils.parse('2014-07-29T16:08:23+02:00')
49
- expected = DateTime.parse('2014-07-29T16:08:23+02:00')
50
- expect(date).to eq(expected)
51
- expect(date.to_s).to eq('2014-07-29T16:08:23+02:00')
52
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 16:08:23')
53
- end
54
-
55
- it 'YYYY-MM-DDTHH:MM:SS-HH:MM' do
56
- date = AfterShip::DateUtils.parse('2014-07-29T16:08:23-02:00')
57
- expected = DateTime.parse('2014-07-29T16:08:23-02:00')
58
- expect(date).to eq(expected)
59
- expect(date.to_s).to eq('2014-07-29T16:08:23-02:00')
60
- expect(date.strftime('%Y-%m-%d %H:%M:%S')).to eq('2014-07-29 16:08:23')
61
- end
62
-
63
- it 'everything else raises an error' do
64
- expect { AfterShip::DateUtils.parse('xxx') }.to raise_error(ArgumentError)
65
- end
66
- end
67
- end
@@ -1,168 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe AfterShip::ErrorHandler do
4
- it 'precheck' do
5
- response = double('Typhoeus Response')
6
- allow(response).to receive(:timed_out?).and_return(false)
7
- expect { AfterShip::ErrorHandler.precheck(response) }
8
- .to_not raise_error
9
- end
10
-
11
- it 'precheck with timeout raises an error' do
12
- response = double('Typhoeus Response')
13
- allow(response).to receive(:timed_out?).and_return(true)
14
- allow(response).to receive(:effective_url).and_return('test-url')
15
- expect { AfterShip::ErrorHandler.precheck(response) }
16
- .to raise_error(AfterShip::Error::Timeout)
17
- end
18
-
19
- it 'check with missing code raises an error' do
20
- meta = {}
21
- expect { AfterShip::ErrorHandler.check(meta) }
22
- .to raise_error(KeyError)
23
- end
24
-
25
- it 'check with success code' do
26
- meta = { code: 200 }
27
- expect { AfterShip::ErrorHandler.check(meta) }
28
- .to_not raise_error
29
- end
30
-
31
- it 'check with error code' do
32
- meta = { code: 400 }
33
- expect { AfterShip::ErrorHandler.check(meta) }
34
- .to raise_error(AfterShip::Error::BadRequest)
35
- end
36
-
37
- context 'error_class_for' do
38
- it '400' do
39
- expect(AfterShip::ErrorHandler.error_class_for(400))
40
- .to eq(AfterShip::Error::BadRequest)
41
- end
42
-
43
- it '4001' do
44
- expect(AfterShip::ErrorHandler.error_class_for(4001))
45
- .to eq(AfterShip::Error::InvalidJsonData)
46
- end
47
-
48
- it '4002' do
49
- expect(AfterShip::ErrorHandler.error_class_for(4002))
50
- .to eq(AfterShip::Error::InvalidJsonData)
51
- end
52
-
53
- it '4003' do
54
- expect(AfterShip::ErrorHandler.error_class_for(4003))
55
- .to eq(AfterShip::Error::TrackingAlreadyExists)
56
- end
57
-
58
- it '4004' do
59
- expect(AfterShip::ErrorHandler.error_class_for(4004))
60
- .to eq(AfterShip::Error::TrackingDoesNotExist)
61
- end
62
-
63
- it '4005' do
64
- expect(AfterShip::ErrorHandler.error_class_for(4005))
65
- .to eq(AfterShip::Error::TrackingNumberInvalid)
66
- end
67
-
68
- it '4006' do
69
- expect(AfterShip::ErrorHandler.error_class_for(4006))
70
- .to eq(AfterShip::Error::TrackingObjectRequired)
71
- end
72
-
73
- it '4007' do
74
- expect(AfterShip::ErrorHandler.error_class_for(4007))
75
- .to eq(AfterShip::Error::TrackingNumberRequired)
76
- end
77
-
78
- it '4008' do
79
- expect(AfterShip::ErrorHandler.error_class_for(4008))
80
- .to eq(AfterShip::Error::FieldInvalid)
81
- end
82
-
83
- it '4009' do
84
- expect(AfterShip::ErrorHandler.error_class_for(4009))
85
- .to eq(AfterShip::Error::FieldRequired)
86
- end
87
-
88
- it '4010' do
89
- expect(AfterShip::ErrorHandler.error_class_for(4010))
90
- .to eq(AfterShip::Error::SlugInvalid)
91
- end
92
-
93
- it '4011' do
94
- expect(AfterShip::ErrorHandler.error_class_for(4011))
95
- .to eq(AfterShip::Error::CourierFieldInvalid)
96
- end
97
-
98
- it '4012' do
99
- expect(AfterShip::ErrorHandler.error_class_for(4012))
100
- .to eq(AfterShip::Error::CourierNotDetected)
101
- end
102
-
103
- it '4013' do
104
- expect(AfterShip::ErrorHandler.error_class_for(4013))
105
- .to eq(AfterShip::Error::RetrackNotAllowed)
106
- end
107
-
108
- it '4016' do
109
- expect(AfterShip::ErrorHandler.error_class_for(4016))
110
- .to eq(AfterShip::Error::RetrackNotAllowed)
111
- end
112
-
113
- it '4014' do
114
- expect(AfterShip::ErrorHandler.error_class_for(4014))
115
- .to eq(AfterShip::Error::NotificationRequired)
116
- end
117
-
118
- it '4015' do
119
- expect(AfterShip::ErrorHandler.error_class_for(4015))
120
- .to eq(AfterShip::Error::IdInvalid)
121
- end
122
-
123
- it '401' do
124
- expect(AfterShip::ErrorHandler.error_class_for(401))
125
- .to eq(AfterShip::Error::Unauthorized)
126
- end
127
-
128
- it '403' do
129
- expect(AfterShip::ErrorHandler.error_class_for(403))
130
- .to eq(AfterShip::Error::Forbidden)
131
- end
132
-
133
- it '404' do
134
- expect(AfterShip::ErrorHandler.error_class_for(404))
135
- .to eq(AfterShip::Error::NotFound)
136
- end
137
-
138
- it '429' do
139
- expect(AfterShip::ErrorHandler.error_class_for(429))
140
- .to eq(AfterShip::Error::TooManyRequests)
141
- end
142
-
143
- it '500' do
144
- expect(AfterShip::ErrorHandler.error_class_for(500))
145
- .to eq(AfterShip::Error::InternalError)
146
- end
147
-
148
- it '502' do
149
- expect(AfterShip::ErrorHandler.error_class_for(502))
150
- .to eq(AfterShip::Error::InternalError)
151
- end
152
-
153
- it '503' do
154
- expect(AfterShip::ErrorHandler.error_class_for(503))
155
- .to eq(AfterShip::Error::InternalError)
156
- end
157
-
158
- it '504' do
159
- expect(AfterShip::ErrorHandler.error_class_for(504))
160
- .to eq(AfterShip::Error::InternalError)
161
- end
162
-
163
- it '666' do
164
- expect(AfterShip::ErrorHandler.error_class_for(666))
165
- .to eq(AfterShip::Error::UnknownError)
166
- end
167
- end
168
- end