@uipath/tasks-tool 1.202.0-preview.140 → 1.202.0-preview.142
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.
- package/dist/index.js +1 -1
- package/dist/{tool-4er8cbf1.js → tool-315h4wtj.js} +5 -2
- package/dist/tool.js +1 -1
- package/package.json +5 -2
- package/browser.json +0 -4
- package/src/commands/_shared/catalog-options.spec.ts +0 -114
- package/src/commands/_shared/catalog-options.ts +0 -122
- package/src/commands/_shared/connect.spec.ts +0 -52
- package/src/commands/_shared/connect.ts +0 -31
- package/src/commands/_shared/constants.ts +0 -1
- package/src/commands/_shared/folder-picker-interactive.spec.ts +0 -92
- package/src/commands/_shared/folder-picker-interactive.ts +0 -76
- package/src/commands/_shared/folder-picker.spec.ts +0 -159
- package/src/commands/_shared/folder-picker.ts +0 -113
- package/src/commands/_shared/folder-resolver.spec.ts +0 -152
- package/src/commands/_shared/folder-resolver.ts +0 -113
- package/src/commands/_shared/parse.spec.ts +0 -69
- package/src/commands/_shared/parse.ts +0 -43
- package/src/commands/catalogs.ts +0 -281
- package/src/commands/comments.ts +0 -160
- package/src/commands/data.ts +0 -137
- package/src/commands/labels.ts +0 -93
- package/src/commands/metadata.ts +0 -139
- package/src/commands/tasks.spec.ts +0 -2449
- package/src/commands/tasks.ts +0 -631
- package/src/index.ts +0 -12
- package/src/tool.ts +0 -24
- package/src/utils/sdk-client.ts +0 -30
- package/tests/assign.e2e.test.ts +0 -166
- package/tests/assignable-users.e2e.test.ts +0 -167
- package/tests/catalogs.e2e.test.ts +0 -418
- package/tests/comments.e2e.test.ts +0 -223
- package/tests/complete.e2e.test.ts +0 -207
- package/tests/data.e2e.test.ts +0 -187
- package/tests/get.e2e.test.ts +0 -103
- package/tests/labels.e2e.test.ts +0 -184
- package/tests/list.e2e.test.ts +0 -234
- package/tests/metadata.e2e.test.ts +0 -186
- package/tests/performance.e2e.test.ts +0 -32
- package/tsconfig.json +0 -9
- package/vitest.config.ts +0 -1
package/tests/list.e2e.test.ts
DELETED
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { RESULTS } from "@uipath/common";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import {
|
|
4
|
-
type E2EManifest,
|
|
5
|
-
MANIFEST_PATH,
|
|
6
|
-
} from "../../../tests/e2e-shared/global-setup";
|
|
7
|
-
import {
|
|
8
|
-
EXEC_TIMEOUT,
|
|
9
|
-
localCliRaw,
|
|
10
|
-
localCliRawWithArgs,
|
|
11
|
-
parseOutput,
|
|
12
|
-
readManifest,
|
|
13
|
-
} from "../../../tests/e2e-shared/helpers";
|
|
14
|
-
|
|
15
|
-
// Scenario: scenarios/tasks-tool/list.md
|
|
16
|
-
// `uip tasks list` — paginated enumeration of Action Center tasks.
|
|
17
|
-
|
|
18
|
-
interface ListEnvelope {
|
|
19
|
-
Result: string;
|
|
20
|
-
Code?: string;
|
|
21
|
-
Data?: unknown;
|
|
22
|
-
Message?: string;
|
|
23
|
-
Instructions?: string;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// `tasks list` passes through the raw SDK task payload, which is
|
|
27
|
-
// PascalCase (Id/FolderId/...) — confirmed against a live tenant.
|
|
28
|
-
interface TaskSummary {
|
|
29
|
-
FolderId?: number;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const { tempDir } = readManifest<E2EManifest>(MANIFEST_PATH).sharedInstall;
|
|
33
|
-
|
|
34
|
-
/** Discover a real folder ID via `tasks list`, or undefined if none is visible. */
|
|
35
|
-
function discoverFolderId(): string | undefined {
|
|
36
|
-
const raw = localCliRaw(tempDir, "tasks list --limit 1 --output json");
|
|
37
|
-
if (raw.exitCode !== 0) return undefined;
|
|
38
|
-
const res = parseOutput(raw.stdout, "json") as { Data?: TaskSummary[] };
|
|
39
|
-
const folderId = res.Data?.[0]?.FolderId;
|
|
40
|
-
return typeof folderId === "number" ? String(folderId) : undefined;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
interface FolderRow {
|
|
44
|
-
Key?: string;
|
|
45
|
-
Name?: string;
|
|
46
|
-
Path?: string;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Discover a folder's path and key via `uip or folders list` — the exact
|
|
51
|
-
* source UV-15957 is about: its output has no numeric ID column, so path/key
|
|
52
|
-
* are what a caller actually holds.
|
|
53
|
-
*/
|
|
54
|
-
function discoverFolder(): { path?: string; key?: string } {
|
|
55
|
-
const raw = localCliRaw(tempDir, "or folders list --output json");
|
|
56
|
-
if (raw.exitCode !== 0) return {};
|
|
57
|
-
const res = parseOutput(raw.stdout, "json") as { Data?: FolderRow[] };
|
|
58
|
-
const first = res.Data?.[0];
|
|
59
|
-
return { path: first?.Path || first?.Name, key: first?.Key };
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
describe("tasks list e2e", () => {
|
|
63
|
-
it(
|
|
64
|
-
"S1: lists tasks across all folders",
|
|
65
|
-
() => {
|
|
66
|
-
const raw = localCliRaw(tempDir, "tasks list --output json");
|
|
67
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
68
|
-
expect(raw.exitCode, JSON.stringify(res)).toBe(0);
|
|
69
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
70
|
-
expect(res.Code).toBe("TaskList");
|
|
71
|
-
expect(Array.isArray(res.Data)).toBe(true);
|
|
72
|
-
},
|
|
73
|
-
EXEC_TIMEOUT,
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
it(
|
|
77
|
-
"S2: limits the number of returned tasks",
|
|
78
|
-
() => {
|
|
79
|
-
const raw = localCliRaw(
|
|
80
|
-
tempDir,
|
|
81
|
-
"tasks list --limit 1 --output json",
|
|
82
|
-
);
|
|
83
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
84
|
-
expect(raw.exitCode, JSON.stringify(res)).toBe(0);
|
|
85
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
86
|
-
expect(res.Code).toBe("TaskList");
|
|
87
|
-
expect((res.Data as unknown[]).length).toBeLessThanOrEqual(1);
|
|
88
|
-
},
|
|
89
|
-
EXEC_TIMEOUT,
|
|
90
|
-
);
|
|
91
|
-
|
|
92
|
-
it(
|
|
93
|
-
"S3: filters by folder ID",
|
|
94
|
-
() => {
|
|
95
|
-
// A hardcoded placeholder folder ID isn't guaranteed to exist —
|
|
96
|
-
// or be accessible to this login — on every tenant. Discover a
|
|
97
|
-
// real one from an actual task instead.
|
|
98
|
-
const folderId = discoverFolderId();
|
|
99
|
-
if (!folderId) return;
|
|
100
|
-
const raw = localCliRaw(
|
|
101
|
-
tempDir,
|
|
102
|
-
`tasks list --folder-id ${folderId} --output json`,
|
|
103
|
-
);
|
|
104
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
105
|
-
expect(raw.exitCode, JSON.stringify(res)).toBe(0);
|
|
106
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
107
|
-
expect(res.Code).toBe("TaskList");
|
|
108
|
-
expect(Array.isArray(res.Data)).toBe(true);
|
|
109
|
-
},
|
|
110
|
-
EXEC_TIMEOUT,
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
it(
|
|
114
|
-
"S4: invalid --folder-id reports a validation error",
|
|
115
|
-
() => {
|
|
116
|
-
const raw = localCliRaw(
|
|
117
|
-
tempDir,
|
|
118
|
-
"tasks list --folder-id not-a-number --output json",
|
|
119
|
-
);
|
|
120
|
-
expect(raw.exitCode).not.toBe(0);
|
|
121
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
122
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
123
|
-
expect(res.Message).toMatch(/Invalid --folder-id/);
|
|
124
|
-
expect(res.Instructions).toBe("Must be a positive integer.");
|
|
125
|
-
},
|
|
126
|
-
EXEC_TIMEOUT,
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
it(
|
|
130
|
-
"S5: invalid --limit reports a validation error",
|
|
131
|
-
() => {
|
|
132
|
-
const raw = localCliRaw(
|
|
133
|
-
tempDir,
|
|
134
|
-
"tasks list --limit not-a-number --output json",
|
|
135
|
-
);
|
|
136
|
-
expect(raw.exitCode).not.toBe(0);
|
|
137
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
138
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
139
|
-
expect(res.Message).toMatch(/Invalid --limit/);
|
|
140
|
-
expect(res.Instructions).toBe("Must be a positive integer.");
|
|
141
|
-
},
|
|
142
|
-
EXEC_TIMEOUT,
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
it(
|
|
146
|
-
"S6: filters by folder path",
|
|
147
|
-
() => {
|
|
148
|
-
const { path } = discoverFolder();
|
|
149
|
-
if (!path) return;
|
|
150
|
-
// API-derived value — pass as its own argument, never through a
|
|
151
|
-
// shell-interpolated string.
|
|
152
|
-
const raw = localCliRawWithArgs(tempDir, [
|
|
153
|
-
"tasks",
|
|
154
|
-
"list",
|
|
155
|
-
"--folder-path",
|
|
156
|
-
path,
|
|
157
|
-
"--output",
|
|
158
|
-
"json",
|
|
159
|
-
]);
|
|
160
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
161
|
-
expect(raw.exitCode, JSON.stringify(res)).toBe(0);
|
|
162
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
163
|
-
expect(res.Code).toBe("TaskList");
|
|
164
|
-
expect(Array.isArray(res.Data)).toBe(true);
|
|
165
|
-
},
|
|
166
|
-
EXEC_TIMEOUT,
|
|
167
|
-
);
|
|
168
|
-
|
|
169
|
-
it(
|
|
170
|
-
"S7: filters by folder key",
|
|
171
|
-
() => {
|
|
172
|
-
const { key } = discoverFolder();
|
|
173
|
-
if (!key) return;
|
|
174
|
-
const raw = localCliRaw(
|
|
175
|
-
tempDir,
|
|
176
|
-
`tasks list --folder-key ${key} --output json`,
|
|
177
|
-
);
|
|
178
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
179
|
-
expect(raw.exitCode, JSON.stringify(res)).toBe(0);
|
|
180
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
181
|
-
expect(res.Code).toBe("TaskList");
|
|
182
|
-
expect(Array.isArray(res.Data)).toBe(true);
|
|
183
|
-
},
|
|
184
|
-
EXEC_TIMEOUT,
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
it(
|
|
188
|
-
"S8: folder options are mutually exclusive",
|
|
189
|
-
() => {
|
|
190
|
-
const raw = localCliRaw(
|
|
191
|
-
tempDir,
|
|
192
|
-
"tasks list --folder-id 1 --folder-path Shared --output json",
|
|
193
|
-
);
|
|
194
|
-
expect(raw.exitCode).not.toBe(0);
|
|
195
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
196
|
-
expect(res.Message).toMatch(/cannot be used with/);
|
|
197
|
-
},
|
|
198
|
-
EXEC_TIMEOUT,
|
|
199
|
-
);
|
|
200
|
-
|
|
201
|
-
it(
|
|
202
|
-
"S9: invalid --folder-key reports a validation error",
|
|
203
|
-
() => {
|
|
204
|
-
const raw = localCliRaw(
|
|
205
|
-
tempDir,
|
|
206
|
-
"tasks list --folder-key not-a-guid --output json",
|
|
207
|
-
);
|
|
208
|
-
expect(raw.exitCode).not.toBe(0);
|
|
209
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
210
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
211
|
-
expect(res.Message).toBe("Invalid --folder-key: not-a-guid");
|
|
212
|
-
expect(res.Instructions).toMatch(/UUID/);
|
|
213
|
-
},
|
|
214
|
-
EXEC_TIMEOUT,
|
|
215
|
-
);
|
|
216
|
-
|
|
217
|
-
it(
|
|
218
|
-
"S10: unknown --folder-path reports folder not found",
|
|
219
|
-
() => {
|
|
220
|
-
const raw = localCliRaw(
|
|
221
|
-
tempDir,
|
|
222
|
-
'tasks list --folder-path "NoSuchFolder-UV15957" --output json',
|
|
223
|
-
);
|
|
224
|
-
expect(raw.exitCode).not.toBe(0);
|
|
225
|
-
const res = parseOutput(raw.stdout, "json") as ListEnvelope;
|
|
226
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
227
|
-
expect(res.Message).toBe(
|
|
228
|
-
"Folder not found: 'NoSuchFolder-UV15957'.",
|
|
229
|
-
);
|
|
230
|
-
expect(res.Instructions).toMatch(/uip or folders list/);
|
|
231
|
-
},
|
|
232
|
-
EXEC_TIMEOUT,
|
|
233
|
-
);
|
|
234
|
-
});
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { RESULTS } from "@uipath/common";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import {
|
|
4
|
-
type E2EManifest,
|
|
5
|
-
MANIFEST_PATH,
|
|
6
|
-
} from "../../../tests/e2e-shared/global-setup";
|
|
7
|
-
import {
|
|
8
|
-
EXEC_TIMEOUT,
|
|
9
|
-
localCliRaw,
|
|
10
|
-
localCliRawWithArgs,
|
|
11
|
-
parseOutput,
|
|
12
|
-
readManifest,
|
|
13
|
-
} from "../../../tests/e2e-shared/helpers";
|
|
14
|
-
|
|
15
|
-
interface Envelope {
|
|
16
|
-
Result: string;
|
|
17
|
-
Code?: string;
|
|
18
|
-
Message?: string;
|
|
19
|
-
Instructions?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
interface TaskRow {
|
|
23
|
-
Id?: number;
|
|
24
|
-
IsDeleted?: boolean;
|
|
25
|
-
Status?: string;
|
|
26
|
-
Type?: string;
|
|
27
|
-
FolderId?: number;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const { tempDir } = readManifest<E2EManifest>(MANIFEST_PATH).sharedInstall;
|
|
31
|
-
|
|
32
|
-
function listTasks(asAdmin: boolean): TaskRow[] {
|
|
33
|
-
const flag = asAdmin ? "--as-admin " : "";
|
|
34
|
-
const raw = localCliRaw(
|
|
35
|
-
tempDir,
|
|
36
|
-
`tasks list ${flag}--limit 200 --output json`,
|
|
37
|
-
);
|
|
38
|
-
if (raw.exitCode !== 0) return [];
|
|
39
|
-
return (parseOutput(raw.stdout, "json") as { Data?: TaskRow[] }).Data ?? [];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function discoverTask(): { taskId: string; folderId: string } | null {
|
|
43
|
-
const envFolder = process.env.TASKS_TOOL_E2E_FOLDER_ID;
|
|
44
|
-
const envTask =
|
|
45
|
-
process.env.TASKS_TOOL_E2E_TASK_ID_METADATA ??
|
|
46
|
-
process.env.TASKS_TOOL_E2E_TASK_ID;
|
|
47
|
-
if (envFolder && envTask) {
|
|
48
|
-
return { taskId: envTask, folderId: envFolder };
|
|
49
|
-
}
|
|
50
|
-
for (const asAdmin of [false, true]) {
|
|
51
|
-
const task = listTasks(asAdmin).find(
|
|
52
|
-
(t) =>
|
|
53
|
-
!t.IsDeleted &&
|
|
54
|
-
t.Status !== "Completed" &&
|
|
55
|
-
t.Type === "ExternalTask" &&
|
|
56
|
-
typeof t.Id === "number" &&
|
|
57
|
-
typeof t.FolderId === "number",
|
|
58
|
-
);
|
|
59
|
-
if (task) {
|
|
60
|
-
return {
|
|
61
|
-
taskId: String(task.Id),
|
|
62
|
-
folderId: String(envFolder ?? task.FolderId),
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
// No actionable ExternalTask on this tenant; skip the live suite (guarded by describe.skipIf below).
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const discovered = discoverTask();
|
|
71
|
-
const taskId = discovered?.taskId ?? "";
|
|
72
|
-
const folderId = discovered?.folderId ?? "";
|
|
73
|
-
|
|
74
|
-
function editMetadata(id: string, flags: string[]): Envelope {
|
|
75
|
-
const raw = localCliRawWithArgs(tempDir, [
|
|
76
|
-
"tasks",
|
|
77
|
-
"metadata",
|
|
78
|
-
id,
|
|
79
|
-
"--folder-id",
|
|
80
|
-
folderId,
|
|
81
|
-
...flags,
|
|
82
|
-
"--output",
|
|
83
|
-
"json",
|
|
84
|
-
]);
|
|
85
|
-
return parseOutput(raw.stdout, "json") as Envelope;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
describe.skipIf(!discovered)("tasks metadata e2e", () => {
|
|
89
|
-
it(
|
|
90
|
-
"S1: edit title and priority together",
|
|
91
|
-
() => {
|
|
92
|
-
const res = editMetadata(taskId, [
|
|
93
|
-
"--title",
|
|
94
|
-
"Review invoice",
|
|
95
|
-
"--priority",
|
|
96
|
-
"High",
|
|
97
|
-
]);
|
|
98
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
99
|
-
expect(res.Code).toBe("TaskMetadataEdited");
|
|
100
|
-
},
|
|
101
|
-
EXEC_TIMEOUT,
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
it(
|
|
105
|
-
"S2: invalid task id reports a validation error",
|
|
106
|
-
() => {
|
|
107
|
-
const res = editMetadata("not-a-number", ["--title", "x"]);
|
|
108
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
109
|
-
expect(res.Message).toMatch(/^Invalid <task-id>/);
|
|
110
|
-
expect(res.Instructions).toBe("Must be a positive integer.");
|
|
111
|
-
},
|
|
112
|
-
EXEC_TIMEOUT,
|
|
113
|
-
);
|
|
114
|
-
|
|
115
|
-
it(
|
|
116
|
-
"S3: invalid priority reports a validation error",
|
|
117
|
-
() => {
|
|
118
|
-
const res = editMetadata(taskId, ["--priority", "Urgent"]);
|
|
119
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
120
|
-
expect(res.Message).toMatch(/^Invalid priority/);
|
|
121
|
-
},
|
|
122
|
-
EXEC_TIMEOUT,
|
|
123
|
-
);
|
|
124
|
-
|
|
125
|
-
it(
|
|
126
|
-
"S4: edit a non-existent task reports a failure",
|
|
127
|
-
() => {
|
|
128
|
-
const res = editMetadata("999999999", ["--title", "x"]);
|
|
129
|
-
expect(res.Result).toBe(RESULTS.Failure);
|
|
130
|
-
expect(res.Message).toMatch(/^Error editing metadata on task/);
|
|
131
|
-
},
|
|
132
|
-
EXEC_TIMEOUT,
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
it(
|
|
136
|
-
"S5: edit only the title",
|
|
137
|
-
() => {
|
|
138
|
-
const res = editMetadata(taskId, [
|
|
139
|
-
"--title",
|
|
140
|
-
`sdk-cli-e2e-title-${Date.now()}`,
|
|
141
|
-
]);
|
|
142
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
143
|
-
expect(res.Code).toBe("TaskMetadataEdited");
|
|
144
|
-
},
|
|
145
|
-
EXEC_TIMEOUT,
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
it(
|
|
149
|
-
"S6: edit only the priority",
|
|
150
|
-
() => {
|
|
151
|
-
const res = editMetadata(taskId, ["--priority", "Low"]);
|
|
152
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
153
|
-
expect(res.Code).toBe("TaskMetadataEdited");
|
|
154
|
-
},
|
|
155
|
-
EXEC_TIMEOUT,
|
|
156
|
-
);
|
|
157
|
-
|
|
158
|
-
it(
|
|
159
|
-
"S7: attach an edit note",
|
|
160
|
-
() => {
|
|
161
|
-
const res = editMetadata(taskId, ["--note", "reclassified"]);
|
|
162
|
-
expect(res.Result).toBe(RESULTS.Success);
|
|
163
|
-
expect(res.Code).toBe("TaskMetadataEdited");
|
|
164
|
-
},
|
|
165
|
-
EXEC_TIMEOUT,
|
|
166
|
-
);
|
|
167
|
-
|
|
168
|
-
it(
|
|
169
|
-
"S8: a retitle is reflected on the task",
|
|
170
|
-
() => {
|
|
171
|
-
const title = `sdk-cli-e2e-retitle-${Date.now()}`;
|
|
172
|
-
const edit = editMetadata(taskId, ["--title", title]);
|
|
173
|
-
expect(edit.Result).toBe(RESULTS.Success);
|
|
174
|
-
|
|
175
|
-
const getRaw = localCliRaw(
|
|
176
|
-
tempDir,
|
|
177
|
-
`tasks get ${taskId} --output json`,
|
|
178
|
-
);
|
|
179
|
-
const task = parseOutput(getRaw.stdout, "json") as {
|
|
180
|
-
Data?: { Title?: string };
|
|
181
|
-
};
|
|
182
|
-
expect(task.Data?.Title).toBe(title);
|
|
183
|
-
},
|
|
184
|
-
EXEC_TIMEOUT,
|
|
185
|
-
);
|
|
186
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { describe, it } from "vitest";
|
|
2
|
-
import {
|
|
3
|
-
type E2EManifest,
|
|
4
|
-
MANIFEST_PATH,
|
|
5
|
-
} from "../../../tests/e2e-shared/global-setup";
|
|
6
|
-
import {
|
|
7
|
-
assertHelpCommandDuration,
|
|
8
|
-
EXEC_TIMEOUT,
|
|
9
|
-
readManifest,
|
|
10
|
-
} from "../../../tests/e2e-shared/helpers";
|
|
11
|
-
|
|
12
|
-
const HELP_BUDGET_MS = 1_000;
|
|
13
|
-
|
|
14
|
-
const manifest = readManifest<E2EManifest>(MANIFEST_PATH);
|
|
15
|
-
const projectDir = manifest.sharedInstall.tempDir;
|
|
16
|
-
|
|
17
|
-
// Performance budgets are unreliable on Windows CI runners; skip there.
|
|
18
|
-
describe.skipIf(process.platform === "win32")("tasks performance", () => {
|
|
19
|
-
it(
|
|
20
|
-
`uip tasks -h completes within ${HELP_BUDGET_MS}ms`,
|
|
21
|
-
() => {
|
|
22
|
-
assertHelpCommandDuration({
|
|
23
|
-
projectDir,
|
|
24
|
-
packageName: "@uipath/tasks-tool",
|
|
25
|
-
args: "tasks -h",
|
|
26
|
-
thresholdMs: HELP_BUDGET_MS,
|
|
27
|
-
testFileUrl: import.meta.url,
|
|
28
|
-
});
|
|
29
|
-
},
|
|
30
|
-
EXEC_TIMEOUT,
|
|
31
|
-
);
|
|
32
|
-
});
|
package/tsconfig.json
DELETED
package/vitest.config.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default } from "../../vitest.base.config";
|