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