about summary refs log tree commit diff
path: root/spec/controllers/well_known/nodeinfo_controller_spec.rb
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/controllers/well_known/nodeinfo_controller_spec.rb
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/controllers/well_known/nodeinfo_controller_spec.rb')
-rw-r--r--spec/controllers/well_known/nodeinfo_controller_spec.rb2
1 files changed, 2 insertions, 0 deletions
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 694bb0fb9..36e85f20d 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -27,6 +27,8 @@ describe WellKnown::NodeInfoController, type: :controller do
 
       json = body_as_json
 
+      expect({ "foo" => 0 }).not_to match_json_schema("nodeinfo_2.0")
+      expect(json).to match_json_schema("nodeinfo_2.0")
       expect(json[:version]).to eq '2.0'
       expect(json[:usage]).to be_a Hash
       expect(json[:software]).to be_a Hash