fix(tests): now using tstest

This commit is contained in:
2018-08-04 17:53:22 +02:00
parent df18aba4b5
commit f60deddadd
37 changed files with 1607 additions and 1659 deletions

View File

@@ -1,13 +1,13 @@
import * as plugins from './taskbuffer.plugins'
import { Task } from './taskbuffer.classes.task'
import * as plugins from './taskbuffer.plugins';
import { Task } from './taskbuffer.classes.task';
// interfaces
import { Objectmap } from 'lik'
import { Objectmap } from '@pushrocks/lik';
export class TaskManager {
taskMap = new plugins.lik.Objectmap<Task>()
private cronJobMap = new plugins.lik.Objectmap<ICronJob>()
constructor () {
taskMap = new plugins.lik.Objectmap<Task>();
private cronJobMap = new plugins.lik.Objectmap<ICronJob>();
constructor() {
// nothing here
}
@@ -15,21 +15,21 @@ export class TaskManager {
* checks if a task is already present
* @param taskNameArg
*/
getTaskByName (taskNameArg): Task {
return this.taskMap.find((itemArg) => {
return itemArg.name === taskNameArg
})
getTaskByName(taskNameArg): Task {
return this.taskMap.find(itemArg => {
return itemArg.name === taskNameArg;
});
}
/**
* adds a Task to the TaskManager
* @param taskArg
*/
addTask (taskArg: Task): void {
addTask(taskArg: Task): void {
if (!taskArg.name) {
throw new Error('taskArg needs a name to be added to taskManager')
throw new Error('taskArg needs a name to be added to taskManager');
}
this.taskMap.add(taskArg)
this.taskMap.add(taskArg);
}
/**
@@ -37,61 +37,59 @@ export class TaskManager {
* @param taskArg
* @param cronStringArg
*/
addAndScheduleTask (taskArg: Task, cronStringArg: string) {
this.addTask(taskArg)
let taskName = taskArg.name
this.scheduleTaskByName(taskName, cronStringArg)
addAndScheduleTask(taskArg: Task, cronStringArg: string) {
this.addTask(taskArg);
let taskName = taskArg.name;
this.scheduleTaskByName(taskName, cronStringArg);
}
/**
* triggers a task in the TaskManagerByName
* @param taskNameArg
*/
triggerTaskByName (taskNameArg: string): Promise<any> {
let taskToTrigger = this.getTaskByName(taskNameArg)
triggerTaskByName(taskNameArg: string): Promise<any> {
let taskToTrigger = this.getTaskByName(taskNameArg);
if (!taskToTrigger) {
throw new Error(`There is no task with the name of ${taskNameArg}`)
throw new Error(`There is no task with the name of ${taskNameArg}`);
}
return taskToTrigger.trigger()
return taskToTrigger.trigger();
}
/**
* schedules the task by name
* @param taskNameArg
*/
scheduleTaskByName (taskNameArg: string, cronStringArg: string) {
let taskToSchedule = this.getTaskByName(taskNameArg)
scheduleTaskByName(taskNameArg: string, cronStringArg: string) {
let taskToSchedule = this.getTaskByName(taskNameArg);
let job = new plugins.cron.CronJob({
cronTime: cronStringArg,
onTick: () => {
this.triggerTaskByName(taskNameArg)
this.triggerTaskByName(taskNameArg);
},
start: true
})
});
this.cronJobMap.add({
taskNameArg: taskToSchedule.name,
cronString: cronStringArg,
job: job
})
});
}
descheduleTaskByName (taskNameArg: string) {
let descheduledCron = this.cronJobMap.findOneAndRemove((itemArg) => {
return itemArg.taskNameArg === taskNameArg
})
descheduledCron.job.stop()
descheduleTaskByName(taskNameArg: string) {
let descheduledCron = this.cronJobMap.findOneAndRemove(itemArg => {
return itemArg.taskNameArg === taskNameArg;
});
descheduledCron.job.stop();
}
/**
* returns all schedules of a specific task
* @param taskNameArg
*/
getSchedulesForTaskName (taskNameArg: string) {
}
getSchedulesForTaskName(taskNameArg: string) {}
}
export interface ICronJob {
cronString: string
taskNameArg: string
job: any
cronString: string;
taskNameArg: string;
job: any;
}