@zuplo/checkly

v1.2.0
This is a helper that makes it easy to use Checkly with Zuplo APIs.

Zuplo Checkly Utilities

A simple wrapper utility for Checkly API tests that makes it easier to write and manage tests.

The key change here is that the utility allows writing tests using fetch API standard objects (Request, Headers, etc.) rather than using key/value pairs.

Installation

npm install @zuplo/checkly

Usage

The library outputs two functions: check and asserts.

import { asserts, check } from "@zuplo/checkly";

The check function is similar to the Checkly ApiChecks construct, but uses a modified version of ApiCheckProps object that uses fetch API standard objects.

The object is structured as follows:

Omit<ApiCheckProps, "request"> & {
  request: Omit<RequestInit, "body"> & { url: string; body?: string };
  assertions: Assertion[] | undefined;
}

The asserts function is just an alias to Checkly's AssertionBuilder class.

The url property in the request object is the only required property and must be a relative path. The value of ENVIRONMENT_URL will be prepended to the path when the check is run.

NOTE: The id value of each check is generated automatically using the name of the test because I find it tiresome to write IDs manually for each test. :)

Running Tests

Running the tests is done normally using the Checkly CLI. The ENVIRONMENT_URL environment variable must be set to the base URL of the API.

npx checkly test run -e ENVIRONMENT_URL=https://example.com

Examples

Basic check

import { asserts, check } from "@zuplo/checkly";

check({
  name: "Should return okay",
  request: {
    url: "/hello-world",
  },
  assertions: [asserts().statusCode().equals(200)],
});

Check with Headers

import { asserts, check } from "@zuplo/checkly";

check({
  name: "Should send headers",
  request: {
    url: "/hello-world",
    method: "GET",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer token",
    },
  },
  assertions: [asserts().statusCode().equals(200)],
});

Check with Body

import { asserts, check } from "@zuplo/checkly";

check({
  name: "Should send a body",
  request: {
    url: "/hello-world",
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ key: "value" }),
  },
  assertions: [asserts().statusCode().equals(200)],
});

Release

To run a new release, run the following command:

npm version {major|minor|patch}
npm i @zuplo/checkly

Metadata

  • MIT
  • Whatever
  • Zuplo, Inc.
  • released 8/27/2024

Downloads