apify-test-tools 0.5.2 → 0.5.3

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.
Files changed (87) hide show
  1. package/lib/lib.ts +3 -0
  2. package/package.json +1 -1
  3. package/dist/bin/build.d.ts +0 -18
  4. package/dist/bin/build.d.ts.map +0 -1
  5. package/dist/bin/build.js +0 -229
  6. package/dist/bin/build.js.map +0 -1
  7. package/dist/bin/consts.d.ts +0 -4
  8. package/dist/bin/consts.d.ts.map +0 -1
  9. package/dist/bin/consts.js +0 -6
  10. package/dist/bin/consts.js.map +0 -1
  11. package/dist/bin/git.d.ts +0 -14
  12. package/dist/bin/git.d.ts.map +0 -1
  13. package/dist/bin/git.js +0 -43
  14. package/dist/bin/git.js.map +0 -1
  15. package/dist/bin/github.d.ts +0 -13
  16. package/dist/bin/github.d.ts.map +0 -1
  17. package/dist/bin/github.js +0 -59
  18. package/dist/bin/github.js.map +0 -1
  19. package/dist/bin/main.d.ts +0 -3
  20. package/dist/bin/main.d.ts.map +0 -1
  21. package/dist/bin/main.js +0 -124
  22. package/dist/bin/main.js.map +0 -1
  23. package/dist/bin/slack.d.ts +0 -13
  24. package/dist/bin/slack.d.ts.map +0 -1
  25. package/dist/bin/slack.js +0 -51
  26. package/dist/bin/slack.js.map +0 -1
  27. package/dist/bin/test-report.d.ts +0 -10
  28. package/dist/bin/test-report.d.ts.map +0 -1
  29. package/dist/bin/test-report.js +0 -74
  30. package/dist/bin/test-report.js.map +0 -1
  31. package/dist/bin/types.d.ts +0 -89
  32. package/dist/bin/types.d.ts.map +0 -1
  33. package/dist/bin/types.js +0 -2
  34. package/dist/bin/types.js.map +0 -1
  35. package/dist/bin/utils.d.ts +0 -29
  36. package/dist/bin/utils.d.ts.map +0 -1
  37. package/dist/bin/utils.js +0 -169
  38. package/dist/bin/utils.js.map +0 -1
  39. package/dist/index.d.ts +0 -3
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js +0 -3
  42. package/dist/index.js.map +0 -1
  43. package/dist/lib/consts.d.ts +0 -3
  44. package/dist/lib/consts.d.ts.map +0 -1
  45. package/dist/lib/consts.js +0 -12
  46. package/dist/lib/consts.js.map +0 -1
  47. package/dist/lib/extend-expect.d.ts +0 -3
  48. package/dist/lib/extend-expect.d.ts.map +0 -1
  49. package/dist/lib/extend-expect.js +0 -257
  50. package/dist/lib/extend-expect.js.map +0 -1
  51. package/dist/lib/lib.d.ts +0 -38
  52. package/dist/lib/lib.d.ts.map +0 -1
  53. package/dist/lib/lib.js +0 -215
  54. package/dist/lib/lib.js.map +0 -1
  55. package/dist/lib/run-test-result.d.ts +0 -22
  56. package/dist/lib/run-test-result.d.ts.map +0 -1
  57. package/dist/lib/run-test-result.js +0 -73
  58. package/dist/lib/run-test-result.js.map +0 -1
  59. package/dist/lib/types.d.ts +0 -127
  60. package/dist/lib/types.d.ts.map +0 -1
  61. package/dist/lib/types.js +0 -2
  62. package/dist/lib/types.js.map +0 -1
  63. package/dist/lib/utils.d.ts +0 -8
  64. package/dist/lib/utils.d.ts.map +0 -1
  65. package/dist/lib/utils.js +0 -33
  66. package/dist/lib/utils.js.map +0 -1
  67. package/dist/test/unit/bin/git.test.d.ts +0 -2
  68. package/dist/test/unit/bin/git.test.d.ts.map +0 -1
  69. package/dist/test/unit/bin/git.test.js +0 -81
  70. package/dist/test/unit/bin/git.test.js.map +0 -1
  71. package/dist/test/unit/custom-matchers.test.d.ts +0 -2
  72. package/dist/test/unit/custom-matchers.test.d.ts.map +0 -1
  73. package/dist/test/unit/custom-matchers.test.js +0 -75
  74. package/dist/test/unit/custom-matchers.test.js.map +0 -1
  75. package/dist/test/unit/parse-commit.test.d.ts +0 -2
  76. package/dist/test/unit/parse-commit.test.d.ts.map +0 -1
  77. package/dist/test/unit/parse-commit.test.js +0 -57
  78. package/dist/test/unit/parse-commit.test.js.map +0 -1
  79. package/dist/test/unit/should-built-and-test.test.d.ts +0 -2
  80. package/dist/test/unit/should-built-and-test.test.d.ts.map +0 -1
  81. package/dist/test/unit/should-built-and-test.test.js +0 -136
  82. package/dist/test/unit/should-built-and-test.test.js.map +0 -1
  83. package/dist/test/unit/test-actor.test.d.ts +0 -2
  84. package/dist/test/unit/test-actor.test.d.ts.map +0 -1
  85. package/dist/test/unit/test-actor.test.js +0 -17
  86. package/dist/test/unit/test-actor.test.js.map +0 -1
  87. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,257 +0,0 @@
