From 85457d60d834eb927ef9a88aed852471e76c37a3 Mon Sep 17 00:00:00 2001 From: dhrn <14145706+dhrn@users.noreply.github.com> Date: Mon, 11 May 2020 16:08:51 +0530 Subject: [PATCH] [ADF-5135] Eventual Consistency Helper for e2e tests. (#5668) * [ADF-5135] Eventual Consistency Helper for e2e tests. * [ADF-5135] Eventual Consistency Helper for e2e tests. --- .../core/actions/identity/query.service.ts | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/testing/src/lib/core/actions/identity/query.service.ts b/lib/testing/src/lib/core/actions/identity/query.service.ts index 833759d79d..ce89e6ba20 100644 --- a/lib/testing/src/lib/core/actions/identity/query.service.ts +++ b/lib/testing/src/lib/core/actions/identity/query.service.ts @@ -18,6 +18,7 @@ import { ApiService } from '../api.service'; import { Logger } from '../../utils/logger'; import { ApiUtil } from '../../structure/api.util'; +export type TaskStatus = 'COMPLETED' | 'CREATED' | 'ASSIGNED' | 'SUSPENDED' | 'CANCELLED' | 'COMPLETED'; export class QueryService { @@ -90,7 +91,7 @@ export class QueryService { return ApiUtil.waitForApi(apiCall, predicate); } - async getTaskByName(taskName, processInstanceId, appName): Promise { + async getProcessInstanceTaskByStatus(processInstanceId, appName, taskName, status: TaskStatus): Promise { const predicate = (result: any) => { return !!result; }; @@ -102,6 +103,28 @@ export class QueryService { const queryParams = {}, postBody = {}; + const data = await this.api.performBpmOperation(path, method, queryParams, postBody); + return data.list && data.list.entries.length && data.list.entries.find(task => task.entry.name === taskName && task.entry.status === status); + } catch (error) { + Logger.error('get process-instances tasks by status - Service error'); + } + }; + + return ApiUtil.waitForApi(apiCall, predicate); + } + + async getTaskByStatus(taskName, appName, status: TaskStatus, standalone = false): Promise { + const predicate = (result: any) => { + return !!result; + }; + + const apiCall = async () => { + try { + const path = `/${appName}/query/v1/tasks?standalone=${standalone}&status=${status}&maxItems=1000&skipCount=0&sort=createdDate`; + const method = 'GET'; + + const queryParams = {}, postBody = {}; + const data = await this.api.performBpmOperation(path, method, queryParams, postBody); for (let i = 0; i < data.list.entries.length; i++) { if (data.list.entries[i].entry.name === taskName) { @@ -110,7 +133,7 @@ export class QueryService { } } catch (error) { - Logger.error('Get Task By Name - Service error'); + Logger.error('Get Task By Status - Service error'); } };