cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!

Как переопределить функцию валидации JSON схемы?

В codeception rest есть функция для валидации json схемы.
Она выводит первую ошибку из массива ошибок.
Мне нужно переопределить метод и сделать конкатенацию всех ошибок, ну допустим через implode("\n").
Проблема в том что я не могу найти место как это сделать не прибегая форку пакета.
Вот место где это происходит:
https://github.com/Codeception/module-rest/blob/ma...

Когда запускаешь codecept build
Он сам генерирует эту функцию из того что на гите, в такой вид:

/**
     * [!] Method is generated. Documentation taken from corresponding module.
     *
     * Checks whether last response matches the supplied json schema (https://json-schema.org/)
     * Supply schema as json string.
     *
     * Examples:
     *
     * ``` php
     * <?php
     * // response: {"name": "john", "age": 20}
     * $I->seeResponseIsValidOnJsonSchemaString('{"type": "object"}');
     *
     * // response {"name": "john", "age": 20}
     * $schema = [
     *  "properties" => [
     *      "age" => [
     *          "type" => "integer",
     *          "minimum" => 18
     *      ]
     *  ]
     * ];
     * $I->seeResponseIsValidOnJsonSchemaString(json_encode($schema));
     *
     * ```
     *
     * @part json
     * @see \Codeception\Module\REST::seeResponseIsValidOnJsonSchemaString()
     */
    public function seeResponseIsValidOnJsonSchemaString(string $schema): void {
        $this->getScenario()->runStep(new \Codeception\Step\Assertion('seeResponseIsValidOnJsonSchemaString', func_get_args()));
    }


Как переопределить эту функцию, чтобы при генерации, она создавалась с моими изменениями.
Либо может есть другой способ выводить список всех ошибок валидатора, а не только первую ?
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
Сделайте свой метод, там реализация относительно простая, вот весь код

https://github.com/Codeception/module-rest/blob/bb...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы