aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorTeddy Wing2017-08-25 18:11:06 +0200
committerTeddy Wing2017-08-25 18:11:06 +0200
commit9e4616f8dd82545aa2101aee96ca08615343c28e (patch)
tree7bf09039a1147c5fabff28b25c0eac82499b668f /app
parent614719bfd45d496c686366842fa57277e71664dd (diff)
downloadchouette-core-9e4616f8dd82545aa2101aee96ca08615343c28e.tar.bz2
ErrorFormat: Change collection structure
These tests were failing: 1) NetexImport POST netex_imports with correct credentials and incorrect request behaves like illegal attributes missing file does not succeed Failure/Error: expect( json_response_body['errors'][bad_attribute.to_s] ).not_to be_empty TypeError: no implicit conversion of String into Integer Shared Example Group: "illegal attributes" called from ./spec/requests/api/v1/netex_import_spec.rb:90 # ./spec/requests/api/v1/netex_import_spec.rb:77:in `[]' # ./spec/requests/api/v1/netex_import_spec.rb:77:in `block (6 levels) in <top (required)>' # -e:1:in `<main>' 2) NetexImport POST netex_imports with correct credentials and incorrect request name already taken behaves like illegal attributes missing name does not succeed Failure/Error: expect( json_response_body['errors'][bad_attribute.to_s] ).not_to be_empty TypeError: no implicit conversion of String into Integer Shared Example Group: "illegal attributes" called from ./spec/requests/api/v1/netex_import_spec.rb:96 # ./spec/requests/api/v1/netex_import_spec.rb:77:in `[]' # ./spec/requests/api/v1/netex_import_spec.rb:77:in `block (6 levels) in <top (required)>' # -e:1:in `<main>' The problem was caused by the fact that the error messages come back from `ErrorFormat` as an array of hashes, which contain a single key corresponding to the invalid field. Instead, the error messages should be returned as a single hash with a bunch of keys corresponding to the invalid fields. This change gets the above tests to pass.
Diffstat (limited to 'app')
-rw-r--r--app/models/concerns/error_format.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/app/models/concerns/error_format.rb b/app/models/concerns/error_format.rb
index 4e6b3f328..7f5c357ce 100644
--- a/app/models/concerns/error_format.rb
+++ b/app/models/concerns/error_format.rb
@@ -1,7 +1,9 @@
module ErrorFormat extend self
def details error_object
- error_object.errors.messages.map(&partial(:detail, error_object))
+ error_object.errors.messages.inject({}) do |hash, error|
+ hash.merge(partial(:detail, error_object, error).call)
+ end
end
private