Projects
🚧
The Testify API is still in alpha and is subject to change without notice. Please contact us if you have any questions.
Get a list of your existing projects, create a new project, update an existing project, or delete a project.
GET /v1/projects
Get a list of your existing projects.
Query Parameters
Relations should be specified as a comma-separated list of values. Valid relations for this endpoint are:
cases
milestones
test_runs
{
limit?: number;
offset?: number;
relations?: string;
}
Response
{
projects: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
name: string;
identifier: string;
icon: string;
color: string;
cases?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
preconditions: string;
comments?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
content: string;
}[];
steps: {
action: string;
expectation: string;
}[];
customFields: { [key: string]: any };
}[];
milestones?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
testRuns?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
milestoneId?: string;
tests?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
preconditions: string;
steps: {
action: string;
expectation: string;
}[];
assignedTo: string;
result: "passed" | "failed" | "inProgress" | "untested";
case?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
preconditions: string;
comments?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
content: string;
}[];
steps: {
action: string;
expectation: string;
}[];
customFields: { [key: string]: any };
};
caseId: string;
comments?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
content: string;
}[];
}[];
results?: {
total: number;
passed: number;
failed: number;
inProgress: number;
untested: number;
};
}[];
}[];
testRuns?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
milestoneId?: string;
tests?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
preconditions: string;
steps: {
action: string;
expectation: string;
}[];
assignedTo: string;
result: "passed" | "failed" | "inProgress" | "untested";
case?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
displayId: number;
name: string;
preconditions: string;
comments?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
content: string;
}[];
steps: {
action: string;
expectation: string;
}[];
customFields: { [key: string]: any };
};
caseId: string;
comments?: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
content: string;
}[];
}[];
results?: {
total: number;
passed: number;
failed: number;
inProgress: number;
untested: number;
};
}[];
}[];
pagination: {
total: number;
limit: number;
offset: number;
};
}
PUT /v1/projects
Creates a new project.
Request Body
{
name: string;
identifier: string;
icon: string;
color: string;
}
Response Body
{
project: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
name: string;
identifier: string;
icon: string;
color: string;
};
}
POST /v1/projects/:projectId
Updates an existing project.
Request Body
{
name?: string;
identifier?: string;
icon?: string;
color?: string;
}
Response Body
{
project: {
id: string;
createdAt: Date;
createdBy: string;
updatedAt: Date;
updatedBy: string;
name: string;
identifier: string;
icon: string;
color: string;
};
}
DELETE /v1/projects/:projectId
Deletes an existing project.
Response Body
A successful response will return a response with a status code of 200
and no data
parameter:
{
"ok": true,
"requestId": string,
"duration": number,
}