oshpark 0.0.7 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Oshpark::Address do
4
4
  describe ".initialize" do
5
- let(:args) { {name: "Bob", address_line_1: "8 Nelson Street", address_line_2: "Petone", city: "Lower Hutt", country: "New Zealand"} }
5
+ let(:args) { {"address" => {name: "Bob", address_line_1: "8 Nelson Street", address_line_2: "Petone", city: "Lower Hutt", country: "New Zealand"}} }
6
6
 
7
7
  subject { Oshpark::Address.new args }
8
8
  it "creates an address" do
@@ -54,6 +54,17 @@ describe Oshpark::Client do
54
54
  end
55
55
  end
56
56
 
57
+ describe "#pricing" do
58
+ let(:width) { 1000 }
59
+ let(:height) { 1000 }
60
+ let(:layers) { 2 }
61
+
62
+ it "return pricing information" do
63
+ subject.pricing width, height, layers
64
+ expect(connection.requests.last).to eq([:post, "pricing", {width_in_mils: 1000, height_in_mils: 1000, pcb_layers: 2, quantity: nil}])
65
+ end
66
+ end
67
+
57
68
  describe '#orders' do
58
69
  it 'retrieves a list of orders from the API' do
59
70
  subject.orders
@@ -82,7 +93,7 @@ describe Oshpark::Client do
82
93
  let(:quantity) { 6 }
83
94
  it "add an order item to an order" do
84
95
  subject.add_order_item token, project_id, quantity
85
- expect(connection.requests.last).to eq([:put, "orders/#{token}/add_item", {:project_id=>"1234abcd", :quantity=>6}])
96
+ expect(connection.requests.last).to eq([:post, "orders/#{token}/add_item", {order: {:project_id=>"1234abcd", :quantity=>6}}])
86
97
  end
87
98
  end
88
99
 
@@ -91,7 +102,7 @@ describe Oshpark::Client do
91
102
  let(:address) { {"name" => "Bob", "company_name" => nil, "address_line_1" => "8 Nelson Street", "address_line_2" => "Petone", "city" => "Lower Hutt", "state" => nil, "zip_or_postal_code" => nil, "country" => "New Zealand", "phone_number" => nil, "is_business" => nil} }
92
103
  it "set the delivery address for an order" do
93
104
  subject.set_order_address token, address
94
- expect(connection.requests.last).to eq([:put, "orders/#{token}/set_address", {"name" => "Bob", "company_name" => nil, "address_line_1" => "8 Nelson Street", "address_line_2" => "Petone", "city" => "Lower Hutt", "state" => nil, "zip_or_postal_code" => nil, "country" => "New Zealand", "phone_number" => nil, "is_business" => nil}])
105
+ expect(connection.requests.last).to eq([:post, "orders/#{token}/set_address", {order: {address: {"name" => "Bob", "company_name" => nil, "address_line_1" => "8 Nelson Street", "address_line_2" => "Petone", "city" => "Lower Hutt", "state" => nil, "zip_or_postal_code" => nil, "country" => "New Zealand", "phone_number" => nil, "is_business" => nil}}}])
95
106
  end
96
107
  end
97
108
 
@@ -110,7 +121,7 @@ describe Oshpark::Client do
110
121
  let(:service_name) { 'Overnight Delivery' }
111
122
  it "sets the shipping rate for an order" do
112
123
  subject.set_order_shipping_rate token, service_provider, service_name
113
- expect(connection.requests.last).to eq([:put, "orders/#{token}/set_shipping_rate", {carrier_name: "Bobs Mail", service_name: "Overnight Delivery"}])
124
+ expect(connection.requests.last).to eq([:post, "orders/#{token}/set_shipping_rate", {order: {shipping_rate: {carrier_name: "Bobs Mail", service_name: "Overnight Delivery"}}}])
114
125
  end
115
126
  end
116
127
 
@@ -118,7 +129,7 @@ describe Oshpark::Client do
118
129
  let(:token) { 'abcd1234' }
