@zuplo/checkly
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

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}

Readme

Keywords

none

Package Sidebar

Install

npm i @zuplo/checkly

Weekly Downloads

83

Version

1.2.0

License

MIT

Unpacked Size

9.31 kB

Total Files

7

Last publish

Collaborators

  • dan-lee
  • zuplo-integrations
  • vazexqi
  • ntotten