in x-test.js [711:739]
static onResult(context, event) {
if (!context.state.ended) {
const data = event.data.data;
const it = context.state.its[data.itId]; // eslint-disable-line no-shadow
const stepId = context.state.stepIds.find(candidateId => {
const candidate = context.state.steps[candidateId];
return candidate.type === 'it' && candidate.itId === it.itId;
});
const step = context.state.steps[stepId];
if (step.status !== 'running') {
throw new Error('step to complete is not running');
}
Object.assign(it, { ok: data.ok, error: data.error });
step.status = 'done';
const ok = XTestRoot.ok(context, stepId);
const number = XTestRoot.number(context, stepId);
const text = XTestRoot.text(context, stepId);
const directive = XTestRoot.directive(context, stepId);
const level = XTestRoot.level(context, stepId);
const tap = XTestTap.testLine(ok, number, text, directive, level);
if (!data.error) {
XTestRoot.output(context, stepId, tap);
} else {
const yaml = XTestRoot.yaml(context, stepId);
const errorTap = XTestTap.yaml(yaml.message, yaml.severity, yaml.data, level);
XTestRoot.output(context, stepId, tap, errorTap);
}
}
}