-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathMetadataClient.test.ts
More file actions
123 lines (110 loc) · 5.58 KB
/
Copy pathMetadataClient.test.ts
File metadata and controls
123 lines (110 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import { expect, describe, test, jest } from "@jest/globals";
import { MetadataClient } from "../../src/core/metadataClient";
import { taskDefinition } from "../../src/core/sdk";
import { orkesConductorClient } from "../../src/orkes";
describe("MetadataClient", () => {
const clientPromise = orkesConductorClient();
const taskName = `jsSdkTest-test_task_definition-${Date.now()}`;
jest.setTimeout(15000);
test("Should register a task definition", async () => {
const client = await clientPromise;
const metadataClient = new MetadataClient(client);
const newTaskDefinition = taskDefinition({
name: taskName,
description: "New Task Definition",
retryCount: 4,
timeoutSeconds: 7200,
inputKeys: ["inputKey1", "inputKey2"],
outputKeys: ["outputKey1", "outputKey2"],
timeoutPolicy: "TIME_OUT_WF",
retryLogic: "FIXED",
retryDelaySeconds: 61,
responseTimeoutSeconds: 601,
concurrentExecLimit: 1,
inputTemplate: {
"inputKey1": "${workflow.input.inputKey1}",
},
rateLimitPerFrequency: 1,
rateLimitFrequencyInSeconds: 2,
pollTimeoutSeconds: 3601,
backoffScaleFactor: 1,
});
await expect(
metadataClient.registerTask(newTaskDefinition)
).resolves.not.toThrow();
const taskDefinitionFromApi = await client.metadataResource.getTaskDef(
newTaskDefinition.name
);
expect(taskDefinitionFromApi.name).toEqual(newTaskDefinition.name);
expect(taskDefinitionFromApi.description).toEqual(newTaskDefinition.description);
expect(taskDefinitionFromApi.retryCount).toEqual(newTaskDefinition.retryCount);
expect(taskDefinitionFromApi.timeoutSeconds).toEqual(newTaskDefinition.timeoutSeconds);
expect(taskDefinitionFromApi.inputKeys).toEqual(newTaskDefinition.inputKeys);
expect(taskDefinitionFromApi.outputKeys).toEqual(newTaskDefinition.outputKeys);
expect(taskDefinitionFromApi.timeoutPolicy).toEqual(newTaskDefinition.timeoutPolicy);
expect(taskDefinitionFromApi.retryLogic).toEqual(newTaskDefinition.retryLogic);
expect(taskDefinitionFromApi.retryDelaySeconds).toEqual(newTaskDefinition.retryDelaySeconds);
expect(taskDefinitionFromApi.responseTimeoutSeconds).toEqual(newTaskDefinition.responseTimeoutSeconds);
expect(taskDefinitionFromApi.concurrentExecLimit).toEqual(newTaskDefinition.concurrentExecLimit);
expect(taskDefinitionFromApi.inputTemplate).toEqual(newTaskDefinition.inputTemplate);
expect(taskDefinitionFromApi.rateLimitPerFrequency).toEqual(newTaskDefinition.rateLimitPerFrequency);
expect(taskDefinitionFromApi.rateLimitFrequencyInSeconds).toEqual(newTaskDefinition.rateLimitFrequencyInSeconds);
expect(taskDefinitionFromApi.pollTimeoutSeconds).toEqual(newTaskDefinition.pollTimeoutSeconds);
expect(taskDefinitionFromApi.backoffScaleFactor).toEqual(newTaskDefinition.backoffScaleFactor);
});
test("Should update a task definition", async () => {
const client = await clientPromise;
const metadataClient = new MetadataClient(client);
const newTaskDefinition = taskDefinition({
name: taskName,
description: "New Task Definition Update",
retryCount: 5,
timeoutSeconds: 7201,
inputKeys: ["inputKey1_1", "inputKey2_1"],
outputKeys: ["outputKey1_1", "outputKey2_2"],
timeoutPolicy: "TIME_OUT_WF",
retryLogic: "FIXED",
retryDelaySeconds: 62,
responseTimeoutSeconds: 602,
concurrentExecLimit: 1,
inputTemplate: {
"inputKey2": "${workflow.input.inputKey2}",
},
rateLimitPerFrequency: 1,
rateLimitFrequencyInSeconds: 3,
pollTimeoutSeconds: 3602,
backoffScaleFactor: 1,
});
await expect(
metadataClient.updateTask(newTaskDefinition)
).resolves.not.toThrow();
const taskDefinitionFromApi = await client.metadataResource.getTaskDef(
newTaskDefinition.name
);
expect(taskDefinitionFromApi.description).toEqual(newTaskDefinition.description);
expect(taskDefinitionFromApi.retryCount).toEqual(newTaskDefinition.retryCount);
expect(taskDefinitionFromApi.timeoutSeconds).toEqual(newTaskDefinition.timeoutSeconds);
expect(taskDefinitionFromApi.inputKeys).toEqual(newTaskDefinition.inputKeys);
expect(taskDefinitionFromApi.outputKeys).toEqual(newTaskDefinition.outputKeys);
expect(taskDefinitionFromApi.timeoutPolicy).toEqual(newTaskDefinition.timeoutPolicy);
expect(taskDefinitionFromApi.retryLogic).toEqual(newTaskDefinition.retryLogic);
expect(taskDefinitionFromApi.retryDelaySeconds).toEqual(newTaskDefinition.retryDelaySeconds);
expect(taskDefinitionFromApi.responseTimeoutSeconds).toEqual(newTaskDefinition.responseTimeoutSeconds);
expect(taskDefinitionFromApi.concurrentExecLimit).toEqual(newTaskDefinition.concurrentExecLimit);
expect(taskDefinitionFromApi.inputTemplate).toEqual(newTaskDefinition.inputTemplate);
expect(taskDefinitionFromApi.rateLimitPerFrequency).toEqual(newTaskDefinition.rateLimitPerFrequency);
expect(taskDefinitionFromApi.rateLimitFrequencyInSeconds).toEqual(newTaskDefinition.rateLimitFrequencyInSeconds);
expect(taskDefinitionFromApi.pollTimeoutSeconds).toEqual(newTaskDefinition.pollTimeoutSeconds);
expect(taskDefinitionFromApi.backoffScaleFactor).toEqual(newTaskDefinition.backoffScaleFactor);
});
test("Should unregister a task definition", async () => {
const client = await clientPromise;
const metadataClient = new MetadataClient(client);
await expect(
metadataClient.unregisterTask(taskName)
).resolves.not.toThrow();
await expect(client.metadataResource.getTaskDef(
taskName
)).rejects.toThrow();
})
});