Skip to content

Commit e7a2de0

Browse files
committed
Add specs for stock locations
1 parent 328c836 commit e7a2de0

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

api/spec/requests/spree/api/stock_locations_spec.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ module Spree::Api
3636
expect(json_response['name']).to eq stock_location.name
3737
end
3838

39+
it "can see customer metadata" do
40+
get spree.api_stock_location_path(stock_location)
41+
42+
expect(response).to be_successful
43+
expect(json_response).to have_key('customer_metadata')
44+
end
45+
3946
it "cannot see inactive stock locations" do
4047
stock_location.update!(active: false)
4148
get spree.api_stock_location_path(stock_location)
@@ -127,6 +134,13 @@ module Spree::Api
127134
expect(response).to be_successful
128135
expect(json_response['name']).to eq stock_location.name
129136
end
137+
138+
it "can see admin metadata" do
139+
get spree.api_stock_location_path(stock_location)
140+
141+
expect(response).to be_successful
142+
expect(json_response).to have_key('admin_metadata')
143+
end
130144
end
131145

132146
describe "#create" do
@@ -156,6 +170,21 @@ module Spree::Api
156170
expect(response.status).to eq(200)
157171
expect(json_response['name']).to eq 'South Pole'
158172
end
173+
174+
it "can update a stock location and it's metadata" do
175+
params = {
176+
stock_location: {
177+
name: "South Pole",
178+
admin_metadata: { 'warehouse' => 'WH345' }
179+
}
180+
}
181+
182+
put(spree.api_stock_location_path(stock_location), params:)
183+
184+
expect(response.status).to eq(200)
185+
expect(json_response['name']).to eq 'South Pole'
186+
expect(json_response["admin_metadata"]).to eq({ 'warehouse' => 'WH345' })
187+
end
159188
end
160189

161190
describe "#destroy" do

core/spec/models/spree/stock_location_spec.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,5 +285,26 @@ def move
285285
end
286286
end
287287
end
288+
describe "metadata fields" do
289+
subject { described_class.new }
290+
291+
it "responds to customer_metadata" do
292+
expect(subject).to respond_to(:customer_metadata)
293+
end
294+
295+
it "responds to admin_metadata" do
296+
expect(subject).to respond_to(:admin_metadata)
297+
end
298+
299+
it "can store data in customer_metadata" do
300+
subject.customer_metadata = { "location_details" => "classified" }
301+
expect(subject.customer_metadata["location_details"]).to eq("classified")
302+
end
303+
304+
it "can store data in admin_metadata" do
305+
subject.admin_metadata = { "exchange_details" => "classified" }
306+
expect(subject.admin_metadata["exchange_details"]).to eq("classified")
307+
end
308+
end
288309
end
289310
end

0 commit comments

Comments
 (0)