mad_cart 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3001/api/orders.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Spree-Token:
11
+ - an-invalid-key
12
+ User-Agent:
13
+ - Faraday v0.9.0
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - ! '*/*'
18
+ response:
19
+ status:
20
+ code: 401
21
+ message: ! 'Unauthorized '
22
+ headers:
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Cache-Control:
32
+ - no-cache
33
+ X-Request-Id:
34
+ - f336534b-e0db-427b-99b0-15b27f37c031
35
+ X-Runtime:
36
+ - '0.534844'
37
+ Server:
38
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24)
39
+ Date:
40
+ - Thu, 31 Jul 2014 14:40:30 GMT
41
+ Content-Length:
42
+ - '55'
43
+ Connection:
44
+ - Keep-Alive
45
+ Set-Cookie:
46
+ - guest_token=IlhJYTVNZjRTUWlZT1BYN1BQU185aVEi--4831e88155658c7e94363fc9bf49730c3fb5d828;
47
+ path=/; expires=Mon, 31 Jul 2034 14:40:29 -0000
48
+ body:
49
+ encoding: US-ASCII
50
+ string: ! '{"error":"Invalid API key (an-invalid-key) specified."}'
51
+ http_version:
52
+ recorded_at: Thu, 31 Jul 2014 14:40:30 GMT
53
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,110 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3001/api/products.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Spree-Token:
11
+ - d1202dea0f624d1c2f0c8544f5dffe4b24bbcaf3a9601cc5
12
+ User-Agent:
13
+ - Faraday v0.9.0
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - ! '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: ! 'OK '
22
+ headers:
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ X-Xss-Protection:
26
+ - 1; mode=block
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Date:
32
+ - Thu, 31 Jul 2014 14:21:21 GMT
33
+ Surrogate-Control:
34
+ - max-age=900
35
+ Cache-Control:
36
+ - max-age=900, public
37
+ Etag:
38
+ - ! '"1fa4b01070520093a33ebd555491e875"'
39
+ X-Request-Id:
40
+ - f0b9d1f6-3284-4a5d-ac7a-2e31d456e496
41
+ X-Runtime:
42
+ - '2.942793'
43
+ Server:
44
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24)
45
+ Content-Length:
46
+ - '59494'
47
+ Connection:
48
+ - Keep-Alive
49
+ Set-Cookie:
50
+ - guest_token=ImtKakRBQ3FFY3hwTWFXV2hWdXIzVkEi--6cf9210ccc7dacc3b1cacba52a4a11e9c048ddf1;
51
+ path=/; expires=Mon, 31 Jul 2034 14:21:21 -0000
52
+ - request_method=GET; path=/
53
+ body:
54
+ encoding: US-ASCII
55
+ string: ! '{"count":0,"total_count":0,"current_page":1,"per_page":25,"pages":0,"products":[]}'
56
+ http_version:
57
+ recorded_at: Thu, 31 Jul 2014 14:24:20 GMT
58
+ - request:
59
+ method: get
60
+ uri: http://localhost:3001/api/orders.json?page=1&per_page=50
61
+ body:
62
+ encoding: US-ASCII
63
+ string: ''
64
+ headers:
65
+ X-Spree-Token:
66
+ - d1202dea0f624d1c2f0c8544f5dffe4b24bbcaf3a9601cc5
67
+ User-Agent:
68
+ - Faraday v0.9.0
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - ! '*/*'
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: ! 'OK '
77
+ headers:
78
+ X-Frame-Options:
79
+ - SAMEORIGIN
80
+ X-Xss-Protection:
81
+ - 1; mode=block
82
+ X-Content-Type-Options:
83
+ - nosniff
84
+ Content-Type:
85
+ - application/json; charset=utf-8
86
+ Etag:
87
+ - ! '"a9dbd28d9782cb1412355546414a494b"'
88
+ Cache-Control:
89
+ - max-age=0, private, must-revalidate
90
+ X-Request-Id:
91
+ - 31e9ac96-1215-40d7-a7a4-1b6cadee3478
92
+ X-Runtime:
93
+ - '0.499069'
94
+ Server:
95
+ - WEBrick/1.3.1 (Ruby/2.1.1/2014-02-24)
96
+ Date:
97
+ - Thu, 31 Jul 2014 14:31:12 GMT
98
+ Content-Length:
99
+ - '1701'
100
+ Connection:
101
+ - Keep-Alive
102
+ Set-Cookie:
103
+ - guest_token=IllrNXp0Uld1MGxxWkNwRHRKcUhRaUEi--7af3a10f1bb3481c15ba73ad7bc1141cdfb3001c;
104
+ path=/; expires=Mon, 31 Jul 2034 14:31:12 -0000
105
+ - request_method=GET; path=/
106
+ body:
107
+ encoding: US-ASCII
108
+ string: ! '{"count":0,"current_page":"1","pages":0,"orders":[]}'
109
+ http_version:
110
+ recorded_at: Thu, 31 Jul 2014 14:31:12 GMT
@@ -0,0 +1,112 @@
1
+ require "spec_helper"
2
+
3
+ describe MadCart::Store::Spree do
4
+
5
+ let(:spree_cassette) { 'spree' }
6
+ let(:spree_no_records_cassette) { 'spree_no_records' }
7
+ let(:spree_invalid_key_cassette) { 'spree_invalid_key' }
8
+
9
+ let(:valid_credentials) {
10
+ {
11
+ :api_key => 'd1202dea0f624d1c2f0c8544f5dffe4b24bbcaf3a9601cc5',
12
+ :store_url => 'localhost:3001'
13
+ }
14
+ }
15
+
16
+ describe "store" do
17
+
18
+ it "expects to be instantiated with an api key and store url" do
19
+ lambda { MadCart::Store::Spree.new(:store_url => 'test').connection }.should raise_error(ArgumentError)
20
+ lambda { MadCart::Store::Spree.new(:api_key => 'test', :store_url => 'test').connection }.should_not raise_error
21
+ end
22
+
23
+ end
24
+
25
+ describe "products" do
26
+
27
+ context "retrieval" do
28
+
29
+ it "returns all products" do
30
+ VCR.use_cassette(spree_cassette) do
31
+ api = MadCart::Store::Spree.new(valid_credentials)
32
+
33
+ api.products.size.should == 16
34
+
35
+ first_product = api.products.first
36
+
37
+ first_product.should be_a(MadCart::Model::Product)
38
+ first_product.name.should_not be_nil
39
+ first_product.description.should_not be_nil
40
+ first_product.image_url.should_not be_nil
41
+ end
42
+ end
43
+
44
+ it "returns an empty array when there are no products" do
45
+ VCR.use_cassette(spree_no_records_cassette) do
46
+ api = MadCart::Store::Spree.new(valid_credentials)
47
+ api.products.should == []
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ context "count" do
54
+
55
+ it "returns how many products there are" do
56
+ VCR.use_cassette(spree_cassette) do
57
+ api = MadCart::Store::Spree.new(valid_credentials)
58
+ api.products_count.should == 16
59
+ end
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+
66
+ describe "customers" do
67
+ context "retrieval" do
68
+
69
+ it "returns all customers" do
70
+ VCR.use_cassette(spree_cassette) do
71
+ api = MadCart::Store::Spree.new(valid_credentials)
72
+
73
+ api.customers.size.should be > 0
74
+ api.customers.first.should be_a(MadCart::Model::Customer)
75
+ end
76
+ end
77
+
78
+ it "returns an empty array when there are no customers" do
79
+ VCR.use_cassette(spree_no_records_cassette) do
80
+ api = MadCart::Store::Spree.new(valid_credentials)
81
+
82
+ api.customers.should eql([])
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ describe "validating credentials" do
89
+
90
+ it "succeeds if it can get orders.json from Spree" do
91
+ VCR.use_cassette(spree_cassette) do
92
+ api = MadCart::Store::Spree.new(valid_credentials)
93
+
94
+ api.should be_valid
95
+ end
96
+ end
97
+
98
+ it "fails if it cannot get orders.json from Spree" do
99
+ VCR.use_cassette(spree_invalid_key_cassette) do
100
+ api = MadCart::Store::Spree.new(
101
+ :api_key => 'an-invalid-key',
102
+ :store_url => valid_credentials[:store_url]
103
+ )
104
+
105
+ api.should_not be_valid
106
+ end
107
+ end
108
+
109
+ end
110
+ end
111
+
112
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mad_cart
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Heiligers
@@ -10,34 +10,34 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-05-08 00:00:00.000000000 Z
13
+ date: 2014-08-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: faraday
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ">="
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ">="
26
+ - - ! '>='
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: faraday_middleware
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ">="
33
+ - - ! '>='
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ">="
40
+ - - ! '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
@@ -86,70 +86,70 @@ dependencies:
86
86
  name: activesupport
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - "~>"
89
+ - - ~>
90
90
  - !ruby/object:Gem::Version