119
130
  it "checks out an order" do
120
131
  subject.checkout_order token
121
- expect(connection.requests.last).to eq([:put, "orders/#{token}/checkout", {}])
132
+ expect(connection.requests.last).to eq([:post, "orders/#{token}/checkout", {}])
122
133
  end
123
134
  end
124
135
 
@@ -9,6 +9,9 @@ describe Oshpark::Model do
9
9
  def self.write_attrs
10
10
  [ 'bob' ]
11
11
  end
12
+ def self.name
13
+ "Klass"
14
+ end
12
15
 
13
16
  end
14
17
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ describe Oshpark::Price do
4
+ before do
5
+ Oshpark::client url: 'blarg', connection: FakeClient.new("foo")
6
+ end
7
+
8
+ subject { Oshpark::Price.new({}) }
9
+ it { should be_an Oshpark::Model }
10
+
11
+ describe 'price_for' do
12
+ let(:width) { 1000 }
13
+ let(:height) { 1000 }
14
+ let(:layers) { 2 }
15
+ subject { Oshpark::Price.price_for width, height, layers }
16
+
17
+ before do
18
+ expect(Oshpark::client).to receive(:pricing).
19
+ with(1000, 1000, 2, nil).
20
+ and_return({'pricing' => {batch_cost: "5.00", subtotal: "10.00"}})
21
+ end
22
+
23
+ it "returns a price" do
24
+ expect(subject).to be_an Oshpark::Price
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,17 @@
1
+ module Helper
2
+ def cleanup
3
+ Oshpark.client.authenticate ENV['USERNAME'], with_api_secret: ENV['API_SECRET']
4
+
5
+ Oshpark.client.projects['projects'].each do |project|
6
+ Oshpark.client.destroy_project project['id']
7
+ end
8
+
9
+ Oshpark.client.orders['orders'].each do |order|
10
+ Oshpark.client.cancel_order order['id']
11
+ end
12
+
13
+ rescue
14
+ ensure
15
+ Oshpark.client.abandon
16
+ end
17
+ end
@@ -0,0 +1,26 @@
1
+ require 'dotenv'
2
+ Dotenv.load
3
+
4
+ require 'vcr'
5
+
6
+ VCR.configure do |config|
7
+ config.cassette_library_dir = File.expand_path('../../fixtures/cassettes/', __FILE__)
8
+ config.hook_into :webmock
9
+
10
+ config.filter_sensitive_data('USERNAME') { ENV['USERNAME'] }
11
+ config.filter_sensitive_data('PASSWORD') { ENV['PASSWORD'] }
12
+ end
13
+
14
+ module SwitchCassette
15
+ def self.extended base
16
+ base.around(:each) do |example|
17
+ opts = { preserve_exact_body_bytes: true }
18
+ opts[:record] = if ENV['CI']
19
+ :all
20
+ else
21
+ :none
22
+ end
23
+ VCR.use_cassette example.example_group.name.strip, opts, &example
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oshpark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Harton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-17 00:00:00.000000000 Z
12
+ date: 2014-12-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -26,7 +26,7 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  version: '1.6'
28
28
  - !ruby/object:Gem::Dependency
29
- name: cucumber
29
+ name: rspec-core
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
@@ -40,7 +40,7 @@ dependencies:
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
- name: rspec-core
43
+ name: rspec-mocks
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ">="
@@ -54,7 +54,7 @@ dependencies:
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  - !ruby/object:Gem::Dependency
57
- name: rspec-mocks
57
+ name: rspec-its
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ">="
@@ -68,7 +68,7 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
- name: rspec-its
71
+ name: guard-rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -82,7 +82,7 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
- name: guard-rspec
85
+ name: guard-bundler
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
@@ -96,7 +96,7 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: guard-cucumber
99
+ name: pry
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
@@ -110,7 +110,7 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
- name: guard-bundler
113
+ name: rake
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
@@ -124,7 +124,7 @@ dependencies:
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
- name: pry
127
+ name: byebug
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - ">="
@@ -138,7 +138,7 @@ dependencies:
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
- name: rake
141
+ name: vcr
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
@@ -152,7 +152,21 @@ dependencies:
152
152
  - !ruby/object:Gem::Version
153
153
  version: '0'
154
154
  - !ruby/object:Gem::Dependency
155
- name: byebug
155
+ name: webmock
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: dotenv
156
170
  requirement: !ruby/object:Gem::Requirement
157
171
  requirements:
158
172
  - - ">="
@@ -225,7 +239,9 @@ files:
225
239
  - lib/oshpark/order_item_option_selection.rb
226
240
  - lib/oshpark/order_option.rb
227
241
  - lib/oshpark/panel.rb
242
+ - lib/oshpark/price.rb
228
243
  - lib/oshpark/project.rb
244
+ - lib/oshpark/remote_model.rb
229
245
  - lib/oshpark/rubymotion.rb
230
246
  - lib/oshpark/shipping_rate.rb
231
247
  - lib/oshpark/stateful.rb
@@ -234,6 +250,11 @@ files:
234
250
  - lib/oshpark/user.rb
235
251
  - lib/oshpark/version.rb
236
252
  - oshpark.gemspec
253
+ - spec/acceptance/authentication_spec.rb
254
+ - spec/acceptance/workflow_spec.rb
255
+ - spec/fixtures/2-Layer.brd
256
+ - spec/fixtures/cassettes/RSpec_ExampleGroups_APIWorkflow.yml
257
+ - spec/fixtures/cassettes/RSpec_ExampleGroups_APIWorkflow_WhenPayingByInvoice.yml
237
258
  - spec/lib/oshpark/address_spec.rb
238
259
  - spec/lib/oshpark/client_spec.rb
239
260
  - spec/lib/oshpark/image_spec.rb
@@ -242,11 +263,14 @@ files:
242
263
  - spec/lib/oshpark/model_spec.rb
243
264
  - spec/lib/oshpark/order_spec.rb
244
265
  - spec/lib/oshpark/panel_spec.rb
266
+ - spec/lib/oshpark/price_spec.rb
245
267
  - spec/lib/oshpark/project_spec.rb
246
268
  - spec/lib/oshpark/shipping_rate_spec.rb
247
269
  - spec/lib/oshpark/upload_spec.rb
248
270
  - spec/spec_helper.rb
271
+ - spec/support/helper.rb
249
272
  - spec/support/http_client.rb
273
+ - spec/support/vcr.rb
250
274
  homepage: ''
251
275
  licenses:
252
276
  - MIT
@@ -272,6 +296,11 @@ signing_key:
272
296
  specification_version: 4
273
297
  summary: API and command line client for oshpark.com
274
298
  test_files:
299
+ - spec/acceptance/authentication_spec.rb
300
+ - spec/acceptance/workflow_spec.rb
301
+ - spec/fixtures/2-Layer.brd
302
+ - spec/fixtures/cassettes/RSpec_ExampleGroups_APIWorkflow.yml
303
+ - spec/fixtures/cassettes/RSpec_ExampleGroups_APIWorkflow_WhenPayingByInvoice.yml
275
304
  - spec/lib/oshpark/address_spec.rb
276
305
  - spec/lib/oshpark/client_spec.rb
277
306
  - spec/lib/oshpark/image_spec.rb
@@ -280,8 +309,11 @@ test_files:
280
309
  - spec/lib/oshpark/model_spec.rb
281
310
  - spec/lib/oshpark/order_spec.rb
282
311
  - spec/lib/oshpark/panel_spec.rb
312
+ - spec/lib/oshpark/price_spec.rb
283
313
  - spec/lib/oshpark/project_spec.rb
284
314
  - spec/lib/oshpark/shipping_rate_spec.rb
285
315
  - spec/lib/oshpark/upload_spec.rb
286
316
  - spec/spec_helper.rb
317
+ - spec/support/helper.rb
287
318
  - spec/support/http_client.rb
319
+ - spec/support/vcr.rb