Как использовать ajv.addFormat() в почтальоне с javascript

Я пытаюсь проверить формат вызова запроса данных в почтальоне. Данные имеют тип uuid и относятся к идентификатору свойства (показано ниже).

Может ли кто-нибудь помочь с этим?

Это мой код:


var jsonData = JSON.parse(responseBody);

var Ajv = require('ajv'),
ajv = new Ajv ({logger: console}),
schemaResponse = {
        "required": [
        "id",
        "ID",
    ],
        "type": "object",
        "properties": {
         "id": {
            "type": "string",
            "format": "uuidFormatCheck"
         }
};


Code wise it is like this:

var currentSchPmExpTest;

pm.test('Schema is valid', function() {
    //var data = pm.response.json();

    ajv.addFormat('uuidFormatCheck', /^[0-9e-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);

    currentSchPmExpTest = "schemaResponse variable";
    pm.expect(ajv.validate(schemaResponse, jsonData)).to.be.true;
});

Реакция организма такая:

{
    "sfsid": "11c22abc-c11a-1df2-ba3a-123a456b78f1",
};

person Peter R    schedule 24.02.2020    source источник
comment
Схема недействительна и не соответствует ни одному из добавленных вами текстов ответа. Можете ли вы обновить вопрос с правильными деталями, пожалуйста.   -  person Danny Dainton    schedule 24.02.2020


Ответы (1)


Учитывая приведенный вами пример тела ответа:

{
    "sfsid": "11c22abc-c11a-1df2-ba3a-123a456b78f1"
}

Вы можете использовать AJV в Postman следующим образом:

let schemaResponse = {
  "type": "object",
  "required": [
    "sfsid"
  ],
  "properties": {
    "sfsid": {
      "type": "string",
      "pattern": "^(\{{0,1}([0-9a-fA-F]){8}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){4}-([0-9a-fA-F]){12}\}{0,1})$"
    }
  }
};

pm.test('Schema is valid', function() {
    pm.response.to.have.jsonSchema(schemaResponse)
});
person Danny Dainton    schedule 24.02.2020
comment
Большое спасибо за ваш ответ @DannyDainton, однако это все еще не сработало. - person Peter R; 24.02.2020
comment
Что не работает? Возможно, вам нужно уточнить это, вы видели ошибку? Можете ли вы отредактировать и обновить свой исходный вопрос с подробностями. - person Danny Dainton; 24.02.2020
comment
простите, я идиот. Однако, похоже, это сработало только для этой конкретной части данных файла JSON. Знаешь, почему бы это? Когда я пытаюсь использовать полную схему, частью которой является sfsid, она не работает. - person Peter R; 24.02.2020
comment
Я не знаю, как выглядит остальная часть схемы/ответа, поэтому я не знаю, что вы используете. Этот код будет соответствовать только телу ответа примера. - person Danny Dainton; 24.02.2020