Как использовать ajv.addFormat () в почтальоне с javascript - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь проверить формат запроса данных в почтальоне. Данные имеют тип 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",
};

1 Ответ

0 голосов
/ 24 февраля 2020

Приведенный вами пример тела ответа:

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

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

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)
});
...