README.md in fitting-1.6.0 vs README.md in fitting-1.6.1

- old
+ new

@@ -1,11 +1,11 @@ # Fitting [![Build Status](https://travis-ci.org/funbox/fitting.svg?branch=master)](https://travis-ci.org/funbox/fitting) -This gem will help to realize your API in strict accordance with the documentation in the format API Bluprint. -To do this, when you run your RSpes tests on the controller, in the documentation automatically searches for the json-schema and then validate it with a response in the test. +This gem will help you implement your API in strict accordance to the documentation in [API Bluprint](https://apiblueprint.org/) format. +To do this, when you run your RSpec tests on controllers, it automatically searches for the corresponding json-schemas in the documentation and then validates responses with them. ## Installation Add this line to your application's Gemfile: @@ -25,89 +25,93 @@ In your `spec_helper.rb`: ```ruby Fitting.configure do |config| - config.apib_path = `doc.apib` + config.apib_path = '/path/to/doc.apib' end ``` ## Example output -After running tests you will get statistics in the console. +After running tests you will get statistics in the console: ``` Fully conforming requests: DELETE /api/v1/book ✔ 200 ✔ 201 ✔ 404 DELETE /api/v1/book/{id} ✔ 200 ✔ 201 ✔ 404 GET /api/v1/book/{id}/seller ✔ 200 ✔ 201 ✔ 404 - + Partially conforming requests: GET /api/v1/book ✖ 200 ✔ 404 POST /api/v1/book ✖ 200 ✔ 201 ✔ 404 GET /api/v1/book/{id} ✖ 200 ✔ 404 ✔ 200 PATCH /api/v1/book/{id} ✖ 200 ✔ 201 ✔ 404 - + Non-conforming requests: GET /api/v1/seller ✖ 200 ✖ 201 ✖ 404 GET /api/v1/buyer ✖ 200 ✖ 404 - + API requests with fully implemented responses: 3 (33.33% of 9). API requests with partially implemented responses: 4 (44.44% of 9). API requests with no implemented responses: 2 (22.22% of 9). - + API responses conforming to the blueprint: 16 (64.00% of 25). API responses with validation errors or untested: 9 (36.00% of 25). ``` ## Matchers -If you want know describe why you get crosses instead of checkmarks you can use matchers for RSpec. +If you want to know why you get crosses instead of checkmarks you can use matchers for RSpec. +```ruby +config.include Fitting::Matchers, type: :controller +``` + ### match_response -Makes a simple validation JSON Schema. +Makes a simple validation against JSON Schema. -``` +```ruby expect(response).to match_response ``` ### strict_match_response -Makes a strict validation JSON Schema. All properties are condisidered to have `"required": true` and all objects `"additionalProperties": false`. +Makes a strict validation against JSON Schema. All properties are condisidered to have `"required": true` and all objects `"additionalProperties": false`. -``` +```ruby expect(response).to strict_match_response ``` ## Config ### apib_path -Path for API Blueprint documentation. There must be an installed library [drafter](https://github.com/apiaryio/drafter). +Path to API Blueprint documentation. There must be an installed [drafter](https://github.com/apiaryio/drafter) to parse it. ### drafter_yaml_path -Path for API Blueprint documentation after use drafter and transformation in yaml. +Path to API Blueprint documentation pre-parsed with `drafter` and saved to a YAML file. ### necessary_fully_implementation_of_responses -Default `true`. It returns `exit 1` if not implemented all(with tests expect match response) the responses. +Default `true`. It returns `exit 1` if not all responses are implemented according to the documentation. For this to work, `match_response` (see above) should run. ### strict -Default `false`. If `true` than all properties are condisidered to have `"required": true` and all objects `"additionalProperties": false`. +Default `false`. If `true` then all properties are condisidered to have `"required": true` and all objects `"additionalProperties": false`. ### prefix -Prefix for request. +Prefix of API requests. Example: `'/api'`. ### white_list -Default all resources. This is an array of resources that are mandatory for implementation. -This list does not affect the work of the match expert. -This list is only for the report in the console and verify implementation. +Default: all resources. This is an array of resources that are mandatory for implementation. +This list does not affect the work of the matcher. +This list is only for the report in the console. ```ruby config.white_list = { '/users' => ['DELETE', 'POST'], '/users/{id}' => ['GET', 'PATCH'], @@ -116,22 +120,16 @@ } ``` Empty array `[]` means all methods. -Result be two statistic for two list. - ### create_report_with_name -Create report with name. +File name for the report. ### show_statistics_in_console Default `true`. - -## Report - -Autogenerate `report_request_by_response.yaml` and `report_response.yaml reports`. ## Contributing Bug reports and pull requests are welcome on GitHub at https://github.com/funbox/fitting. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.