API reference / Tests and incidents
Run tests
Runs tests of the library at a place to test: the ones named in tests, or else every active test (only the main path with smoke). On production, only tests that change no data run. The QA tester runs each test in its own browser, one after the other, and reports what passed and what failed, with pictures. Answers 202: poll statusUrl. A workspace starts 300 test runs a day, and an organization works on 2 at one time: the others wait in the queue.
/api/v1/test-runsOther ways to call it
troopy tests runtroopy_run_testsIdempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.Body
application/jsonenvironment*stringThe place to test
testsarray<string>The tests to run, by id. Left out: every active test
At most 50 items
smokebooleanWithout tests: only the tests of the main path
Response
202 · application/jsondata*object18 properties
id*stringA 24-character id
kind*enum<string>ticket: a change. review: Troopy's code review of a change. screens: the blind critic's look at the pictures of a change. cases: tests of the library. explore: a look for problems. first_users: the QA tester tries it as 5 kinds of new user. check: whether the place loads
ticketreviewscreenscasesexplorefirst_userscheck
status*enum<string>queuedrunningdonecanceled
waitingFor*enum<string> | nullIn the queue: a QA tester to hire, one of the workspace's 2 places, the computer, a release that reaches Production, or a Claude plan that is out of usage
qaslotcomputerdeployplan
verdict*enum<string> | nullWhen done: fail when a part failed, blocked when a part couldn't be checked, pass only when each part passed
passfailblocked
error*string | nullWhy it ended early: its place didn't load or is gone, or its ticket moved on
environment*object | nullThe place, as it was when the run started: a place to test, or a preview of a ticket's change. Null when it reads only the code of the change
4 properties
id*string | nullNull for the preview of a ticket's change, which is no place of the workspace
name*stringkind*enum<string>productionstagingpreview
url*stringnote*string | nullWhat Troopy noted on the way, like a preview that didn't load
ticket*object | nullThe engineering ticket whose change it tests: its key, its pull request, and the commit tested
5 properties
id*stringA 24-character id
key*stringrepo*stringpr*integersha*stringprogress*objectIts parts: one for each test, or one for a ticket or a look
2 properties
done*integertotal*integertrigger*enum<string> | nullschedule: its place's schedule started it. release: a release started it. null: a person, the API or a ticket
schedulerelease
release*object | nullA check after a release: the tickets that the release took live
1 properties
tickets*array<object>2 properties
id*stringA 24-character id
key*stringreplayed*integerParts that replayed a test's recording whole, with no AI
replaying*booleanTroopy replays a part now, with no AI
createdBy*objectWho wrote it
3 properties
type*enum<string>personagentapi
id*stringname*stringcreatedAt*stringISO 8601 date and time
finishedAt*string | nullstatusUrl*string