grpctestify 1.8.6

gRPC testing utility written in Rust
Documentation
// Document 1: fetch first page and extract cursor
--- ADDRESS ---
localhost:50051

--- ENDPOINT ---
api.ItemService/ListItems

--- REQUEST ---
{
  "category": "electronics",
  "limit": 10
}

--- RESPONSE with_asserts ---
{
  "cursor": "eyJvZmZzZXQiOjEwfQ==",
  "has_more": true,
  "items": [
    {
      "id": "item-1",
      "name": "Laptop"
    },
    {
      "id": "item-2",
      "name": "Phone"
    }
  ],
  "total": 42
}

--- EXTRACT ---

--- ASSERTS ---
item_count == 2
has_more == true

// Document 2: fetch second page using cursor

--- ENDPOINT ---
api.ItemService/ListItems

--- REQUEST ---
{
  "category": "electronics",
  "cursor": "{{next_cursor}}",
  "limit": 10
}

--- RESPONSE with_asserts ---
{
  "cursor": "eyJvZmZzZXQiOjIwfQ==",
  "has_more": true,
  "items": [
    {
      "id": "item-3",
      "name": "Tablet"
    },
    {
      "id": "item-4",
      "name": "Monitor"
    }
  ],
  "total": 42
}

--- EXTRACT ---

--- ASSERTS ---
page2_count == 2
next_cursor != "{{next_cursor}}"

// Document 3: fetch remaining items (last page)

--- ENDPOINT ---
api.ItemService/ListItems

--- REQUEST ---
{
  "category": "electronics",
  "cursor": "{{next_cursor}}",
  "limit": 10
}

--- RESPONSE with_asserts ---
{
  "cursor": "",
  "has_more": false,
  "items": [],
  "total": 42
}

--- ASSERTS ---
@len(.items) == 0
.has_more == false