diff options
| author | Teddy Wing | 2017-08-25 18:11:06 +0200 |
|---|---|---|
| committer | Teddy Wing | 2017-08-25 18:11:06 +0200 |
| commit | 9e4616f8dd82545aa2101aee96ca08615343c28e (patch) | |
| tree | 7bf09039a1147c5fabff28b25c0eac82499b668f /app | |
| parent | 614719bfd45d496c686366842fa57277e71664dd (diff) | |
| download | chouette-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.rb | 4 |
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 |
