README.md in fitting-1.6.0 vs README.md in fitting-1.6.1
- old
+ new
@@ -1,11 +1,11 @@
# Fitting
[](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.