ora/test/test.ts
2020-06-22 13:49:53 +00:00

92 lines
3.4 KiB
TypeScript

import { expect, tap } from '@pushrocks/tapbundle';
import * as qenv from '@pushrocks/qenv';
const testQenv = new qenv.Qenv('./', './.nogit');
import * as ora from '../ts/index';
let oraInstance: ora.Ora;
tap.test('should create a valid instance for Ora', async () => {
oraInstance = new ora.Ora(testQenv.getEnvVarOnDemand('ORA_APITOKEN'));
});
tap.test('should get all organizations', async () => {
const organizations = await oraInstance.getOrganizations();
expect(organizations.length).to.equal(2);
});
tap.test('should get all projects of an organization', async () => {
const organizations = await oraInstance.getOrganizations();
const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless');
});
const projectsInLosslessOrg = await losslessOrganization.getProjects();
});
tap.test('should get all lists for a project', async () => {
const organizations = await oraInstance.getOrganizations();
const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless');
});
const projectsInLosslessOrg = await losslessOrganization.getProjects();
const featureProjects = projectsInLosslessOrg.filter(oraProjectArg => {
return oraProjectArg.title.includes('Feature');
});
console.log('The following Feature Boards are available:');
featureProjects.forEach(oraProjectArg => console.log(oraProjectArg.title));
const layerIoProject = featureProjects.find(oraProjectArg =>
oraProjectArg.title.includes('layer.io')
);
const lists = await layerIoProject.getLists();
console.log('\nThe following lists are available');
lists.forEach(listArg => console.log(listArg.title));
});
tap.test('should get all tasks for a project', async () => {
const organizations = await oraInstance.getOrganizations();
const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless');
});
const projectsInLosslessOrg = await losslessOrganization.getProjects();
const featureProjects = projectsInLosslessOrg.filter(oraProjectArg => {
return oraProjectArg.title.includes('Feature');
});
const layerIoProject = featureProjects.find(oraProjectArg =>
oraProjectArg.title.includes('layer.io')
);
const lists = await layerIoProject.getLists();
let tasks: ora.OraTask[] = [];
for (const list of lists) {
tasks = tasks.concat(await list.getTasks());
}
console.log('the following tasks are available:');
tasks.forEach(taskArg => console.log(taskArg.title));
});
tap.test('should get a milestone', async () => {
const organizations = await oraInstance.getOrganizations();
const losslessOrganization = organizations.find(orgArg => {
return orgArg.name.startsWith('Lossless');
});
const projectsInLosslessOrg = await losslessOrganization.getProjects();
const featureProjects = projectsInLosslessOrg.filter(oraProjectArg => {
return oraProjectArg.title.includes('Feature');
});
const layerIoProject = featureProjects.find(oraProjectArg =>
oraProjectArg.title.includes('layer.io')
);
const lists = await layerIoProject.getLists();
let tasks: ora.OraTask[] = [];
for (const list of lists) {
tasks = tasks.concat(await list.getTasks());
}
console.log('the following tasks are available:');
const milestone = await tasks[0].getMilestone();
expect(milestone).to.be.instanceOf(ora.OraMilestone);
console.log(`Task with title "${tasks[0].title}" is part of milestone "${milestone.title}"`);
});
tap.start();