fix(plugin-workflow): fix request node error in loop (#2254)
This commit is contained in:
parent
3510531182
commit
5540a582f0
@ -213,5 +213,35 @@ describe('workflow > instructions > request', () => {
|
|||||||
expect(job.status).toEqual(JOB_STATUS.RESOLVED);
|
expect(job.status).toEqual(JOB_STATUS.RESOLVED);
|
||||||
expect(job.result.data).toEqual({ title });
|
expect(job.result.data).toEqual({ title });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('request inside loop',async () => {
|
||||||
|
const n1 = await workflow.createNode({
|
||||||
|
type: 'loop',
|
||||||
|
config: {
|
||||||
|
target: 2,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const n2 = await workflow.createNode({
|
||||||
|
type: 'request',
|
||||||
|
upstreamId: n1.id,
|
||||||
|
branchIndex: 0,
|
||||||
|
config: {
|
||||||
|
url: URL_DATA,
|
||||||
|
method: 'GET',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
await PostRepo.create({ values: { title: 't1' } });
|
||||||
|
|
||||||
|
await sleep(500);
|
||||||
|
|
||||||
|
const [execution] = await workflow.getExecutions();
|
||||||
|
expect(execution.status).toEqual(EXECUTION_STATUS.RESOLVED);
|
||||||
|
const jobs = await execution.getJobs({ order: [['id', 'ASC']] });
|
||||||
|
expect(jobs.length).toBe(3);
|
||||||
|
expect(jobs.map(item => item.status)).toEqual(Array(3).fill(JOB_STATUS.RESOLVED));
|
||||||
|
expect(jobs[0].result).toBe(2);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -45,10 +45,11 @@ async function request(config) {
|
|||||||
export default class implements Instruction {
|
export default class implements Instruction {
|
||||||
constructor(public plugin) {}
|
constructor(public plugin) {}
|
||||||
|
|
||||||
async run(node: FlowNodeModel, input, processor: Processor) {
|
async run(node: FlowNodeModel, prevJob, processor: Processor) {
|
||||||
const job = await processor.saveJob({
|
const job = await processor.saveJob({
|
||||||
status: JOB_STATUS.PENDING,
|
status: JOB_STATUS.PENDING,
|
||||||
nodeId: node.id,
|
nodeId: node.id,
|
||||||
|
upstreamId: prevJob?.id ?? null,
|
||||||
});
|
});
|
||||||
|
|
||||||
const config = processor.getParsedValue(node.config, node) as RequestConfig;
|
const config = processor.getParsedValue(node.config, node) as RequestConfig;
|
||||||
|
Loading…
Reference in New Issue
Block a user