twentytwo-labs / behat-open-api
There is no license information available for the latest version (1.0.5) of this package.
Behat contexts
1.0.5
2024-05-30 19:14 UTC
Requires
- php: >=8.1
- ext-json: *
- ext-mbstring: *
- behat/behat: ^3.0
- friends-of-behat/mink-extension: ^2.6
- guzzlehttp/psr7: ^2.3
- symfony/http-foundation: ^5.0|^6.0|^7.0
- symfony/property-access: ^5.0|^6.0|^7.0
- symfony/serializer: ^5.0|^6.0|^7.0
- twentytwo-labs/api-validator: ^2.0
- twentytwo-labs/array-comparator: ^1.0
- webmozart/assert: ^1.11
Requires (Dev)
- friends-of-behat/mink-browserkit-driver: ^1.6
- friendsofphp/php-cs-fixer: ^3.8
- infection/infection: ^0.28
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^10.4
- squizlabs/php_codesniffer: ^3.6
README
Behat Open Api contexts provide most common Api Behat tests.
Installation
This extension requires:
- Behat 3+
- Mink extension
Project dependency
- Install Composer
- Require the package with Composer:
$ composer require --dev twentytwo-labs/behat-open-api
- Activate extension by specifying its class in your
behat.yml
:
# behat.yml default: # ... extensions: TwentytwoLabs\BehatOpenApiExtension: schemaFile: "file:///path/to/your/schema" #optinal
Usage
In behat.yml
, enable desired contexts:
default: suites: default: contexts: - TwentytwoLabs\BehatOpenApiExtension\Context\DebugContext: ~ - TwentytwoLabs\BehatOpenApiExtension\Context\RestContext: ~ - TwentytwoLabs\BehatOpenApiExtension\Context\JsonContext: ~ - TwentytwoLabs\BehatOpenApiExtension\Context\OpenApiContext: ~
Examples
-
TwentytwoLabs\BehatOpenApiExtension\Context\DebugContext
@Then print last response headers
@Then print profiler link
-
TwentytwoLabs\BehatOpenApiExtension\Context\JsonContext
@Then the response should be in JSON
@Then the response should not be in JSON
@Then the JSON node :node should be equal to :text
@Then the JSON nodes should be equal to:
@Then the JSON node :node should match :pattern
@Then the JSON node :node should be null
@Then the JSON node :node should not be null
@Then the JSON node :node should be true
@Then the JSON node :node should be false
@Then the JSON node :node should be equal to the string :text
@Then the JSON node :node should be equal to the number :number
@Then the JSON node :node should have :count element(s)
@Then the JSON node :node should contain :text
@Then the JSON node :node should not contain :text
-
@Then the JSON nodes should contain: | ... |
-
@Then the JSON nodes should not contain: | ... |
@Then the JSON node :name should exist
@Then the JSON node :name should not exist
@Then the JSON should be equal to:
-
@Then I should see JSON with key : | ... |
-
This step link to [Array-comparator](https://github.com/TwentytwoLabs/array-comparator package)@Then the JSON should be match to: | ... |
-
TwentytwoLabs\BehatOpenApiExtension\Context\OpenApiContext
@Then the response should be valid according to the operation id :operationId
-
TwentytwoLabs\BehatOpenApiExtension\Context\RestContext
@Then I add :name header equal to :value
@Given I send a :method request to :path
-
@Given I send a :method request to :path with parameters: | key | value | | ... | ..... |
-
@Given I send a :method request to :path with body: """ { #... } """
@Then /^the response status code should be equal to (?P<code>\d+)$/
-
@Then the response should be equal to: """ { # ... } """
@Then the response should be empty
@Then the header :name should be equal to :value
@Then the header :name should not be equal to :value
@Then the header :name should contain :value
@Then the header :name should not contain :value
@Then the header :name should not exist
@Then the header :name should match :regex
@Then the header :name should not match :regex
@Then the response should expire in the future
@Then the response should be encoded in :encoding