Визуализируйте многоуровневый объект ответа как Таблица в Почтальоне - PullRequest
1 голос
/ 15 апреля 2020

Я хотел бы представить данные ниже в тестах почтальона в виде таблицы с product, price и quantity в столбцах и Items в строках. Возможно, существует несколько групп ShippingGroups.

{
   ...
   "companyGroups": [
        {
            ...
            "shippingGroups": [
                {
                    "id": 1,
                    "items": [
                        {
                            "product": "Product A",
                            "price": 2,
                            "quantity": 1,
                        },
                          {
                            "product": "Product B",
                            "price": 4,
                            "quantity": 4,
                        }

                    ],
                    ...
            ]
        }
    ],

У меня проблемы с использованием {{#each response???}} для ссылок на объекты в объектах нескольких уровней. Ожидаемый формат должен быть примерно таким:

   <table>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Quantity</th>
        </tr>

        {{#each response???}}
            <tr>
                <td>{{???product}}</td>
                <td>{{???price}}</td>
                <td>{{???quantity}}
            </tr>
        {{/each}}
    </table>

Более подробная информация о ответе таблицы почтальона здесь

1 Ответ

0 голосов
/ 15 апреля 2020

Учитывая ваш пример ответа, вы можете использовать что-то вроде этого:

const template = `
   <table>
        <tr>
            <th>Product</th>
            <th>Price</th>
            <th>Quantity</th>
        </tr>

        {{#each responseData}}
        {{#each items}}
            <tr>
                <td>{{product}}</td>
                <td>{{price}}</td>
                <td>{{quantity}}
            </tr>
        {{/each}}
        {{/each}}
    </table>
`;

let responseData = []

_.each(pm.response.json().companyGroups, (item) => {
    _.each(item.shippingGroups, (nestedItem) => {
        responseData.push(nestedItem)
    })
})

pm.visualizer.set(template, { responseData })

Это просто грубый пример, и его необходимо реорганизовать, но он показывает, что вы можете отобразить данные ответа в таблице.

...