TestRail API client with error handling and typing
npm install @dlenroc/testrail``bash`
npm install @dlenroc/testrail --save
`typescript
// import TestRail from '@dlenroc/testrail';
// const TestRail = require('@dlenroc/testrail');
const api = new TestRail({
host: 'https://{organization}.testrail.net',
username: '{username}',
password: '{token/password}',
});
const projects = await api.getProjects();
console.log(projects);
`
`typescript`
addAttachmentToCase(caseId: number, payload: AddAttachment): Promise
`typescript`
addAttachmentToPlan(planId: number, payload: AddAttachment): Promise
`typescript`
addAttachmentToPlanEntry(planId: number, entryId: string, payload: AddAttachment): Promise
`typescript`
addAttachmentToResult(resultId: number, payload: AddAttachment): Promise
`typescript`
addAttachmentToRun(runId: number, payload: AddAttachment): Promise
`typescript`
getAttachmentsForCase(caseId: number, filters?: Pagination): Promise
`typescript`
getAttachmentsForPlan(planId: number, filters?: Pagination): Promise
`typescript`
getAttachmentsForPlanEntry(planId: number, entryId: string): Promise
`typescript`
getAttachmentsForRun(runId: number, filters?: Pagination): Promise
`typescript`
getAttachmentsForTest(testId: number): Promise
`typescript`
getAttachment(attachmentId: string): Promise
`typescript`
deleteAttachment(attachmentId: string): Promise
`typescript`
getBdd(caseId: number): Promise
`typescript`
addBdd(sectionId: number, payload: AddAttachment): Promise
`typescript`
getCase(caseId: number): Promise
`typescript`
getCases(projectId: number, filters?: CaseFilters): Promise
`typescript`
getHistoryForCase(caseId: number, filters?: Pagination): Promise
`typescript`
addCase(sectionId: number, payload: AddCase): Promise
`typescript`
copyCasesToSection(sectionId: number, payload: CopyCasesToSection): Promise
`typescript`
updateCase(caseId: number, payload: UpdateCase): Promise
`typescript`
updateCases(suiteId: number, payload: UpdateCases): Promise
`typescript`
moveCasesToSection(sectionId: number, payload: MoveCasesToSection): Promise
`typescript`
deleteCase(caseId: number): Promise
`typescript`
deleteCases(suiteId: number, payload: DeleteCases): Promise
`typescript`
getCaseFields(): Promise
`typescript`
addCaseField(payload: AddCaseField): Promise
`typescript`
getCaseTypes(): Promise
`typescript`
getConfigs(projectId: number): Promise
`typescript`
addConfigGroup(projectId: number, payload: AddConfigGroup): Promise
`typescript`
addConfig(configGroupId: number, payload: AddConfig): Promise
`typescript`
updateConfigGroup(configGroupId: number, payload: UpdateConfigGroup): Promise
`typescript`
updateConfig(configId: number, payload: UpdateConfig): Promise
`typescript`
deleteConfigGroup(configGroupId: number): Promise
`typescript`
deleteConfig(configId: number): Promise
`typescript`
getDataset(datasetId: number): Promise
`typescript`
getDatasets(projectId: number, filters?: Pagination): Promise
`typescript`
addDataset(projectId: number, payload: AddDataset): Promise
`typescript`
updateDataset(datasetId: number, payload: AddDataset): Promise
`typescript`
deleteDataset(datasetId: number): Promise
`typecript`
getGroup(groupId: number): Promise
`typecript`
getGroups(filters?: Pagination): Promise
`typecript`
addGroup(payload: AddGroup): Promise
`typecript`
updateGroup(groupId: number, payload: AddGroup): Promise
`typecript`
deleteGroup(groupId: number): Promise
`typescript`
getMilestone(milestoneId: number): Promise
`typescript`
getMilestones(projectId: number, filters?: MilestoneFilters): Promise
`typescript`
addMilestone(projectId: number, payload: AddMilestone): Promise
`typescript`
updateMilestone(milestoneId: number, payload: UpdateMilestone): Promise
`typescript`
deleteMilestone(milestoneId: number): Promise
`typescript`
getRoles(filters?: Pagination): Promise
`typescript`
getPlan(planId: number): Promise
`typescript`
getPlans(projectId: number, filters?: PlanFilters): Promise
`typescript`
addPlan(projectId: number, payload: AddPlan): Promise
`typescript`
addPlanEntry(planId: number, payload: AddPlanEntry): Promise
`typescript`
addRunToPlanEntry(planId: number, entryId: string, payload: AddRunToPlanEntry): Promise
`typescript`
updatePlan(planId: number, payload: UpdatePlan): Promise
`typescript`
updatePlanEntry(planId: number, entryId: string, payload: UpdatePlanEntry): Promise
`typescript`
updateRunInPlanEntry(runId: number, payload: UpdateRunInPlanEntry): Promise
`typescript`
closePlan(planId: number): Promise
`typescript`
deletePlan(planId: number): Promise
`typescript`
deletePlanEntry(planId: number, entryId: string): Promise
`typescript`
deleteRunFromPlanEntry(runId: number): Promise
`typescript`
getPriorities(): Promise
`typescript`
getProject(projectId: number): Promise
`typescript`
getProjects(filters?: ProjectFilters): Promise
`typescript`
addProject(payload: AddProject): Promise
`typescript`
updateProject(projectId: number, payload: UpdateProject): Promise
`typescript`
deleteProject(projectId: number): Promise
`typescript`
getReports(projectId: number): Promise
`typescript`
runReport(reportTemplateId: number): Promise
`typescript`
getResults(testId: number, filters?: ResultFilters): Promise
`typescript`
getResultsForCase(runId: number, caseId: number, filters?: ResultFilters): Promise
`typescript`
getResultsForRun(runId: number, filters?: ResultForRunFilters): Promise
`typescript`
addResult(testId: number, payload: AddResult): Promise
`typescript`
addResultForCase(runId: number, caseId: number, payload: AddResult): Promise
`typescript`
addResults(runId: number, payload: AddResults): Promise
`typescript`
addResultsForCases(runId: number, payload: AddResultsForCases): Promise
`typescript`
getResultFields(): Promise
`typescript`
getRun(runId: number): Promise
`typescript`
getRuns(projectId: number, filters?: RunFilters): Promise
`typescript`
addRun(projectId: number, payload: AddRun): Promise
`typescript`
updateRun(runId: number, payload: UpdateRun): Promise
`typescript`
closeRun(runId: number): Promise
`typescript`
deleteRun(runId: number): Promise
`typescript`
getSection(sectionId: number): Promise
`typescript`
getSections(projectId: number, filters?: SectionFilters): Promise
`typescript`
addSection(projectId: number, payload: AddSection): Promise
`typescript`
moveSection(sectionId: number, payload: MoveSection): Promise
`typescript`
updateSection(sectionId: number, payload: UpdateSection): Promise
`typescript`
deleteSection(sectionId: number): Promise
`typescript`
getSharedStep(stepId: number): Promise
`typescript`
getSharedSteps(projectId: number, filters?: SharedStepFilters): Promise
`typescript`
getSharedStepHistory(stepId: number, filters?: Pagination): Promise
`typescript`
addSharedStep(projectId: number, payload: AddSharedStep): Promise
`typescript`
updateSharedStep(stepId: number, payload: UpdateSharedStep): Promise
`typescript`
deleteSharedStep(stepId: number, payload?: DeleteSharedStep): Promise
`typescript`
getStatuses(): Promise
`typescript`
getCaseStatuses(filters?: Pagination): Promise
`typescript`
getSuite(suiteId: number): Promise
`typescript`
getSuites(projectId: number): Promise
`typescript`
addSuite(projectId: number, payload: AddSuite): Promise
`typescript`
updateSuite(suiteId: number, payload: UpdateSuite): Promise
`typescript`
deleteSuite(suiteId: number): Promise
`typescript`
getTemplates(projectId: number): Promise
`typescript`
getTest(testId: number): Promise
`typescript`
getTests(runId: number, filters?: TestFilters): Promise
`typescript`
getUser(userId: number): Promise
`typescript`
getCurrentUser(): Promise
`typescript`
getUserByEmail(email: string): Promise
`typescript`
getUsers(filters?: UserFilters): Promise
`typescript`
addUser(payload: AddUser): Promise
`typescript`
updateUser(userId: number, payload: AddUser): Promise
`typescript`
getVariables(projectId: number, filters?: Pagination): Promise
`typescript`
addVariable(projectId: number, payload: AddVariable): Promise
`typescript`
updateVariable(variableId: number, payload: AddVariable): Promise
`typescript``
deleteVariable(variableId: number): Promise