Tests

Tests Quickstart

Write and run your first Cuitty test suite in five minutes.

Tests Quickstart

Cuitty Tests lets you write declarative HTTP smoke tests in .ctest files, run them from the CLI or CI, and review results in Test Studio. This guide takes you from install to a passing suite in under five minutes.

Install the CLI

curl -fsSL https://cuitty.com/install.sh | sh
cui --version

Or install with npm:

npm install -g @cuitty/cli

Write your first .ctest file

Create smoke.ctest in your project root. Cuitty tests use an HCL-based DSL:

suite "api-smoke" {
  description = "Verify core API endpoints return 200"

  test "healthcheck" {
    request {
      method = "GET"
      url    = "${env.BASE_URL}/health"
    }

    assert {
      status = 200
    }
  }

  test "list-projects" {
    request {
      method = "GET"
      url    = "${env.BASE_URL}/api/projects"
      headers = {
        Authorization = "Bearer ${env.CUITTY_API_KEY}"
      }
    }

    assert {
      status  = 200
      json    = "$.data | length > 0"
    }
  }
}

Run the suite

Execute the test file against your running environment:

cui tests run smoke.ctest --env BASE_URL=http://localhost:7700

The CLI prints a pass/fail summary for each test. Use --verbose to see full request and response bodies.

View results in Test Studio

If you have the Cuitty portal running, results are automatically pushed to Test Studio. Open the portal and navigate to Tests > Runs to see the timeline, latency breakdown, and assertion details for every request.

Add tests to CI

Drop a step into your GitHub Actions workflow:

- name: Run Cuitty tests
  uses: cuitty/test-action@v1
  with:
    files: "**/*.ctest"
    env: |
      BASE_URL=${{ vars.STAGING_URL }}
      CUITTY_API_KEY=${{ secrets.CUITTY_API_KEY }}
    fail-on: "any"

The action uploads results to Test Studio and fails the workflow if any assertion breaks.

What’s next