Mountebank использует неправильный предикат и игнорирует значение в contains

Я пробовал их документацию, но она очень проста, так что надеюсь, что кто-нибудь здесь сможет определить мою проблему? У меня есть 2 предиката, один с неправильным пользователем, один с правильным пользователем. Base64 пользователя отправляется через post-body, но кажется, что contains Mountebank просто игнорирует его и выбирает предикат с другим значением contains ... почему это так?

мой запрос с dX...2g=:

"body":"{\"auth\":\"dXNlcjpmYWxzY2g=\"}"

но Mountebank сопоставляет предикат с dX...Gln:

using predicate match: [{
   "equals":{"method":"POST","path":"/new"},
   "contains":{"body":"{\"auth\":\"dXNlcjpyaWNodGln\""}
}]

Содержит не совпадает, и все же он использует этот предикат, хотя мои заглушки содержат соответствующий предикат, но он не используется:

{
  "path": "/new",
  "predicates": [{
    "equals": {
      "method": "POST",
      "path": "/new"
    },
    "contains": {
      "body": "{\"auth\":\"dXNlcjpyaWNodGln\""
    }
  }],
  "responses": [{
    "is": {
      "statusCode": 200,
      "body": {}
      }
    }
  }]
}
,
{
  "path": "/new",
  "predicates": [{
    "equals": {
      "method": "POST",
      "path": "/new"
    },
    "contains": {
      "body": "{\"auth\":\"dXNlcjpmYWxzY2g=\""
    }
  }],
  "responses": [{
    "is": {
      "statusCode": 401,
      "body": {}
      }
    }
  }]
}

Мой синтаксис неверен? Он соответствует первому предикату, хотя и не содержит dXNlcjpmYWxzY2g=. Он работает с использованием equals, мне просто любопытно, почему contains нет.


person MushyPeas    schedule 11.08.2020    source источник


Ответы (1)


Хитрость, казалось, заключалась в использовании and, что странно, но решение было бы таким:

"predicates": [{
  "and": [
    { "equals": { "method": "POST", "path": "/new" }},
    { "contains": { "body": "{\"auth\":\"dXNlcjpyaWNodGln\"" }}
  ]
}],
person MushyPeas    schedule 11.08.2020