@ply-ct/ply
Version:
REST API Automated Testing
27 lines (24 loc) • 795 B
text/typescript
import { StepExec, ExecResult } from './exec';
import { ExecContext } from './context';
/**
* Cannot have side-effects (no updating values);
*/
export class DecideExec extends StepExec {
async run(context: ExecContext): Promise<ExecResult> {
const expression = context.step.attributes?.expression;
if (expression) {
let expr = expression;
if (!this.isExpression(expr)) {
expr = '${' + expr + '}';
}
const result = context.evaluateToString(expr);
context.stepInstance.result = result;
return { status: 'Passed' };
} else {
return { status: 'Errored', message: 'Missing attribute: expression' };
}
}
isTrustRequired() {
return true;
}
}