tapbundle/ts/tapbundle.classes.taptools.ts

60 lines
1.2 KiB
TypeScript
Raw Normal View History

2017-04-28 07:49:57 +00:00
import * as plugins from './tapbundle.plugins'
import { TapTest } from './tapbundle.classes.taptest'
2017-10-10 15:14:14 +00:00
export interface IPromiseFunc {
(): Promise<any>
}
2017-04-28 07:49:57 +00:00
export class TapTools {
/**
* the referenced TapTest
*/
private _tapTest: TapTest
2017-07-05 22:06:18 +00:00
constructor (TapTestArg) {
2017-04-28 07:49:57 +00:00
this._tapTest = TapTestArg
}
/**
* allow failure
*/
2017-06-04 17:08:36 +00:00
allowFailure () {
2017-04-28 07:49:57 +00:00
this._tapTest.failureAllowed = true
}
/**
* async/await delay method
*/
2017-06-04 17:08:36 +00:00
async delayFor (timeMilliArg) {
2017-04-28 07:49:57 +00:00
await plugins.smartdelay.delayFor(timeMilliArg)
}
2017-10-10 15:14:14 +00:00
async delayForRandom (timeMilliMinArg, timeMilliMaxArg) {
await plugins.smartdelay.delayForRandom(timeMilliMinArg, timeMilliMaxArg)
}
2017-04-28 07:49:57 +00:00
async timeout (timeMilliArg: number) {
let timeout = new plugins.smartdelay.Timeout(timeMilliArg)
timeout.makeUnrefed()
await timeout.promise
2017-04-28 07:49:57 +00:00
if (this._tapTest.status === 'pending') {
this._tapTest.status = 'timeout'
}
}
2017-10-10 15:14:14 +00:00
async checkIterationLeak (iterationfuncArg: IPromiseFunc) {
await plugins.leakage.iterate.async(iterationfuncArg)
}
async returnError (throwingFuncArg: IPromiseFunc) {
let funcErr: Error
try {
await throwingFuncArg()
} catch (err) {
funcErr = err
}
return funcErr
}
2017-04-28 07:49:57 +00:00
}