Skip to content
On this page

Response Query

The res object that is available inside the vars, assertions and scripting contexts can be queried for data by invoking it like below.

Think of it as lodash.get() on steroids

javascript
res('order.total')

Examples

javascript
const data = {
  customer: {
    address: {
      city: "bangalore"
    },
    orders: [
      {
        id: "order-1",
        items: [
          { id: 1, amount: 10 },
          { id: 2, amount: 20 },
        ]
      },
      {
        id: "order-2",
        items: [
          { id: 3, amount: 30, },
          { id: 4, amount: 40 }
        ]
      }
    ]
  },
};
QueryOutput
res("customer.address.city")bangalore
res("customer.orders.items.amount")[10, 20, 30, 40]
res(""customer.orders.items.amount[0]")10
res("..items.amount")[10, 20, 30, 40]
res("..amount")[10, 20, 30, 40]
res("..items.amount[0]")10
res("..items[0].amount")10
res("..items[5].amount")undefined
res("..id")["order-1", 1, 2, "order-2", 3, 4]
res("customer.orders.foo")undefined
res("..customer.foo")undefined
res("..address")[{ city: "bangalore" }]
res("..address[0]"){ city: "bangalore" }

API

Standard dot notation

Example:

javascript
res('customer.orders.items.amount')

Deep navigation .. double dots

Example:

javascript
res('..items.amount')

Array indexing

Example:

javascript
res('..items[0].amount')

Array filtering [?] with corresponding filter function

Example:

javascript
res('..items[?].amount', i => i.amount > 20)

Array mapping [?] with corresponding mapper function

Example:

javascript
res('..items[?].amount', i => i.amount + 10)