1
- import { TO_FINISH_WITH_OPTIONS } from './consts.js';
2
- export const extendExpect = (expect) => {
3
- expect.extend({
4
- toBeArray: (actual) => {
5
- const pass = Array.isArray(actual);
6
- return {
7
- pass,
8
- message: () => `Expected "${actual}" to be a array`,
9
- };
10
- },
11
- toBeBoolean: (received) => {
12
- const actual = typeof received;
13
- const expected = 'boolean';
14
- return {
15
- pass: actual === expected,
16
- message: () => `Expected "${actual}" to be a boolean`,
17
- expected: 'boolean',
18
- };
19
- },
20
- toBeEmptyArray: (actual) => {
21
- const pass = Array.isArray(actual) && actual.length === 0;
22
- return {
23
- pass,
24
- message: () => `Expected ${actual} to be an empty array`,
25
- actual,
26
- expected: [],
27
- };
28
- },
29
- toBeNonEmptyArray: (actual) => {
30
- const pass = Array.isArray(actual) && actual.length > 0;
31
- return {
32
- pass,
33
- message: () => `Expected ${actual} to be a non-empty array`,
34
- };
35
- },
36
- toBeNonEmptyString: (actual) => {
37
- const pass = typeof actual === 'string' && actual.length > 0;
38
- return {
39
- pass,
40
- message: () => `Expected "${actual}" to be a non-empty string`,
41
- };
42
- },
43
- toBeNumber: (actual) => {
44
- const pass = typeof actual === 'number';
45
- return {
46
- pass,
47
- message: () => `Expected "${actual}" to be a number`,
48
- };
49
- },
50
- toBeNonEmptyObject: (actual) => {
51
- const isObject = typeof actual === 'object' && !Array.isArray(actual);
52
- const isNonEmpty = Object.entries(actual).length > 0;
53
- const pass = isObject && isNonEmpty;
54
- return {
55
- pass,
56
- message: () => `Expected "${actual}" to be a non-emtpy object`,
57
- };
58
- },
59
- toBeObject: (actual) => {
60
- const pass = typeof actual === 'object' && !Array.isArray(actual);
61
- return {
62
- pass,
63
- message: () => `Expected "${actual}" to be an object`,
64
- };
65
- },
66
- toBeString: (received) => {
67
- const actual = typeof received;
68
- const expected = 'string';
69
- return {
70
- pass: actual === expected,
71
- message: () => `Expected "${actual}" to be a string`,
72
- actual,
73
- expected,
74
- };
75
- },
76
- toBeTrue: (actual) => {
77
- const pass = actual === true;
78
- return {
79
- pass,
80
- message: () => `Expected "${actual}" to be true`,
81
- expected: true,
82
- actual,
83
- };
84
- },
85
- toBeFalse: (actual) => {
86
- const pass = actual === false;
87
- return {
88
- pass,
89
- message: () => `Expected "${actual}" to be false`,
90
- };
91
- },
92
- toBeWholeNumber: (received) => {
93
- const pass = Number.isInteger(received);
94
- return {
95
- pass,
96
- message: () => `Expected "${received}" to be a whole number`,
97
- };
98
- },
99
- toBeWithinRange: (received, lower, upper) => {
100
- const pass = received >= lower && received <= upper;
101
- return {
102
- pass,
103
- message: () => `Expected ${received} to be within range <${lower}, ${upper}>`,
104
- };
105
- },
106
- toFinishWith: async (received, userOptions) => {
107
- const options = {
108
- ...TO_FINISH_WITH_OPTIONS,
109
- ...userOptions,
110
- };
111
- const failedAssertions = [];
112
- const diffs = {
113
- pass: true,
114
- actual: ['Run:'],
115
- expected: ['Run:'],
116
- };
117
- {
118
- const expected = options?.status;
119
- const actual = received.status;
120
- const statusTest = expected === actual;
121
- if (statusTest === false) {
122
- diffs.pass = false;
123
- diffs.actual.push(`status=${actual}`);
124
- diffs.expected.push(`status=${expected}`);
125
- failedAssertions.push(`Failed status check, expected "${expected}", got "${actual}".`);
126
- }
127
- }
128
- const { chargedEventCounts, stats: { durationMillis }, } = await received.getRunInfo();
129
- const datasetItemCount = (await received.getDataset()).items.length;
130
- const stats = await received.getStatistics();
131
- const checkInterval = (value, key, label) => {
132
- const result = isWithinInterval(diffs, value, options, key);
133
- if (result === false) {
134
- failedAssertions.push(`Failed ${label} check, expected ${JSON.stringify(options[key])}, got ${value}.`);
135
- }
136
- };
137
- checkInterval(datasetItemCount, 'datasetItemCount', 'dataset item count');
138
- checkInterval(durationMillis, 'duration', 'duration');
139
- checkInterval(stats?.requestsFailed, 'failedRequests', 'failed requests');
140
- checkInterval(stats?.requestsRetries, 'requestsRetries', 'requests retries');
141
- {
142
- if (options.maxRetriesPerRequest !== null) {
143
- const maxRetriesPerRequestObserved = (stats?.requestRetryHistogram ?? [0]).length - 1;
144
- if (maxRetriesPerRequestObserved > options.maxRetriesPerRequest) {
145
- diffs.pass = false;
146
- diffs.actual.push(`maxRetriesPerRequest=${maxRetriesPerRequestObserved}`);
147
- diffs.expected.push(`maxRetriesPerRequest<=${options.maxRetriesPerRequest}`);
148
- failedAssertions.push(`Failed max retries observed check, expected <=${options.maxRetriesPerRequest}, got ${maxRetriesPerRequestObserved}.`);
149
- }
150
- }
151
- }
152
- const ppeDiffs = {
153
- pass: true,
154
- actual: ['PPE Events:'],
155
- expected: ['PPE Events:'],
156
- };
157
- if (options.chargedEventCounts) {
158
- const expected = options.chargedEventCounts;
159
- const actual = chargedEventCounts ?? {};
160
- const uniquePpeEvents = new Set([
161
- ...Array.from(Object.keys(expected)),
162
- ...Array.from(Object.keys(actual)),
163
- ]);
164
- for (const ppeEvent of uniquePpeEvents) {
165
- if (!(ppeEvent in expected)) {
166
- isWithinInterval(ppeDiffs, actual[ppeEvent], { [ppeEvent]: 0 }, ppeEvent);
167
- continue;
168
- }
169
- if (!(ppeEvent in actual)) {
170
- ppeDiffs.pass = false;
171
- ppeDiffs.actual.push(`${ppeEvent}=X`);
172
- ppeDiffs.expected.push(`${ppeEvent}=${expected[ppeEvent]}`);
173
- continue;
174
- }
175
- isWithinInterval(ppeDiffs, actual[ppeEvent], expected, ppeEvent);
176
- }
177
- if (ppeDiffs.pass === false) {
178
- diffs.pass = ppeDiffs.pass;
179
- diffs.actual.push(ppeDiffs.actual.join('\n '));
180
- diffs.expected.push(ppeDiffs.expected.join('\n '));
181
- failedAssertions.push(`Failed PPE event counts check, expected ${JSON.stringify(options.chargedEventCounts)}, got ${JSON.stringify(chargedEventCounts)}.`);
182
- }
183
- }
184
- {
185
- const { forbiddenLogs } = options;
186
- const log = await received.getLog();
187
- const occuredLogs = [];
188
- for (const forbiddenLog of forbiddenLogs) {
189
- if (log.includes(forbiddenLog)) {
190
- occuredLogs.push(forbiddenLog);
191
- }
192
- }
193
- if (occuredLogs.length > 0) {
194
- diffs.pass = false;
195
- diffs.actual.push(` logs=[${occuredLogs.join(', ')}]`);
196
- diffs.expected.push(` logs=[]`);
197
- failedAssertions.push(`Failed forbidden logs check, expected [] but got [${occuredLogs.join(', ')}].`);
198
- }
199
- }
200
- return {
201
- pass: diffs.pass,
202
- message: () => `Run did not finish as expected. Failed assertions: ${failedAssertions.join(' ')}`,
203
- actual: diffs.actual.join('\n '),
204
- expected: diffs.expected.join('\n '),
205
- };
206
- },
207
- toStartWith: (received, prefix) => {
208
- const pass = received?.startsWith(prefix);
209
- return {
210
- pass,
211
- message: () => `Expected "${received}" to start with "${prefix}"`,
212
- };
213
- },
214
- });
215
- // here we are switching logic of expect and expect.soft
216
- // expect => expect.soft
217
- // expect.hard => expect
218
- const { soft } = expect;
219
- const oldExpect = { ...expect };
220
- const softExpect = (actual, message) => {
221
- return soft(actual, message);
222
- };
223
- for (const [key, value] of Object.entries(oldExpect)) {
224
- // @ts-expect-error: No idea how to type this properly
225
- softExpect[key] = value;
226
- }
227
- softExpect.hard = (actual, message) => {
228
- return expect(actual, message);
229
- };
230
- return softExpect;
231
- };
232
- const isWithinInterval = (diffs, actual, options, intervalOption) => {
233
- const expected = options[intervalOption];
234
- if (expected === null) {
235
- // check is disabled if expected value is null
236
- return;
237
- }
238
- if (typeof expected === 'number') {
239
- if (actual !== expected) {
240
- diffs.pass = false;
241
- diffs.actual.push(`${intervalOption}=${actual}`);
242
- diffs.expected.push(`${intervalOption}=${expected}`);
243
- return false;
244
- }
245
- }
246
- else if (typeof expected === 'object') {
247
- const { min, max } = expected;
248
- if (actual === undefined || (min !== undefined && actual < min) || (max !== undefined && actual > max)) {
249
- diffs.pass = false;
250
- diffs.actual.push(`${intervalOption}=${actual}`);
251
- diffs.expected.push(`${intervalOption}=<${min ?? ''},${max ?? ''}>`);
252
- return false;
253
- }
254
- }
255
- return;
256
- };
257
- //# sourceMappingURL=extend-expect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extend-expect.js","sourceRoot":"","sources":["../../lib/extend-expect.ts"],"names":[],"mappings":"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"}
package/dist/lib/lib.d.ts DELETED
@@ -1,38 +0,0 @@
1
- import { ExpectStatic, TestFunction, SuiteFactory, TestContext } from 'vitest';
2
- import type { ActorTestOptions, RunOptions } from './types.js';
3
- import { RunTestResult } from './run-test-result.js';
4
- export { ExpectStatic };
5
- export declare const describe: (name: string, fn?: SuiteFactory<object>, options?: ActorTestOptions) => void;
6
- export declare const testActor: <T>(actorName: string, testName: string, fn: TestFunction<{
7
- run: ReturnType<typeof createStartRunFn<T>>;
8
- }>, testOptions?: ActorTestOptions) => void;
9
- /**
10
- * This wrapper creates a new task with specific `build` of the standby actor and provides
11
- * `callStandby` function, which calls the task's `standbyUrl`.
12
- *
13
- * Using task is just current shortcoming of standby feature but ideally we would use Actor directly
14
- */
15
- export declare const testStandbyActor: <I = any, O = any>(actorName: string, testName: string, fn: TestFunction<{
16
- callStandby: ReturnType<typeof createStartStandbyFn<I, O>>;
17
- }>, testOptions?: ActorTestOptions) => void;
18
- export declare const testTestActor: <T>(testName: string, fn: TestFunction<{
19
- run: ReturnType<typeof createStartRunFn<T>>;
20
- }>) => void;
21
- export declare const it: <T>(actorName: string, testName: string, fn: TestFunction<{
22
- run: ReturnType<typeof createStartRunFn<T>>;
23
- }>, testOptions?: ActorTestOptions) => void;
24
- /**
25
- * Creates a function the accepts input for a standby actor and sends request containing input
26
- * to the task's standby url.
27
- */
28
- declare const createStartStandbyFn: <I, O>(standbyTask: StandbyTask) => ({ input }: Pick<RunOptions<I>, "input">) => Promise<{
29
- data: O;
30
- status: number;
31
- headers: Headers;
32
- }>;
33
- interface StandbyTask {
34
- standbyUrl: string;
35
- taskId: string;
36
- }
37
- declare const createStartRunFn: <T>(actorNameOrId: string, testContext: TestContext) => (runOptions: RunOptions<T>) => Promise<RunTestResult>;
38
- //# sourceMappingURL=lib.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,WAAW,EACd,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAc,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwBrD,OAAO,EAAE,YAAY,EAAE,CAAC;AAYxB,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,EAAE,KAAK,YAAY,CAAC,MAAM,CAAC,EAAE,UAAS,gBAAuC,SAEjH,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,CAAC,EACvB,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,EACjE,cAAc,gBAAgB,SAgBjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAC7C,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,WAAW,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,EAChF,cAAc,gBAAgB,SAkCjC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,EAC3B,UAAU,MAAM,EAChB,IAAI,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,SAWpE,CAAC;AAEF,eAAO,MAAM,EAAE,GAnFW,CAAC,aACZ,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBACnD,gBAAgB,SA+EP,CAAC;AAE5B;;;GAGG;AACH,QAAA,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EAAE,aAAa,WAAW,MAE1C,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;;;;EAgBxD,CAAC;AAEF,UAAU,WAAW;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAgED,QAAA,MAAM,gBAAgB,GAAI,CAAC,EAAE,eAAe,MAAM,EAAE,aAAa,WAAW,MAK1D,YAAY,UAAU,CAAC,CAAC,CAAC,2BAiC1C,CAAC"}
package/dist/lib/lib.js DELETED
@@ -1,215 +0,0 @@
1
- import { ApifyClient } from 'apify-client';
2
- import { describe as vitestDescribe, test as vitestTest, } from 'vitest';
3
- import { RunTestResult } from './run-test-result.js';
4
- import { extendExpect } from './extend-expect.js';
5
- import { getActorPrefilledInput, sleep } from './utils.js';
6
- const ACTOR_BUILDS = 'ACTOR_BUILDS';
7
- let actorBuilds = [];
8
- try {
9
- const actorBuildsEnv = process.env[ACTOR_BUILDS];
10
- if (actorBuildsEnv) {
11
- actorBuilds = JSON.parse(actorBuildsEnv);
12
- if (!Array.isArray(actorBuilds)) {
13
- throw new Error(`${ACTOR_BUILDS} env variable should contain a JSON array, got ${typeof actorBuilds}`);
14
- }
15
- }
16
- }
17
- catch (err) {
18
- throw new Error(`Failed to parse actor builds: ${err}`);
19
- }
20
- const config = actorBuilds.reduce((map, cfg) => {
21
- map.set(cfg.actorName, cfg);
22
- map.set(cfg.actorId, cfg);
23
- return map;
24
- }, new Map());
25
- const { TESTER_APIFY_TOKEN, RUN_PLATFORM_TESTS, RUN_ALL_PLATFORM_TESTS } = process.env;
26
- const apifyClient = new ApifyClient({ token: TESTER_APIFY_TOKEN });
27
- const DEFAULT_TEST_OPTIONS = {
28
- // we want to run tests concurrently
29
- concurrent: true,
30
- // test should finish within 1 hour
31
- timeout: 60_000 * 60,
32
- };
33
- export const describe = (name, fn, options = DEFAULT_TEST_OPTIONS) => {
34
- vitestDescribe.runIf(!!RUN_PLATFORM_TESTS || !!RUN_ALL_PLATFORM_TESTS)(name, options, fn);
35
- };
36
- const DEFAULT_TEST_ACTOR_OPTIONS = {
37
- retry: 1,
38
- };
39
- export const testActor = (actorName, testName, fn, testOptions) => {
40
- const options = {
41
- ...DEFAULT_TEST_ACTOR_OPTIONS,
42
- ...testOptions,
43
- };
44
- const name = `${actorName}: ${testName}`;
45
- const shouldRun = !!RUN_ALL_PLATFORM_TESTS || config.has(actorName);
46
- vitestTest.runIf(shouldRun)(name, options, async (context) => {
47
- const { expect, ...rest } = context;
48
- await fn({
49
- expect: extendExpect(expect),
50
- run: createStartRunFn(actorName, context),
51
- ...rest,
52
- });
53
- });
54
- };
55
- /**
56
- * This wrapper creates a new task with specific `build` of the standby actor and provides
57
- * `callStandby` function, which calls the task's `standbyUrl`.
58
- *
59
- * Using task is just current shortcoming of standby feature but ideally we would use Actor directly
60
- */
61
- export const testStandbyActor = (actorName, testName, fn, testOptions) => {
62
- const options = {
63
- ...DEFAULT_TEST_ACTOR_OPTIONS,
64
- ...testOptions,
65
- };
66
- const name = `${actorName}: ${testName}`;
67
- const shouldRun = !!RUN_ALL_PLATFORM_TESTS || config.has(actorName);
68
- vitestTest.runIf(shouldRun)(name, options, async (context) => {
69
- const standbyTask = await createStandbyTask(actorName, config.get(actorName)?.buildNumber);
70
- const { annotate } = context;
71
- const { expect, ...rest } = context;
72
- // NOTE: we need to wrap `fn` in try-catch so that we can always clean up (delete the task) afterwards
73
- try {
74
- await fn({
75
- expect: extendExpect(expect),
76
- callStandby: createStartStandbyFn(standbyTask),
77
- ...rest,
78
- });
79
- }
80
- catch { }
81
- const { taskId } = standbyTask;
82
- const runs = (await apifyClient.task(taskId).runs().list()).items;
83
- for (const run of runs) {
84
- const runLink = generateRunLink(run);
85
- await annotate(`${name} - ${runLink}`, 'run_link');
86
- }
87
- if (taskId) {
88
- await apifyClient.task(taskId).delete();
89
- }
90
- });
91
- };
92
- export const testTestActor = (testName, fn) => {
93
- vitestTest(testName, async (context) => {
94
- const { expect, ...rest } = context;
95
- await fn({
96
- expect: extendExpect(expect),
97
- // @ts-expect-error: this just to test custom matchers
98
- run: () => { },
99
- ...rest,
100
- });
101
- });
102
- };
103
- export const it = testActor;
104
- /**
105
- * Creates a function the accepts input for a standby actor and sends request containing input
106
- * to the task's standby url.
107
- */
108
- const createStartStandbyFn = (standbyTask) => {
109
- const { standbyUrl } = standbyTask;
110
- return async ({ input }) => {
111
- const response = await fetch(standbyUrl, {
112
- headers: {
113
- Authorization: `Bearer ${apifyClient.token}`,
114
- },
115
- method: 'POST',
116
- body: JSON.stringify(input),
117
- });
118
- const data = (await response.json());
119
- return {
120
- data,
121
- status: response.status,
122
- headers: response.headers,
123
- };
124
- };
125
- };
126
- const randomInt = (min, max) => {
127
- return Math.floor(Math.random() * (max - min + 1)) + min;
128
- };
129
- /**
130
- * Creates a task with specific `build` - either `buildNumber` or default.
131
- *
132
- * @throws if actor doesn't exist or it doesn't support standby mode.
133
- */
134
- const createStandbyTask = async (actorNameOrId, buildNumber) => {
135
- const actor = apifyClient.actor(actorNameOrId);
136
- const actorInfo = (await actor.get());
137
- if (!actorInfo) {
138
- throw new Error(`Actor "${actorNameOrId}" not found`);
139
- }
140
- if (!actorInfo.standbyUrl) {
141
- throw new Error(`Actor "${actorNameOrId}" doesn't support standby mode`);
142
- }
143
- if (!actorInfo.actorStandby) {
144
- throw new Error(`Actor "${actorNameOrId} doesn't contain actorStandby options`);
145
- }
146
- const { isEnabled, ...defaultActorStandby } = actorInfo.actorStandby;
147
- const build = buildNumber ?? defaultActorStandby.build;
148
- const actorStandbyOptions = {
149
- ...defaultActorStandby,
150
- build,
151
- };
152
- try {
153
- const title = `Test task - ${build}:${actorNameOrId}`.slice(0, 62);
154
- // we try to create unique task name containing only `a-z0-9-` characters and at most 63 characters long
155
- const name = `${randomInt(1, 1_000_000)}${title
156
- .toLowerCase()
157
- .replaceAll(/\s+/g, '')
158
- .replaceAll(/[^a-z0-9-]+/g, '-')}`.slice(0, 62);
159
- const newTask = (await apifyClient.tasks().create({
160
- actId: actorNameOrId,
161
- actorStandby: actorStandbyOptions,
162
- description: `Task for testing standby version ${build}`,
163
- title,
164
- name,
165
- }));
166
- const { id, standbyUrl } = newTask;
167
- if (!standbyUrl) {
168
- throw new Error(`Task "${id} doesn't contain standbyUrl property`);
169
- }
170
- return {
171
- standbyUrl,
172
- taskId: id,
173
- };
174
- }
175
- catch (error) {
176
- throw new Error(`Failed to create task: ${error}`);
177
- }
178
- };
179
- const createStartRunFn = (actorNameOrId, testContext) => {
180
- const { annotate, task } = testContext;
181
- const actorConfig = config.get(actorNameOrId);
182
- const build = actorConfig?.buildNumber;
183
- const buildId = actorConfig?.buildId;
184
- return async (runOptions) => {
185
- const { input, options, prefilledInput, runId } = runOptions;
186
- if (runId) {
187
- const run = await apifyClient.run(runId).get();
188
- if (!run) {
189
- throw new Error(`Run with id "${runId}" doesn't exist`);
190
- }
191
- return new RunTestResult(apifyClient, run);
192
- }
193
- const actor = apifyClient.actor(actorNameOrId);
194
- const actorInput = {
195
- ...(prefilledInput && (await getActorPrefilledInput(apifyClient, actorNameOrId, buildId))),
196
- ...input,
197
- };
198
- const run = await actor.call(actorInput, { build, ...options });
199
- const runLink = generateRunLink(run);
200
- await annotate(`${task.name} - ${runLink}`, 'run_link');
201
- // @ts-expect-error: `TaskMeta` cannot be retyped
202
- task.meta = {
203
- runId: run.id,
204
- runLink,
205
- actorName: actorNameOrId,
206
- };
207
- // waiting for datasetItemCount and chargedEventCounts to sync
208
- await sleep(10_000);
209
- return new RunTestResult(apifyClient, run);
210
- };
211
- };
212
- const generateRunLink = (run) => {
213
- return `https://console.apify.com/view/runs/${run.id}`;
214
- };
215
- //# sourceMappingURL=lib.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { ActorRun, ApifyClient, KeyValueStoreClient } from 'apify-client';
2
- import type { Dataset, SdkCrawlerStatistics } from './types.js';
3
- export declare class RunTestResult {
4
- private readonly apifyClient;
5
- private readonly run;
6
- private log;
7
- private dataset;
8
- private keyValueStoreClient;
9
- private statistics;
10
- private runInfo;
11
- private input;
12
- constructor(apifyClient: ApifyClient, run: ActorRun);
13
- getStatistics: () => Promise<SdkCrawlerStatistics | undefined>;
14
- getLog: () => Promise<string>;
15
- getDataset: <T>() => Promise<Dataset<T>>;
16
- getKeyValueStoreClient: () => KeyValueStoreClient;
17
- getInput: <T>() => Promise<T>;
18
- getRunInfo: () => Promise<ActorRun>;
19
- get id(): string;
20
- get status(): string;
21
- }
22
- //# sourceMappingURL=run-test-result.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-test-result.d.ts","sourceRoot":"","sources":["../../lib/run-test-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEhE,qBAAa,aAAa;IAQV,OAAO,CAAC,QAAQ,CAAC,WAAW;IAAe,OAAO,CAAC,QAAQ,CAAC,GAAG;IAP3E,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,KAAK,CAAsB;gBAEN,WAAW,EAAE,WAAW,EAAmB,GAAG,EAAE,QAAQ;IAIrF,aAAa,QAAa,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAQjE;IAEF,MAAM,QAAa,OAAO,CAAC,MAAM,CAAC,CAOhC;IAEF,UAAU,GAAU,CAAC,OAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAQ3C;IAEF,sBAAsB,QAAO,mBAAmB,CAO9C;IAEF,QAAQ,GAAU,CAAC,OAAK,OAAO,CAAC,CAAC,CAAC,CAQhC;IAEF,UAAU,QAAa,OAAO,CAAC,QAAQ,CAAC,CAOtC;IAEF,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ"}
@@ -1,73 +0,0 @@
1
- export class RunTestResult {
2
- apifyClient;
3
- run;
4
- log;
5
- dataset;
6
- keyValueStoreClient;
7
- statistics;
8
- runInfo;
9
- input;
10
- constructor(apifyClient, run) {
11
- this.apifyClient = apifyClient;
12
- this.run = run;
13
- /**/
14
- }
15
- getStatistics = async () => {
16
- if (this.statistics) {
17
- return this.statistics;
18
- }
19
- const kvs = this.apifyClient.keyValueStore(this.run.defaultKeyValueStoreId);
20
- const stats = await kvs.getRecord('SDK_CRAWLER_STATISTICS_0');
21
- this.statistics = stats?.value;
22
- return this.statistics;
23
- };
24
- getLog = async () => {
25
- if (this.log) {
26
- return this.log;
27
- }
28
- const runLog = await this.apifyClient.run(this.id).log().get();
29
- this.log = runLog;
30
- return runLog;
31
- };
32
- getDataset = async () => {
33
- if (this.dataset) {
34
- return this.dataset;
35
- }
36
- const dataset = this.apifyClient.dataset(this.run.defaultDatasetId);
37
- const items = (await dataset.listItems()).items;
38
- this.dataset = { items };
39
- return this.dataset;
40
- };
41
- getKeyValueStoreClient = () => {
42
- if (this.keyValueStoreClient) {
43
- return this.keyValueStoreClient;
44
- }
45
- const keyValueStoreClient = this.apifyClient.keyValueStore(this.run.defaultKeyValueStoreId);
46
- this.keyValueStoreClient = keyValueStoreClient;
47
- return keyValueStoreClient;
48
- };
49
- getInput = async () => {
50
- if (this.input) {
51
- return this.input;
52
- }
53
- const kvs = this.apifyClient.keyValueStore(this.run.defaultKeyValueStoreId);
54
- const input = await kvs.getRecord('INPUT');
55
- this.input = input?.value;
56
- return this.input;
57
- };
58
- getRunInfo = async () => {
59
- if (this.runInfo) {
60
- return this.runInfo;
61
- }
62
- const run = this.apifyClient.run(this.run.id);
63
- this.runInfo = await run.get();
64
- return this.runInfo;
65
- };
66
- get id() {
67
- return this.run.id;
68
- }
69
- get status() {
70
- return this.run.status;
71
- }
72
- }
73
- //# sourceMappingURL=run-test-result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-test-result.js","sourceRoot":"","sources":["../../lib/run-test-result.ts"],"names":[],"mappings":"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"}