91
91
  version: '3.2'
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - "~>"
96
+ - - ~>
97
97
  - !ruby/object:Gem::Version
98
98
  version: '3.2'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: bundler
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - "~>"
103
+ - - ~>
104
104
  - !ruby/object:Gem::Version
105
105
  version: '1.3'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - "~>"
110
+ - - ~>
111
111
  - !ruby/object:Gem::Version
112
112
  version: '1.3'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rake
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ">="
117
+ - - ! '>='
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ">="
124
+ - - ! '>='
125
125
  - !ruby/object:Gem::Version
126
126
  version: '0'
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: json
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - "~>"
131
+ - - ~>
132
132
  - !ruby/object:Gem::Version
133
133
  version: 1.7.7
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - "~>"
138
+ - - ~>
139
139
  - !ruby/object:Gem::Version
140
140
  version: 1.7.7
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: rspec
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - ">="
145
+ - - ! '>='
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
- - - ">="
152
+ - - ! '>='
153
153
  - !ruby/object:Gem::Version
154
154
  version: '0'
155
155
  - !ruby/object:Gem::Dependency
@@ -170,28 +170,28 @@ dependencies:
170
170
  name: webmock
171
171
  requirement: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - "~>"
173
+ - - ~>
174
174
  - !ruby/object:Gem::Version
