summaryrefslogtreecommitdiff
path: root/spec/support/api/schema_matcher.rb
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-06-06 19:35:28 +0200
committerPawel Chojnacki <pawel@chojnacki.ws>2017-06-06 19:35:28 +0200
commit969b812433b6030b15b591ec5862daae1b707025 (patch)
tree478affbb74c02b08ff97cc9e94b00038c9b89a0c /spec/support/api/schema_matcher.rb
parentccf89acc7145bb129f5666108854daa71a022827 (diff)
downloadgitlab-ce-969b812433b6030b15b591ec5862daae1b707025.tar.gz
Add schema matcher for non response objects + use schema to test additional metrics compliance
Diffstat (limited to 'spec/support/api/schema_matcher.rb')
-rw-r--r--spec/support/api/schema_matcher.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/spec/support/api/schema_matcher.rb b/spec/support/api/schema_matcher.rb
index e42d727672b..dff0dfba675 100644
--- a/spec/support/api/schema_matcher.rb
+++ b/spec/support/api/schema_matcher.rb
@@ -1,8 +1,16 @@
+def schema_path(schema)
+ schema_directory = "#{Dir.pwd}/spec/fixtures/api/schemas"
+ "#{schema_directory}/#{schema}.json"
+end
+
RSpec::Matchers.define :match_response_schema do |schema, **options|
match do |response|
- schema_directory = "#{Dir.pwd}/spec/fixtures/api/schemas"
- schema_path = "#{schema_directory}/#{schema}.json"
+ JSON::Validator.validate!(schema_path(schema), response.body, options)
+ end
+end
- JSON::Validator.validate!(schema_path, response.body, options)
+RSpec::Matchers.define :match_schema do |schema, **options|
+ match do |data|
+ JSON::Validator.validate!(schema_path(schema), data, options)
end
end