spec/spec_helper.rb in databound-3.0.3 vs spec/spec_helper.rb in databound-3.1.0
- old
+ new
@@ -16,11 +16,11 @@
obj[key] = JSON.dump(val)
end
end
def rubize(response)
- convert_scoped_records(optionize(JSON.parse(response.body)))
+ convert_records(optionize(JSON.parse(response.body)))
end
def optionize(obj)
case obj
when Array
@@ -28,24 +28,40 @@
else
obj.to_options
end
end
-def convert_scoped_records(obj)
- return obj unless obj.is_a?(Hash)
- result = obj
+def convert_records(data)
+ return data unless data.is_a?(Hash)
- converted = JSON.parse(obj[:scoped_records]).map do |record|
- record.except('created_at', 'updated_at')
- end
+ %i(records scoped_records).each_with_object(data) do |type, obj|
+ next unless data[type]
- result[:scoped_records] = converted
- result
+ obj[type] = JSON.parse(data[type]).map do |r|
+ r.except('created_at', 'updated_at')
+ end
+ end
end
-def gather(attribute, response)
- rubize(response).map { |record| record[attribute] }
+def gather(collection, attribute, response)
+ rubize(response)[collection].map { |record| record.to_options[attribute] }
end
def all_records(model = User)
model.select(:id, :name, :city).map(&:attributes)
+end
+
+def assert_responses(code, error, msg)
+ friendly_handler = controller.class.rescue_handlers.first.last
+
+ controller.class.rescue_from(error) { raise error, msg }
+ expect(code).to raise_error(error, msg)
+
+ # check friendly handler
+ controller.class.rescue_from(error, with: friendly_handler)
+ code.call
+
+ expect(response.status).to eq(error::STATUS)
+ expect(rubize(response)).to eq(
+ message: msg,
+ )
end