diff options
author | Meisam <39205857+MFTabriz@users.noreply.github.com> | 2022-12-15 15:43:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-15 15:43:05 +0100 |
commit | 6cdbc345f4ed824b9491ac6b53406c44e23f7ba5 (patch) | |
tree | 9f58bba91c00ab45af4943b0b966551445ef7feb /spec/support/matchers | |
parent | f239d31f23b8bd55fb26f67906b815e4abe65d92 (diff) |
Validate nodeinfo response by schema (#21395)
* add json-schema to :test in Gemfile * Create node_info_2.0_schema.json * test match_response_schema * Create match_response_schema.rb * Update nodeinfo_controller_spec.rb * Rename spec/support/node_info_2.0_schema.json to spec/support/schema/node_info_2.0_schema.json * Update match_response_schema.rb * cleanup * additionally validate the json schema itself disable throwing errors test the schema matcher * rename nodeinfo schema to nodeinfo_2.0 * use Rails.root.join to construct the path * prettify json * sync Gemfile.lock
Diffstat (limited to 'spec/support/matchers')
-rw-r--r-- | spec/support/matchers/json/match_json_schema.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/spec/support/matchers/json/match_json_schema.rb b/spec/support/matchers/json/match_json_schema.rb new file mode 100644 index 000000000..5d9c9a618 --- /dev/null +++ b/spec/support/matchers/json/match_json_schema.rb @@ -0,0 +1,6 @@ +RSpec::Matchers.define :match_json_schema do |schema| + match do |input_json| + schema_path = Rails.root.join('spec', 'support', 'schema', "#{schema}.json").to_s + JSON::Validator.validate(schema_path, input_json, validate_schema: true) + end +end |