Remove duplicate JSON schema matcher
We had three JSON schema matchers: 1. `match_schema` - takes a data structure and a path to a schema file. 2. `match_response_schema` - takes a response object and a path to a schema file. 3. `according_to_schema` - chained matcher on `be_valid_json`, takes a schema literal. The reason for this is that we wanted to operate on various axes: 1. Are we validating a parsed data structure, or a potentially-JSON string? 2. Are we providing a path to a schema file, or a literal data structure representing a schema? Happily, the library we're using already solves problem 1 for us. https://github.com/ruby-json-schema/json-schema#validation says: > All methods take two arguments, which can be either a JSON string, a > file containing JSON, or a Ruby object representing JSON data. So we just needed to solve concern 2, and we handle that by assuming that if the schema argument is a string, it's not a JSON string representing the schema, but a path to a schema file. To handle the chaining that `according_to_schema` had, we can just use RSpec's `and` method: be_valid_json.and match_schema(build_info_payload_schema)
Showing
Please register or sign in to comment