awuttig/codeception-api-validator

There is no license information available for the latest version (2.0.1) of this package.

Validate API Requests and Responses against Swagger / OpenAPI definitions

2.0.1 2022-10-26 08:55 UTC

This package is auto-updated.

Last update: 2024-10-26 12:59:00 UTC


README

Validate API Requests and Responses against Swagger / OpenAPI definitions

Installation

You need to add the repository into your composer.json file

    composer require --dev awuttig/codeception-api-validator

Usage

You can use this module as any other Codeception module, by adding 'ApiValidator' to the enabled modules in your Codeception suite configurations.

Enable module and setup the configuration variables

  • The schema could be set in config file directly and via $I->haveOpenApiSchema or $I->haveSwaggerSchema
modules:
    enabled:
        - ApiValidator:
            depends: REST
            schema: '/tests/_data/swagger.yaml'
            

Update Codeception build

  codecept build

Implement the cept / cest

  $I->wantToTest('Validate request and response against OpenAPI Specification.');
  
  $I->sendGET('api/foo/bar');
  
  $I->seeRequestIsValid();
  $I->seeResponseIsValid(); 

Methods

seeRequestIsValid()

Validates the current request against the current schema definiton.

  $I->seeRequestIsValid();
  

seeResponseIsValid()

Validates the current response against the current schema definiton.

  $I->seeRequestIsValid();
  

seeRequestAndResponseAreValid()

Validates the current request and response against the current schema definiton.

  $I->seeRequestAndResponseAreValid();
  

haveOpenAPISchema()

Set the path to the OpenAPI Schema Specification

  $schema = 'file://' . codecept_root_dir('../../web/api/documentation/swagger.yaml');
  $I->haveOpenAPISchema($schema);
  

haveSwaggerSchema()

Set the path to the Swagger Schema Specification

  $schema = 'file://' . codecept_root_dir('../../web/api/documentation/swagger.yaml');
  $I->haveSwaggerSchema($schema);
  

Authors

  • AndrĂ© Wuttig - Concept, Initial work - aWuttig

See also the list of contributors who participated in this project.