api-boltAPIBolt

Advanced Examples

Real-world combinations of tests mapping over deeply nested properties, iteration arrays, and complex dynamic logical flows.

Complex Pagination Check

ts
ab.group("Pagination Tests", () => {
  ab.expect("Is Array").toBeType("array");
  ab.expect("Has 10 items").toHaveLength(10);

  const firstItem = ab.response.body[0];
  ab.print("First Item ID", firstItem.id);
  ab.code("First Item ID", ab.response.body, "javascript");
  ab.code("First Item ID", ab.response, "json");

  ab.expect("Has ID").toHaveProperty("0.id");
  ab.expect("Has Metadata").toHaveHeader("x-total-count");
});

Deep Cookie & Security Audit

ts
ab.group("Strict Security Check", () => {
  const sid = ab.cookies("session_id");

  sid.toExist();
  sid.toBeSecure();
  sid.toBeHttpOnly();
  sid.toBeSameSite("strict");
  sid.toExpireAfter(3600); // 1 hour
  sid.toHavePath("/api");
  sid.toHaveDomain("api.production.com");
});

Conditional Logic (Runtime)

ts
const res = ab.response;

if (res.status === 201) {
  ab.group("Resource Created Verification", () => {
    ab.expect("Has Location Header").toHaveHeader("location");
    ab.expect("Body has ID").toHaveProperty("id");
  });
} else {
  ab.print("Warning", "Resource was not created, skipping deep checks.");
  ab.expect("Fallback Status").toBeOK();
}