---
title: "Change a test"
method: PATCH
path: "/v1/apps/{app}/tests/{test}"
tags: ["Tests"]
---

# Change a test

`PATCH /v1/apps/{app}/tests/{test}`

## Request

- Base URL: `https://api.taada.dev`
- URL: `https://api.taada.dev/v1/apps/{app}/tests/{test}`
- Auth: HTTP bearer

Partial: whatever is not sent stays. `blocksPullRequests` switches the test on or off at any time; tests start on. The script is not patched (422 `script_read_only`): save the test again to change it. `tags` replaces the test's tags; `ref` sets or (with null) clears its reference.

## Path parameters

- `app` string, required
- `test` string, required

## Request body

- object
  - `name` string
  - `blocksPullRequests` boolean
  - `about` string
  - `lead` string: The actor who reads the agenda. Defaults to the first, who is always the admin.
  - `cast` object[]
    - `actor` string: The actor's role in the app's cast: `admin`, `client`.
    - `role` string: 166's spelling of `actor`.
    - `name` string
    - `title` string
    - `character` 'pip' | 'juno' | 'bea' | 'moss' | 'fern' | 'tide' | 'otto' | 'nova' | 'iris' | 'lumi' | 'ruby' | 'sol'
    - `voice` 'bella' | 'lily' | 'brian' | 'daniel' | 'mine', nullable
    - `greeting` string
    - `script` object[]: This actor's part.
  - `agenda` object[]
    - `title` string, required
    - `actor` string
    - `role` string
    - `step` string: The id of the actor's step the chapter starts on.
    - `at` integer: Or its place in the actor's own script, counting from 0 (when the steps have no ids yet).
    - `from` integer: 166's index into the whole script, kept for its callers.
    - `line` string
  - `agendaLine` string
  - `closingLine` string
  - `record` 'always' | 'on_failure' | 'never', nullable: Whether a run records: always, only a failure, or never. Null is the default: a saved test records always.
  - `tags` string[]: The test's tags, replacing the ones it has: each names a part of the app in one lowercase word (`companies`), or two joined by `/` (`settings/integrations`): letters, digits and `. _ :`, at most one dash in a word, up to 32 characters, at most 20. A ticket id belongs in `ref`, not a tag. Sent as typed, they are stored lower case with a dash for a space (`Release 2.4` is `release-2.4`). `[]` removes them all. A check can be started on tags (`POST /v1/runs` with `scope`); they never change what a pull request's check runs.
  - `ref` string, nullable: The id your own tool keeps for this test (your feature or ticket id). Unique among the app's tests: 409 `ref_taken` when another test has it. Null clears it. Every result names it, so your tool can act on a failure.

## Response `200`

Default Response

- object

## Other responses

- `400`: Default Response
- `401`: Default Response
- `403`: Default Response
- `404`: Default Response
- `409`: Default Response
- `422`: Default Response
- `429`: Default Response

---

[API](https://skmtc.dev/taada/apis/tada.md) · [All operations](https://skmtc.dev/taada/apis/tada/llms.txt) · [OpenAPI document](https://skmtc.dev/taada/apis/tada/revisions/9079c5c8a580?raw)
