Qase TMS JavaScript Api Client

Installation
npm install qaseio
Usage
Qase.io uses API tokens to authenticate requests. You can view an manage your API keys in API tokens pages.
You must replace api_token with your personal API key.
Pure JavaScript:
var qaseio = require("qaseio");
var qase = new qaseio.QaseApi("api_token");
ES5:
import { QaseApi } from 'qaseio';
const qase = new QaseApi("api_token");
Projects
Get All Projects
This method allows to retrieve all projects available for your account. You can you limit and offset params to paginate.
qase.projects.getAll().then((res) => {
console.log(res.data)
})
Get a specific project
This method allows to retrieve a specific project.
qase.projects.get("PRJCODE").then((res) => {
console.log(res.data)
})
Check project exists
qase.projects.get("PRJCODE").then((exists) => {
console.log(exists)
})
Create a new project
This method is used to create a new project through API.
import { ProjectCreate } from 'qaseio.models';
const prj = new ProjectCreate("Project title", "CODE")
qase.projects.create(prj).then((res) => {
console.log(res.data)
})
Test cases
Get all test cases
This method allows to retrieve all test cases stored in selected project. You can you limit and offset params to paginate.
qase.cases.getAll("PRJCODE", { limit: 10, offset: 20 }).then((res) => {
console.log(res.data)
})
Get a specific test case
This method allows to retrieve a specific test case.
qase.cases.get("PRJCODE", 4).then((res) => {
console.log(res.data)
})
Check test case exists
qase.cases.exists("PRJCODE", 4).then((exists) => {
console.log(exists)
})
Delete test case
This method completely deletes a test case from repository.
qase.cases.delete("PRJCODE", 4).then((res) => {
console.log(res)
})
Test Suites
Get all test suites
This method allows to retrieve all test suites stored in selected project. You can you limit and offset params to paginate.
import { SuiteFilters } from "qaseio.models";
qase.suites.getAll("PRJCODE", {filters: new SuiteFilters({search: "query"})}).then((res) => {
console.log(res.data)
})
Get a specific test suite
This method allows to retrieve a specific test suite.
qase.suites.get("PRJCODE", 123).then((res) => {
console.log(res.data)
})
Check test suite exists
qase.suites.exists("PRJCODE", 123).then((exists) => {
console.log(exists)
})
Create a new test suite
This method is used to create a new test plan through API.
import { SuiteCreate } from "qaseio.models";
qase.suites.create(
"PRJCODE",
SuiteCreate("New test suite"),
).then((res) => {
console.log(res.data)
})
Update test suite
This method is used to update existing test suite through API.
import { SuiteUpdate } from "qaseio.models";
qase.suites.update(
"PRJCODE",
123,
SuiteUpdate("Updated suite"),
).then((res) => {
console.log(res.data)
})
Delete test suite
This method completely deletes a test suite from repository.
qase.suites.delete("PRJCODE", 123).then((res) => {
console.log(res)
})
Milestones
Get all milestones
This method allows to retrieve all milestones stored in selected project. You can you limit and offset params to paginate.
import { MilestoneFilters } from "qaseio.models";
qase.milestones.getAll(
"PRJCODE", {filters: new MilestoneFilters({search: "query"})}
).then((res) => {
console.log(res.data)
})
Get a specific milestone
This method allows to retrieve a specific milestone.
qase.milestones.get("PRJCODE", 123).then((res) => {
console.log(res.data)
})
Check milestone exists
qase.milestones.exists("PRJCODE", 123).then((exists) => {
console.log(exists)
})
Create a new milestone
This method is used to create a new test plan through API.
import { MilestoneCreate } from "qaseio.models";
qase.milestones.create(
"PRJCODE",
new MilestoneCreate("New milestone"),
).then((res) => {
console.log(res.data)
})
Update milestone
This method is used to update existing milestone through API.
import { MilestoneUpdate } from "qaseio.models";
test_suite = qase.milestones.update(
"PRJCODE",
123,
new MilestoneUpdate("Updated suite"),
).then((res) => {
console.log(res.data)
})
Delete milestone
This method completely deletes a milestone from repository.
qase.milestones.delete("PRJCODE", 123).then((res) => {
console.log(res)
})
Shared steps
Get all shared steps
This method allows to retrieve all shared steps stored in selected project. You can you limit and offset params to paginate.
import { SharedStepFilters } from "qaseio.models";
qase.sharedSteps.getAll(
"PRJCODE", {filters: new SharedStepFilters({search: "query"})}
).then((res) => {
console.log(res.data)
})
Get a specific shared step
This method allows to retrieve a specific shared step.
qase.sharedSteps.get("PRJCODE", "hash").then((res) => {
console.log(res.data)
})
Check shared step exists
qase.sharedSteps.exists("PRJCODE", "hash").then((exists) => {
console.log(exists)
})
Create a new shared step
This method is used to create a new shared step through API.
import { SharedStepCreate } from "qaseio.models";
qase.sharedSteps.create(
"PRJCODE",
new SharedStepCreate("New step", "action"),
).then((res) => {
console.log(res.data)
})
Update shared step
This method is used to update existing shared step through API.
import { SharedStepUpdate } from "qaseio.models";
qase.sharedSteps.update(
"PRJCODE",
"hash",
new SharedStepUpdate("Updated step"),
).then((res) => {
console.log(res.data)
})
Delete shared step
This method completely deletes a shared step from repository.
qase.sharedSteps.delete("PRJCODE", "hash").then((res) => {
console.log(res)
})
Test plans
Get all test plans
This method allows to retrieve all test plans stored in selected project. You can you limit and offset params to paginate.
qase.plans.getAll("PRJCODE").then((res) => {
console.log(res.data)
})
Get a specific test plan
This method allows to retrieve a specific test plan.
qase.plans.get("PRJCODE", 123).then((res) => {
console.log(res.data)
})
Check test plan exists
qase.plans.exists("PRJCODE", 123).then((exists) => {
console.log(exists)
})
Create a new test plan
This method is used to create a new test plan through API.
import { PlanCreate } from "qaseio.models";
qase.plans.create(
"PRJCODE",
new PlanCreate("New test plan", [1, 2, 3]),
).then((res) => {
console.log(res.data)
})
Update test plan
This method is used to update existing test plan through API.
import { PlanUpdate } from "qaseio.models";
qase.plans.update(
"PRJCODE",
123,
new PlanUpdate("New test plan", [1, 2, 3]),
).then((res) => {
console.log(res.data)
})
Delete test plan
This method completely deletes a test plan from repository.
qase.plans.delete("PRJCODE", 123).then((res) => {
console.log(res)
})
Test runs
Get all test runs
This method allows to retrieve all test runs stored in selected project. You can you limit and offset params to paginate.
qase.runs.getAll("PRJCODE", {include: 'cases'}).then((res) => {
console.log(res.data)
})
Get a specific test run
This method allows to retrieve a specific test run.
qase.runs.get("PRJCODE", 4).then((res) => {
console.log(res.data)
})
Check test run exists
qase.runs.exists("PRJCODE", 4).then((exists) => {
console.log(exists)
})
Create a new test run
This method is used to create a new test run through API.
import { RunCreate } from 'qaseio.models';
const run = new RunCreate("Test run", [1, 2, 3], { description: "some desc" })
qase.runs.create(run).then((res) => {
console.log(res.data)
})
Delete test run
This method completely deletes a test run from repository.
qase.runs.delete("PRJCODE", 4).then((res) => {
console.log(res)
})
Test run results
Get all test run results
This method allows to retrieve all test run results stored in selected project. You can you limit and offset params to paginate.
qase.results.getAll("PRJCODE").then((res) => {
console.log(res.data)
})
Get a specific test run result
This method allows to retrieve a specific test run result.
qase.results.get("PRJCODE", "2898ba7f3b4d857cec8bee4a852cdc85f8b33132").then((res) => {
console.log(res.data)
})
Create a new test run result
This method is used to create a new test run result through API.
import { ResultCreate, ResultStatus, ResultStepCreate } from 'qaseio.models';
const result = new ResultCreate(123, ResultStatus.PASSED, {
comment: "some comment",
steps: [new ResultStepCreate(1, ResultStatus.PASSED)]
})
qase.results.create("PRJCODE", 4, result).then((res) => {
console.log(res.data)
})
Update test run result
This method is used to update existing test run result through API.
import { ResultUpdate, ResultStatus, ResultStepCreate } from 'qaseio.models';
const result = new ResultUpdate(ResultStatus.PASSED, {
comment: "some comment",
steps: [new ResultStepCreate(2, ResultStatus.PASSED)]
})
qase.results.update("PRJCODE", 4, "2898ba7f3b4d857cec8bee4a852cdc85f8b33132", result).then((res) => {
console.log(res.data)
})
Delete test run result
This method completely deletes a test run result from repository.
qase.results.delete("PRJCODE", 4, "2898ba7f3b4d857cec8bee4a852cdc85f8b33132").then((res) => {
console.log(res)
})
Defects
Get all defects
This method allows to retrieve all defects stored in selected project. You can you limit and offset params to paginate.
import { DefectStatus, DefectFilters } from 'qaseio.models';
qase.defects.getAll("PRJCODE", {filter: new DefectFilters({status: DefectStatus.OPEN})}).then((res) => {
console.log(res.data)
})
Get a specific defect
This method allows to retrieve a specific defect.
qase.defects.get("PRJCODE", 4).then((res) => {
console.log(res.data)
})
Check defect exists
qase.defects.exists("PRJCODE", 4).then((exists) => {
console.log(exists)
})
Resolve defect
This method is used to resolve defect through API.
qase.defects.resolve("PRJCODE", 4).then((res) => {
console.log(res.data)
})
Delete defect
This method completely deletes a defect from repository.
qase.defects.delete("PRJCODE", 4).then((res) => {
console.log(res)
})
Custom fields
Get all custom fields
This method allows to retrieve all custom fields stored in selected project. You can you limit and offset params to paginate.
qase.customFields.getAll("PRJCODE").then((res) => {
console.log(res.data)
})
Get a specific custom field
This method allows to retrieve a specific custom field.
qase.customFields.get("PRJCODE", 123).then((res) => {
console.log(res.data)
})
Check custom field exists
qase.customFields.exists("PRJCODE", 123).then((exists) => {
console.log(exists)
})
Attachments
Get all attachments
This method allows to retrieve all attachments stored in team. You can you limit and offset params to paginate.
qase.attachments.getAll().then((res) => {
console.log(res.data)
})
Get a specific attachment
This method allows to retrieve a specific attachment.
qase.attachments.get("<hash>").then((res) => {
console.log(res.data)
})
Check attachment exists
qase.attachments.exists("<hash>").then((exists) => {
console.log(exists)
})
Upload new attachments
This method is used to upload new attachments through API. It supports different
input formats
qase.attachments.create(
"PRJCODE",
{value: '{"test": true}', filename: "data.json"}
).then((res) => {
console.log(res.data)
})
To upload binary attachment you should use fs
:
var fs = require("fs")
const data = fs.createReadStream('/path/to/file.png')
qase.attachments.create(
"PRJCODE",
{value: data, filename: "data.png"}
).then((res) => {
console.log(res.data)
})
You can specify as much files to upload as you need, according to API
limits.
Delete attachment
This method completely deletes a attachment from repository.
qase.attachments.delete("<hash>").then((res) => {
console.log(res)
})
Team
Get all team members
This method allows to retrieve all users in your team. You can you limit and offset params to paginate.
qase.users.getAll().then((res) => {
console.log(res.data)
})
Get a specific team member
This method allows to retrieve a specific user in your team.
qase.users.get(123).then((res) => {
console.log(res.data)
})
Check user exists
qase.users.exists(123).then((exists) => {
console.log(exists)
})