about summary refs log tree commit diff
path: root/spec/support/matchers
diff options
context:
space:
mode:
authorMeisam <39205857+MFTabriz@users.noreply.github.com>2022-12-15 15:43:05 +0100
committerGitHub <noreply@github.com>2022-12-15 15:43:05 +0100
commit6cdbc345f4ed824b9491ac6b53406c44e23f7ba5 (patch)
tree9f58bba91c00ab45af4943b0b966551445ef7feb /spec/support/matchers
parentf239d31f23b8bd55fb26f67906b815e4abe65d92 (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.rb6
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