Ответ 404, когда термин соответствия добавлен в путь API при использовании pact-заглушки-сервера - PullRequest
0 голосов
/ 30 января 2019
  describe('Getting asset for player', () => {
   before(() => {
      return provider.addInteraction({
        given: 'GET call',
        uponReceiving: 'Get asset for player',
         withRequest: {
            method: 'GET',
            path: term({
            matcher: '/api/assets/[0-9]+',
            generate: '/api/assets/10006'
                }),
            },
            willRespondWith: {
                status: 200,
                headers: { 'Content-Type': 'application/json' },
                body: assetByPlayer
            }
        });
    });

    it('Get the asset by player', () => {
        return request.get(`http://localhost:${PORT}/api/assets/10006`)
        .set({ 'Accept': 'application/json' }).then((response) => {
            return expect(Promise.resolve(response.statusCode)).to.eventually.equals(200);
        }).catch(err => {
            console.log("Error in asset with player listing", err);

        });
    });
});

Я получаю json-файл как: https://pastebin.com/TqRbTmNS

Когда я использую json-файл в другой базе кода на сервере-заглушке pact, он получает запрос из пользовательского интерфейса как ===> Полученный запрос(метод: GET, путь: / api / assets / 10006, запрос: нет, заголовки: некоторые ({"actasuserid": "5", "тип контента": "application / vnd.nativ.mio.v1 + json", "host": "masteraccount.local.nativ.tv:30044", "accept": "application / json", "authorization": "Basic bWFzdGVydXNlcjptYXN0ZXJ1c2Vy", "connection": "close", "content-length":"2"}), body: Present (2 байта))

, но не отправляет никакого ответа

Но если я просто удаляю часть правил соответствия "matchRules": {"$ .path": {" match ":" regex "," regex ":" \ / api \ / assets \ / [0-9] + "}} снова начинает работать

===> Полученный запрос(метод: GET, путь: / api / assets / 10006, запрос: нет, заголовки: некоторые ({"authorization": "Basic bWFzdGVydXNlcjptYXN0ZXJ1c2Vy", "accept": "application / json", "content-length": "2"," connection ":" close "," host ":" masteraccount.local.nativ.tv:30044 "," content-type ":" application / vnd.nativ.mio.v1 + json "," actasuserid ":" 5 "}), тело: присутствует (2 байта))

<=== Отправка ответа (статус: 200, заголовки: некоторые ({"Content-Type": "application / json"}), тело: присутствует (4500 байт)) </p>

, и я вижуданные, которые будут присутствовать

Не могли бы вы сказать, что здесь не так?

...