175
175
  version: 1.11.0
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
- - - "~>"
180
+ - - ~>
181
181
  - !ruby/object:Gem::Version
182
182
  version: 1.11.0
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: simplecov
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">="
187
+ - - ! '>='
188
188
  - !ruby/object:Gem::Version
189
189
  version: '0'
190
190
  type: :development
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
- - - ">="
194
+ - - ! '>='
195
195
  - !ruby/object:Gem::Version
196
196
  version: '0'
197
197
  description: Provides a unified api for various e-commerce merchants.
@@ -201,8 +201,8 @@ executables: []
201
201
  extensions: []
202
202
  extra_rdoc_files: []
203
203
  files:
204
- - ".gitignore"
205
- - ".rspec"
204
+ - .gitignore
205
+ - .rspec
206
206
  - Gemfile
207
207
  - LICENSE.txt
208
208
  - README.md
@@ -217,12 +217,16 @@ files:
217
217
  - lib/mad_cart/store/base.rb
218
218
  - lib/mad_cart/store/big_commerce.rb
219
219
  - lib/mad_cart/store/etsy.rb
220
+ - lib/mad_cart/store/spree.rb
220
221
  - lib/mad_cart/version.rb
221
222
  - mad_cart.gemspec
222
223
  - spec/fixtures/vcr_cassettes/big_commerce.yml
223
224
  - spec/fixtures/vcr_cassettes/big_commerce_no_records.yml
224
225
  - spec/fixtures/vcr_cassettes/etsy_store_does_not_exist.yml
225
226
  - spec/fixtures/vcr_cassettes/etsy_store_listings.yml
227
+ - spec/fixtures/vcr_cassettes/spree.yml
228
+ - spec/fixtures/vcr_cassettes/spree_invalid_key.yml
229
+ - spec/fixtures/vcr_cassettes/spree_no_records.yml
226
230
  - spec/lib/configuration_spec.rb
227
231
  - spec/lib/mad_cart_spec.rb
228
232
  - spec/lib/model/base_spec.rb
@@ -231,6 +235,7 @@ files:
231
235
  - spec/lib/store/base_spec.rb
232
236
  - spec/lib/store/big_commerce_spec.rb
233
237
  - spec/lib/store/etsy_spec.rb
238
+ - spec/lib/store/spree_spec.rb
234
239
  - spec/spec_helper.rb
235
240
  homepage: https://github.com/madmimi/mad_cart
236
241
  licenses:
@@ -242,12 +247,12 @@ require_paths:
242
247
  - lib
243
248
  required_ruby_version: !ruby/object:Gem::Requirement
244
249
  requirements:
245
- - - ">="
250
+ - - ! '>='
246
251
  - !ruby/object:Gem::Version
247
252
  version: '0'
248
253
  required_rubygems_version: !ruby/object:Gem::Requirement
249
254
  requirements:
250
- - - ">="
255
+ - - ! '>='
251
256
  - !ruby/object:Gem::Version
252
257
  version: '0'
253
258
  requirements: []
@@ -263,6 +268,9 @@ test_files:
263
268
  - spec/fixtures/vcr_cassettes/big_commerce_no_records.yml
264
269
  - spec/fixtures/vcr_cassettes/etsy_store_does_not_exist.yml
265
270
  - spec/fixtures/vcr_cassettes/etsy_store_listings.yml
271
+ - spec/fixtures/vcr_cassettes/spree.yml
272
+ - spec/fixtures/vcr_cassettes/spree_invalid_key.yml
273
+ - spec/fixtures/vcr_cassettes/spree_no_records.yml
266
274
  - spec/lib/configuration_spec.rb
267
275
  - spec/lib/mad_cart_spec.rb
268
276
  - spec/lib/model/base_spec.rb
@@ -271,4 +279,5 @@ test_files:
271
279
  - spec/lib/store/base_spec.rb
272
280
  - spec/lib/store/big_commerce_spec.rb
273
281
  - spec/lib/store/etsy_spec.rb
282
+ - spec/lib/store/spree_spec.rb
274
283
  - spec/spec_helper.rb