diff options
author | Rémy Coutable <remy@rymai.me> | 2019-03-12 20:10:24 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-03-14 12:33:48 +0300 |
commit | 9aaa6c3fa4a866f5c7076b7cfe5310f980b9678c (patch) | |
tree | 2137e3586e95181d355c307950ec251f53b1d46b /spec/support/api | |
parent | 26c6b7fc2360c2b0557d331cd3f902af82b6112d (diff) |
Reduce diff with EE in spec/fixtures/api/schemas
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec/support/api')
-rw-r--r-- | spec/support/api/schema_matcher.rb | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/spec/support/api/schema_matcher.rb b/spec/support/api/schema_matcher.rb index f7d74df0656..4cf34d43117 100644 --- a/spec/support/api/schema_matcher.rb +++ b/spec/support/api/schema_matcher.rb @@ -1,10 +1,16 @@ module SchemaPath - def self.expand(schema, dir = '') - Rails.root.join(dir, 'spec', "fixtures/api/schemas/#{schema}.json").to_s + def self.expand(schema, dir = nil) + if Gitlab.ee? && dir.nil? + ee_path = expand(schema, 'ee') + + return ee_path if File.exist?(ee_path) + end + + Rails.root.join(dir.to_s, 'spec', "fixtures/api/schemas/#{schema}.json").to_s end end -RSpec::Matchers.define :match_response_schema do |schema, dir: '', **options| +RSpec::Matchers.define :match_response_schema do |schema, dir: nil, **options| match do |response| @errors = JSON::Validator.fully_validate( SchemaPath.expand(schema, dir), response.body, options) @@ -18,8 +24,16 @@ RSpec::Matchers.define :match_response_schema do |schema, dir: '', **options| end end -RSpec::Matchers.define :match_schema do |schema, dir: '', **options| +RSpec::Matchers.define :match_schema do |schema, dir: nil, **options| match do |data| - JSON::Validator.validate!(SchemaPath.expand(schema, dir), data, options) + @errors = JSON::Validator.fully_validate( + SchemaPath.expand(schema, dir), data, options) + + @errors.empty? + end + + failure_message do |response| + "didn't match the schema defined by #{SchemaPath.expand(schema, dir)}" \ + " The validation errors were:\n#{@errors.join("\n")}" end end |