UNPKG

@ply-ct/ply

Version:

REST API Automated Testing

35 lines (31 loc) 1.14 kB
import { StepExec, ExecResult } from './exec'; import { ExecContext } from './context'; export class DelayExec extends StepExec { async run(context: ExecContext): Promise<ExecResult> { let interval = context.step.attributes?.interval; if (interval) { if (this.isExpression(interval)) { interval = context.evaluateToString(interval); } const ms = Number(interval); if (isNaN(ms)) { return { status: 'Errored', message: `Bad value for 'interval': ${interval}` }; } context.logDebug(`Delaying ${ms} ms`); await this.delay(ms); return { status: 'Passed' }; } else { return { status: 'Errored', message: 'Missing attribute: interval' }; } } private delay(ms: number): Promise<void> { return new Promise((resolve) => { setTimeout(() => { resolve(); }, ms); }); } isTrustRequired(context: ExecContext): boolean { return this.isExpression(context.step.attributes?.interval || ''); } }