@camunda/e2e-test-suite 0.0.541 → 0.0.543

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -78,7 +78,7 @@ class PlayPage {
78
78
  await this.startInstanceButton
79
79
  .or(this.startInstanceWithCachedButton)
80
80
  .first()
81
- .click({ timeout: 30000 });
81
+ .click({ timeout: 60000 });
82
82
  await (0, test_1.expect)(this.loadingInstanceDetailsText).toBeVisible();
83
83
  await (0, test_1.expect)(this.loadingInstanceDetailsText).not.toBeVisible({
84
84
  timeout: 60000,
@@ -25,6 +25,30 @@ _8_10_1.test.describe('AWS Connectors User Flows', () => {
25
25
  await (0, _setup_1.captureScreenshot)(page, testInfo);
26
26
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
27
27
  });
28
+ (0, _8_10_1.test)('AWS Bedrock AgentCore LTM - Retrieve memory records', async ({ operateHomePage, operateProcessInstancePage, operateProcessesPage, }) => {
29
+ _8_10_1.test.slow();
30
+ const processKey = await (0, apiHelpers_1.deployProcess)('./resources/connectors/aws/bedrock-agentcore-ltm.bpmn', authToken);
31
+ if (processKey == null) {
32
+ throw new Error('Failed to deploy AgentCore LTM process');
33
+ }
34
+ const instanceKey = await (0, apiHelpers_1.createProcessInstance)(String(processKey), authToken);
35
+ await _8_10_1.test.step('Process completes and connector returns a well-formed AgentCore LTM response', async () => {
36
+ await (0, sleep_1.sleep)(15000);
37
+ await operateHomePage.clickProcessesTab();
38
+ await operateProcessesPage.clickProcessCompletedCheckbox();
39
+ await operateProcessesPage.applyMoreFilters('Process Instance Key(s)', String(instanceKey));
40
+ await operateProcessesPage.clickProcessInstanceLink('AWS Bedrock AgentCore LTM');
41
+ await operateProcessInstancePage.assertProcessCompleteStatusWithRetry();
42
+ // Assert the mapped memoryRecords variable is present (proves result
43
+ // expression was evaluated, even when the memory namespace is empty)
44
+ await (0, test_1.expect)(operateProcessInstancePage.connectorResultVariableName('memoryRecords')).toBeVisible({ timeout: 30000 });
45
+ // Assert the raw agentcoreResult contains the expected response envelope
46
+ // fields (resultCount, nextToken) — these are always present regardless
47
+ // of whether the memory namespace has any records seeded
48
+ await operateProcessInstancePage.assertProcessVariableContainsText('agentcoreResult', 'resultCount');
49
+ await operateProcessInstancePage.assertProcessVariableContainsText('agentcoreResult', 'nextToken');
50
+ });
51
+ });
28
52
  (0, _8_10_1.test)('AWS Bedrock Knowledge Base - Retrieve relevant chunks from knowledge base', async ({ operateHomePage, operateProcessInstancePage, operateProcessesPage, }) => {
29
53
  _8_10_1.test.slow();
30
54
  const processKey = await (0, apiHelpers_1.deployProcess)('./resources/connectors/aws/bedrock-knowledge-base.bpmn', authToken);
@@ -43,6 +43,7 @@ _8_10_1.test.describe('Cluster Setup Tests', () => {
43
43
  await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.connectorSecretsValues);
44
44
  await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.bedrockKbSecretsValues);
45
45
  await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.agentcoreSecretsValues);
46
+ await clusterSecretsPage.createSetOfSecrets(clusterName, connectorSecrets_1.agentcoreLtmSecretsValues);
46
47
  }
47
48
  });
48
49
  (0, _8_10_1.test)('Create Agentic Orchestration Cluster', async ({ page, loginPage, homePage, clusterPage, clusterDetailsPage, clusterSecretsPage, }, testInfo) => {
@@ -100,6 +100,9 @@ SM_8_10_1.test.describe('Web Modeler User Flow Tests', () => {
100
100
  });
101
101
  });
102
102
  (0, SM_8_10_1.test)('Timer Event User Flow @tasklistV2', async ({ modelerHomePage, modelerCreatePage, operateHomePage, operateProcessInstancePage, operateProcessesPage, navigationPage, }) => {
103
+ // Timer waits 60 s before completing; combined with goToOperate retries
104
+ // (5 × ~3 min) this regularly exceeds the default 12-min test timeout.
105
+ SM_8_10_1.test.slow();
103
106
  const processName = 'Timer_Event_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
104
107
  await SM_8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
105
108
  await modelerHomePage.clickCrossComponentProjectFolder();
@@ -297,12 +297,26 @@ async function createProcessInstance(processDefinitionKey, authToken, environmen
297
297
  if (isMT) {
298
298
  data.tenantId = '<default>';
299
299
  }
300
- const response = await apiRequestContext.post(url, {
301
- headers: {
302
- Authorization: authToken ?? '',
303
- },
304
- data,
305
- });
300
+ // Retry on 400 (process definition not yet visible in Zeebe after deploy)
301
+ const maxAttempts = 5;
302
+ const retryDelayMs = 5000;
303
+ let response;
304
+ for (let attempt = 1; attempt <= maxAttempts; attempt++) {
305
+ response = await apiRequestContext.post(url, {
306
+ headers: {
307
+ Authorization: authToken ?? '',
308
+ },
309
+ data,
310
+ });
311
+ if (response.status() === 200)
312
+ break;
313
+ if (response.status() === 400 && attempt < maxAttempts) {
314
+ console.warn(`createProcessInstance: got 400 for key ${processDefinitionKey}, attempt ${attempt}/${maxAttempts}, retrying in ${retryDelayMs}ms`);
315
+ await (0, sleep_1.sleep)(retryDelayMs);
316
+ continue;
317
+ }
318
+ break;
319
+ }
306
320
  (0, test_1.expect)(response.status()).toBe(200);
307
321
  const responseBody = await response.json();
308
322
  const processInstanceKey = responseBody?.processInstanceKey;
@@ -22,6 +22,10 @@ export declare const agentcoreSecretsValues: {
22
22
  name: string;
23
23
  value: string;
24
24
  }[];
25
+ export declare const agentcoreLtmSecretsValues: {
26
+ name: string;
27
+ value: string;
28
+ }[];
25
29
  export declare const connectorSecretsValues: {
26
30
  name: string;
27
31
  value: string;
@@ -39,6 +43,10 @@ export declare const allConnectorSecrets: {
39
43
  name: string;
40
44
  value: string;
41
45
  }[];
46
+ AgentCoreLTM: {
47
+ name: string;
48
+ value: string;
49
+ }[];
42
50
  GCP: {
43
51
  name: string;
44
52
  value: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.allConnectorSecrets = exports.connectorSecretsValues = exports.agentcoreSecretsValues = exports.bedrockKbSecretsValues = exports.azureSecretsValues = exports.gcpSecretsValues = exports.openAiSecretsValues = exports.awsSecretsValues = void 0;
3
+ exports.allConnectorSecrets = exports.connectorSecretsValues = exports.agentcoreLtmSecretsValues = exports.agentcoreSecretsValues = exports.bedrockKbSecretsValues = exports.azureSecretsValues = exports.gcpSecretsValues = exports.openAiSecretsValues = exports.awsSecretsValues = void 0;
4
4
  exports.awsSecretsValues = [
5
5
  { name: 'IDP_AWS_REGION', value: process.env.IDP_AWS_REGION },
6
6
  { name: 'IDP_AWS_BUCKET_NAME', value: process.env.IDP_AWS_BUCKET_NAME },
@@ -157,6 +157,28 @@ exports.agentcoreSecretsValues = [
157
157
  value: process.env.AGENTCORE_AGENT_RUNTIME_ARN,
158
158
  },
159
159
  ];
160
+ exports.agentcoreLtmSecretsValues = [
161
+ {
162
+ name: 'AGENTCORE_LTM_AWS_ACCESS_KEY',
163
+ value: process.env.AGENTCORE_LTM_AWS_ACCESS_KEY,
164
+ },
165
+ {
166
+ name: 'AGENTCORE_LTM_AWS_SECRET_KEY',
167
+ value: process.env.AGENTCORE_LTM_AWS_SECRET_KEY,
168
+ },
169
+ {
170
+ name: 'AGENTCORE_LTM_AWS_REGION',
171
+ value: process.env.AGENTCORE_LTM_AWS_REGION,
172
+ },
173
+ {
174
+ name: 'AGENTCORE_LTM_MEMORY_ID',
175
+ value: process.env.AGENTCORE_LTM_MEMORY_ID,
176
+ },
177
+ {
178
+ name: 'AGENTCORE_LTM_NAMESPACE',
179
+ value: process.env.AGENTCORE_LTM_NAMESPACE,
180
+ },
181
+ ];
160
182
  exports.connectorSecretsValues = [
161
183
  {
162
184
  name: 'endpoint_url',
@@ -169,6 +191,7 @@ exports.allConnectorSecrets = {
169
191
  AWS: exports.awsSecretsValues,
170
192
  BedrockKB: exports.bedrockKbSecretsValues,
171
193
  AgentCore: exports.agentcoreSecretsValues,
194
+ AgentCoreLTM: exports.agentcoreLtmSecretsValues,
172
195
  GCP: exports.gcpSecretsValues,
173
196
  Azure: [...exports.azureSecretsValues, ...exports.openAiSecretsValues],
174
197
  Connectors: exports.connectorSecretsValues,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.541",
3
+ "version": "0.0.543",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,73 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
3
+ xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
4
+ xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
5
+ xmlns:zeebe="http://camunda.org/schema/zeebe/1.0"
6
+ xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
7
+ xmlns:modeler="http://camunda.org/schema/modeler/1.0"
8
+ id="Definitions_1"
9
+ targetNamespace="http://bpmn.io/schema/bpmn"
10
+ exporter="Camunda Web Modeler"
11
+ exporterVersion="1.0.0"
12
+ modeler:executionPlatform="Camunda Cloud"
13
+ modeler:executionPlatformVersion="8.10.0">
14
+ <bpmn:process id="aws_bedrock_agentcore_ltm" name="AWS Bedrock AgentCore LTM" isExecutable="true">
15
+ <bpmn:startEvent id="StartEvent_1">
16
+ <bpmn:outgoing>Flow_1</bpmn:outgoing>
17
+ </bpmn:startEvent>
18
+ <bpmn:sequenceFlow id="Flow_1" sourceRef="StartEvent_1" targetRef="AgentCoreMemoryTask" />
19
+ <bpmn:serviceTask id="AgentCoreMemoryTask" name="Retrieve Memory Records"
20
+ zeebe:modelerTemplate="io.camunda.connectors.aws.bedrock.agentcore.memory.longterm.v1"
21
+ zeebe:modelerTemplateVersion="1">
22
+ <bpmn:extensionElements>
23
+ <zeebe:taskDefinition type="io.camunda:aws-bedrock-agentcore-lt-memory:1" retries="3" />
24
+ <zeebe:ioMapping>
25
+ <zeebe:input source="credentials" target="authentication.type" />
26
+ <zeebe:input source="{{secrets.AGENTCORE_LTM_AWS_ACCESS_KEY}}" target="authentication.accessKey" />
27
+ <zeebe:input source="{{secrets.AGENTCORE_LTM_AWS_SECRET_KEY}}" target="authentication.secretKey" />
28
+ <zeebe:input source="{{secrets.AGENTCORE_LTM_AWS_REGION}}" target="configuration.region" />
29
+ <zeebe:input source="{{secrets.AGENTCORE_LTM_MEMORY_ID}}" target="memoryId" />
30
+ <zeebe:input source="{{secrets.AGENTCORE_LTM_NAMESPACE}}" target="namespace" />
31
+ <zeebe:input source="retrieve" target="operation.operationDiscriminator" />
32
+ <zeebe:input source="What do you remember about me?" target="operation.query" />
33
+ <zeebe:input source="5" target="operation.maxResults" />
34
+ </zeebe:ioMapping>
35
+ <zeebe:taskHeaders>
36
+ <zeebe:header key="elementTemplateVersion" value="1" />
37
+ <zeebe:header key="elementTemplateId" value="io.camunda.connectors.aws.bedrock.agentcore.memory.longterm.v1" />
38
+ <zeebe:header key="resultVariable" value="agentcoreResult" />
39
+ <zeebe:header key="resultExpression" value="={memoryRecords: records}" />
40
+ <zeebe:header key="retryBackoff" value="PT0S" />
41
+ </zeebe:taskHeaders>
42
+ </bpmn:extensionElements>
43
+ <bpmn:incoming>Flow_1</bpmn:incoming>
44
+ <bpmn:outgoing>Flow_2</bpmn:outgoing>
45
+ </bpmn:serviceTask>
46
+ <bpmn:sequenceFlow id="Flow_2" sourceRef="AgentCoreMemoryTask" targetRef="EndEvent_1" />
47
+ <bpmn:endEvent id="EndEvent_1">
48
+ <bpmn:incoming>Flow_2</bpmn:incoming>
49
+ </bpmn:endEvent>
50
+ </bpmn:process>
51
+ <bpmndi:BPMNDiagram id="BPMNDiagram_1">
52
+ <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="aws_bedrock_agentcore_ltm">
53
+ <bpmndi:BPMNShape id="StartEvent_1_di" bpmnElement="StartEvent_1">
54
+ <dc:Bounds x="152" y="82" width="36" height="36" />
55
+ </bpmndi:BPMNShape>
56
+ <bpmndi:BPMNShape id="AgentCoreMemoryTask_di" bpmnElement="AgentCoreMemoryTask">
57
+ <dc:Bounds x="240" y="60" width="100" height="80" />
58
+ <bpmndi:BPMNLabel />
59
+ </bpmndi:BPMNShape>
60
+ <bpmndi:BPMNShape id="EndEvent_1_di" bpmnElement="EndEvent_1">
61
+ <dc:Bounds x="392" y="82" width="36" height="36" />
62
+ </bpmndi:BPMNShape>
63
+ <bpmndi:BPMNEdge id="Flow_1_di" bpmnElement="Flow_1">
64
+ <di:waypoint x="188" y="100" />
65
+ <di:waypoint x="240" y="100" />
66
+ </bpmndi:BPMNEdge>
67
+ <bpmndi:BPMNEdge id="Flow_2_di" bpmnElement="Flow_2">
68
+ <di:waypoint x="340" y="100" />
69
+ <di:waypoint x="392" y="100" />
70
+ </bpmndi:BPMNEdge>
71
+ </bpmndi:BPMNPlane>
72
+ </bpmndi:BPMNDiagram>
73
+ </bpmn:definitions>