apify-test-tools 0.1.0 → 0.2.0
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/CHANGELOG.md +12 -0
- package/CONTRIBUTING.md +53 -0
- package/README.md +247 -17
- package/bin/git.ts +24 -5
- package/bin/main.ts +11 -1
- package/bin/types.ts +1 -0
- package/bin/utils.ts +15 -8
- package/dist/bin/git.d.ts +2 -0
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +22 -5
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/main.js +9 -1
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/types.d.ts +1 -0
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/bin/utils.d.ts +3 -0
- package/dist/bin/utils.d.ts.map +1 -1
- package/dist/bin/utils.js +13 -8
- package/dist/bin/utils.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/lib.d.ts +23 -1
- package/dist/lib/lib.d.ts.map +1 -1
- package/dist/lib/lib.js +110 -4
- package/dist/lib/lib.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/test/unit/custom-matchers.test.js +23 -1
- package/dist/test/unit/custom-matchers.test.js.map +1 -1
- package/dist/test/unit/parse-commit.test.d.ts +2 -0
- package/dist/test/unit/parse-commit.test.d.ts.map +1 -0
- package/dist/test/unit/parse-commit.test.js +57 -0
- package/dist/test/unit/parse-commit.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +1 -1
- package/lib/lib.ts +137 -5
- package/lib/utils.ts +6 -1
- package/package.json +1 -1
- package/test/unit/custom-matchers.test.ts +25 -1
- package/test/unit/parse-commit.test.ts +73 -0
package/dist/bin/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,EAEX,WAAW,EACd,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,yBAAyB,YAAa,MAAM,SAAQ,MAAM,EAAE,WAgBxE,CAAC;AAEF,eAAO,MAAM,WAAW,gBAAiB,WAAW,WAGnD,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,MAAM,iBAAiB,MAAM,KAAG,MAMlE,CAAC;AAEF,eAAO,MAAM,eAAe,eAAgB,MAAM,WAEjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAa,OAAO,CAAC,WAAW,EAAE,CA+B3D,CAAC;AAEF,eAAO,MAAM,MAAM,kBAAmB;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,SAOtE,CAAA;AAED,eAAO,MAAM,gBAAgB,gBAAiB,WAAW,WAIxD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACnC,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,UAAU,yBAAyB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,WAAW,EAAE,CAAC;IAE5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AA2BD;;GAEG;AACH,eAAO,MAAM,gBAAgB,iDAC6B,yBAAyB,KAChF,sBAyEF,CAAC"}
|
package/dist/bin/utils.js
CHANGED
|
@@ -2,16 +2,14 @@ import fs from 'node:fs/promises';
|
|
|
2
2
|
import { spawnSync } from 'node:child_process';
|
|
3
3
|
export const spawnCommandInGhWorkspace = (command, args = []) => {
|
|
4
4
|
console.error(command, args.join(' '));
|
|
5
|
-
const
|
|
6
|
-
const commandInGhWorkspace = `cd ${ghWorkspace}; ${command}`;
|
|
7
|
-
const commandResult = spawnSync(commandInGhWorkspace, args, { shell: true, maxBuffer: 100 * 1024 * 1024 });
|
|
5
|
+
const commandResult = spawnSync(command, args, { shell: true, maxBuffer: 100 * 1024 * 1024 });
|
|
8
6
|
if (commandResult.error) {
|
|
9
|
-
throw new Error(`[Command failed]: ${
|
|
7
|
+
throw new Error(`[Command failed]: ${command}\n${commandResult.error}`);
|
|
10
8
|
}
|
|
11
9
|
if (commandResult.stderr.toString().length > 0) {
|
|
12
10
|
// For some reason 'git' command prints stderr when checking out to detached HEAD state (we only use detached HEAD for testing though)
|
|
13
11
|
if (!commandResult.stderr.toString().includes(`You are in 'detached HEAD' state`)) {
|
|
14
|
-
throw new Error(`[Command printed stderr]: ${
|
|
12
|
+
throw new Error(`[Command printed stderr]: ${command}\n${commandResult.stderr.toString()}`);
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
return commandResult.stdout.toString().trim();
|
|
@@ -35,10 +33,9 @@ export const getRunUrlKvsKey = (runnerName) => {
|
|
|
35
33
|
* This works locally if checkoutRepoLocally is called first
|
|
36
34
|
*/
|
|
37
35
|
export const getRepoActors = async () => {
|
|
38
|
-
const ghWorkspace = getEnvVar('GITHUB_WORKSPACE');
|
|
39
36
|
let actorDirs;
|
|
40
37
|
try {
|
|
41
|
-
actorDirs = (await fs.readdir(
|
|
38
|
+
actorDirs = (await fs.readdir(`./actors`)).map((dir) => `actors/${dir}`);
|
|
42
39
|
}
|
|
43
40
|
catch (err) {
|
|
44
41
|
console.warn(`No /actors directory found in repo`);
|
|
@@ -46,7 +43,7 @@ export const getRepoActors = async () => {
|
|
|
46
43
|
}
|
|
47
44
|
let standaloneActorDirs;
|
|
48
45
|
try {
|
|
49
|
-
standaloneActorDirs = (await fs.readdir(
|
|
46
|
+
standaloneActorDirs = (await fs.readdir(`./standalone-actors`)).map((dir) => `standalone-actors/${dir}`);
|
|
50
47
|
}
|
|
51
48
|
catch (err) {
|
|
52
49
|
console.warn(`No /standalone-actors directory found in repo`);
|
|
@@ -69,6 +66,14 @@ export const getRepoActors = async () => {
|
|
|
69
66
|
console.error(`Standalone actors in repo: ${actorConfigs.filter(({ isStandalone }) => !!isStandalone).map(({ actorName }) => actorName).join(', ')}`);
|
|
70
67
|
return actorConfigs;
|
|
71
68
|
};
|
|
69
|
+
export const setCwd = ({ workspace }) => {
|
|
70
|
+
if (workspace) {
|
|
71
|
+
process.chdir(workspace);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const ghWorkspace = getEnvVar('GITHUB_WORKSPACE', process.cwd());
|
|
75
|
+
process.chdir(ghWorkspace);
|
|
76
|
+
};
|
|
72
77
|
export const getHeadCommitSha = (githubEvent) => {
|
|
73
78
|
return githubEvent.type === 'pull_request'
|
|
74
79
|
? githubEvent.pull_request.head.sha
|
package/dist/bin/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../bin/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAgB,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
package/dist/lib/lib.d.ts
CHANGED
|
@@ -6,11 +6,33 @@ export declare const describe: (name: string, fn?: SuiteFactory<object>, options
|
|
|
6
6
|
export declare const testActor: <T>(actorName: string, testName: string, fn: TestFunction<{
|
|
7
7
|
run: ReturnType<typeof createStartRunFn<T>>;
|
|
8
8
|
}>, testOptions?: TestOptions) => 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?: TestOptions) => void;
|
|
9
18
|
export declare const testTestActor: <T>(testName: string, fn: TestFunction<{
|
|
10
19
|
run: ReturnType<typeof createStartRunFn<T>>;
|
|
11
20
|
}>) => void;
|
|
12
21
|
export declare const it: <T>(actorName: string, testName: string, fn: TestFunction<{
|
|
13
22
|
run: ReturnType<typeof createStartRunFn<T>>;
|
|
14
23
|
}>, testOptions?: TestOptions) => void;
|
|
15
|
-
|
|
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>;
|
|
16
38
|
//# sourceMappingURL=lib.d.ts.map
|
package/dist/lib/lib.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,WAAW,EACX,WAAW,EACd,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwBrD,OAAO,EAAE,YAAY,EAAE,CAAC;AAYxB,eAAO,MAAM,QAAQ,SACX,MAAM,OACP,YAAY,CAAC,MAAM,CAAC,YAChB,WAAW,SAGvB,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,CAAC,aACZ,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBACnD,WAAW,SAiB5B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,YACjB,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,SAWpE,CAAC;AAEF,eAAO,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,YAAY,EACZ,YAAY,EAEZ,YAAY,EACZ,WAAW,EACX,WAAW,EACd,MAAM,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAc,UAAU,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwBrD,OAAO,EAAE,YAAY,EAAE,CAAC;AAYxB,eAAO,MAAM,QAAQ,SACX,MAAM,OACP,YAAY,CAAC,MAAM,CAAC,YAChB,WAAW,SAGvB,CAAC;AAMF,eAAO,MAAM,SAAS,GAAI,CAAC,aACZ,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBACnD,WAAW,SAiB5B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,QAAQ,CAAC,mBAC5B,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,WAAW,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBAClE,WAAW,SAmC5B,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,CAAC,YACjB,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,SAWpE,CAAC;AAEF,eAAO,MAAM,EAAE,GArFW,CAAC,aACZ,MAAM,YACP,MAAM,MACZ,YAAY,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,gBACnD,WAAW,SAiFF,CAAC;AAE5B;;;GAGG;AACH,QAAA,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,eAAe,WAAW,iBAE/B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;;;;EAgBxD,CAAA;AAED,UAAU,WAAW;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAqDD,QAAA,MAAM,gBAAgB,GAAI,CAAC,iBAAiB,MAAM,eAAe,WAAW,kBAK9C,UAAU,CAAC,CAAC,CAAC,2BA8B1C,CAAC"}
|
package/dist/lib/lib.js
CHANGED
|
@@ -2,7 +2,7 @@ import { ApifyClient } from 'apify-client';
|
|
|
2
2
|
import { describe as vitestDescribe, test as vitestTest, } from 'vitest';
|
|
3
3
|
import { RunTestResult } from './run-test-result.js';
|
|
4
4
|
import { extendExpect } from './extend-expect.js';
|
|
5
|
-
import { getActorPrefilledInput } from './utils.js';
|
|
5
|
+
import { getActorPrefilledInput, sleep } from './utils.js';
|
|
6
6
|
const ACTOR_BUILDS = 'ACTOR_BUILDS';
|
|
7
7
|
let actorBuilds = [];
|
|
8
8
|
try {
|
|
@@ -52,6 +52,43 @@ export const testActor = (actorName, testName, fn, testOptions) => {
|
|
|
52
52
|
});
|
|
53
53
|
});
|
|
54
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(runLink, 'run_link');
|
|
86
|
+
}
|
|
87
|
+
if (taskId) {
|
|
88
|
+
await apifyClient.task(taskId).delete();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
};
|
|
55
92
|
export const testTestActor = (testName, fn) => {
|
|
56
93
|
vitestTest(testName, async (context) => {
|
|
57
94
|
const { expect, ...rest } = context;
|
|
@@ -64,7 +101,73 @@ export const testTestActor = (testName, fn) => {
|
|
|
64
101
|
});
|
|
65
102
|
};
|
|
66
103
|
export const it = testActor;
|
|
67
|
-
|
|
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
|
+
/**
|
|
127
|
+
* Creates a task with specific `build` - either `buildNumber` or default.
|
|
128
|
+
*
|
|
129
|
+
* @throws if actor doesn't exist or it doesn't support standby mode.
|
|
130
|
+
*/
|
|
131
|
+
const createStandbyTask = async (actorNameOrId, buildNumber) => {
|
|
132
|
+
const actor = apifyClient.actor(actorNameOrId);
|
|
133
|
+
const actorInfo = (await actor.get());
|
|
134
|
+
if (!actorInfo) {
|
|
135
|
+
throw new Error(`Actor "${actorNameOrId}" not found`);
|
|
136
|
+
}
|
|
137
|
+
if (!actorInfo.standbyUrl) {
|
|
138
|
+
throw new Error(`Actor "${actorNameOrId}" doesn't support standby mode`);
|
|
139
|
+
}
|
|
140
|
+
if (!actorInfo.actorStandby) {
|
|
141
|
+
throw new Error(`Actor "${actorNameOrId} doesn't contain actorStandby options`);
|
|
142
|
+
}
|
|
143
|
+
const { isEnabled, ...defaultActorStandby } = actorInfo.actorStandby;
|
|
144
|
+
const build = buildNumber ?? defaultActorStandby.build;
|
|
145
|
+
const actorStandbyOptions = {
|
|
146
|
+
...defaultActorStandby,
|
|
147
|
+
build,
|
|
148
|
+
};
|
|
149
|
+
try {
|
|
150
|
+
const newTask = await apifyClient.tasks().create({
|
|
151
|
+
actId: actorNameOrId,
|
|
152
|
+
actorStandby: actorStandbyOptions,
|
|
153
|
+
description: `Task for testing standby version ${build}`,
|
|
154
|
+
title: `Test task - ${build}`,
|
|
155
|
+
});
|
|
156
|
+
const { id, standbyUrl } = newTask;
|
|
157
|
+
if (!standbyUrl) {
|
|
158
|
+
throw new Error(`Task "${id} doesn't contain standbyUrl property`);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
standbyUrl,
|
|
162
|
+
taskId: id,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
throw new Error(`Failed to create task: ${error}`);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
const createStartRunFn = (actorNameOrId, testContext) => {
|
|
170
|
+
const { annotate, task } = testContext;
|
|
68
171
|
const actorConfig = config.get(actorNameOrId);
|
|
69
172
|
const build = actorConfig?.buildNumber;
|
|
70
173
|
const buildId = actorConfig?.buildId;
|
|
@@ -76,7 +179,7 @@ const createStartRunFn = (actorNameOrId, { annotate, task }) => {
|
|
|
76
179
|
...input,
|
|
77
180
|
};
|
|
78
181
|
const run = await actor.call(actorInput, { build, ...options, });
|
|
79
|
-
const runLink =
|
|
182
|
+
const runLink = generateRunLink(run);
|
|
80
183
|
await annotate(runLink, 'run_link');
|
|
81
184
|
// @ts-expect-error: `TaskMeta` cannot be retyped
|
|
82
185
|
task.meta = {
|
|
@@ -84,8 +187,11 @@ const createStartRunFn = (actorNameOrId, { annotate, task }) => {
|
|
|
84
187
|
runLink,
|
|
85
188
|
};
|
|
86
189
|
// waiting for datasetItemCount and chargedEventCounts to sync
|
|
87
|
-
await
|
|
190
|
+
await sleep(10_000);
|
|
88
191
|
return new RunTestResult(apifyClient, run);
|
|
89
192
|
};
|
|
90
193
|
};
|
|
194
|
+
const generateRunLink = (run) => {
|
|
195
|
+
return `https://console.apify.com/view/runs/${run.id}`;
|
|
196
|
+
};
|
|
91
197
|
//# sourceMappingURL=lib.js.map
|
package/dist/lib/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"lib.js","sourceRoot":"","sources":["../../lib/lib.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -4,4 +4,5 @@ import { ApifyClient } from 'apify-client';
|
|
|
4
4
|
* default build (this is usually `latest`).
|
|
5
5
|
*/
|
|
6
6
|
export declare const getActorPrefilledInput: (apifyClient: ApifyClient, actorNameOrId: string, buildId: string | undefined) => Promise<Record<string, unknown>>;
|
|
7
|
+
export declare const sleep: (ms: number) => Promise<void>;
|
|
7
8
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,WAAW,EAAE,MAAM,cAAc,CAAC;AAGrD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,gBAClB,WAAW,iBACT,MAAM,WACZ,MAAM,GAAG,SAAS,qCAuC9B,CAAC;AAEF,eAAO,MAAM,KAAK,OAAc,MAAM,kBAErC,CAAA"}
|
package/dist/lib/utils.js
CHANGED
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EACvC,WAAwB,EACxB,aAAqB,EACrB,OAA2B,EAC7B,EAAE;IACA,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,CAAC;QAE/D,MAAM,eAAe,GAAG,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC;QAE3D,MAAM,WAAW,GAAG,SAAS,EAAE,YAAY,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,wCAAwC,aAAa,sCAAsC,CAAC,CAAC;YAC3G,OAAO,EAAE,CAAA;QACb,CAAC;IACL,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAEzD,MAAM,WAAW,GAAG,SAAS,EAAE,eAAe,EAAE,KAEnC,CAAA;IAEb,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACT,kDAAkD,aAAa,WAAW,OAAO,GAAG,EACpF,mCAAmC,CACtC,CAAC;QACF,OAAO,EAAE,CAAA;IACb,CAAC;IAED,MAAM,OAAO,GAA4B,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QAClD,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;IACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import process from 'process';
|
|
2
2
|
import { describe } from 'vitest';
|
|
3
3
|
import { ApifyClient } from 'apify-client';
|
|
4
|
-
import { testTestActor } from '../../lib/lib';
|
|
4
|
+
import { testStandbyActor, testTestActor } from '../../lib/lib';
|
|
5
5
|
import { RunTestResult } from '../../lib/run-test-result';
|
|
6
6
|
var PpeEventEnum;
|
|
7
7
|
(function (PpeEventEnum) {
|
|
@@ -49,5 +49,27 @@ describe('custom-matchers', { timeout: 100_000 }, () => {
|
|
|
49
49
|
expect.hard(5).toEqual(5);
|
|
50
50
|
expect(10).toEqual(10);
|
|
51
51
|
});
|
|
52
|
+
testStandbyActor('ondrejklinovsky/contact-info', 'CDS standby', async ({ expect, callStandby }) => {
|
|
53
|
+
{
|
|
54
|
+
const { data, status } = await callStandby({
|
|
55
|
+
input: {
|
|
56
|
+
startUrls: [{ url: 'https://apify.com' }],
|
|
57
|
+
maxRequests: 3,
|
|
58
|
+
aggregateContacts: true,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
expect(status).toBe(200);
|
|
62
|
+
expect(data[0].domain).toEqual('apify.com');
|
|
63
|
+
}
|
|
64
|
+
const { data, status } = await callStandby({
|
|
65
|
+
input: {
|
|
66
|
+
startUrls: [{ url: 'https://apify.com' }],
|
|
67
|
+
maxRequests: 3,
|
|
68
|
+
aggregateContacts: true,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
expect(status).toBe(200);
|
|
72
|
+
expect(data[0].domain).toEqual('apify.com');
|
|
73
|
+
});
|
|
52
74
|
});
|
|
53
75
|
//# sourceMappingURL=custom-matchers.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-matchers.test.js","sourceRoot":"","sources":["../../../test/unit/custom-matchers.test.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"custom-matchers.test.js","sourceRoot":"","sources":["../../../test/unit/custom-matchers.test.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAM1D,IAAK,YAIJ;AAJD,WAAK,YAAY;IACb,2CAA2B,CAAA;IAC3B,2DAA2C,CAAA;IAC3C,2CAA2B,CAAA;AAC/B,CAAC,EAJI,YAAY,KAAZ,YAAY,QAIhB;AACD,MAAM,eAAe,GAAG;IACpB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,aAAa;CACpB,CAAC;AAEX,QAAQ,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;IACnD,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACxC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAI,CAAC,CAAC;QACvD,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAe;YAC/C,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtC,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,YAAY;YACpB,kBAAkB,EAAE;gBAChB,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjC,aAAa,EAAE,CAAC;aACnB;SACJ,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAe;YAC/C,gBAAgB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;YACtC,kBAAkB,EAAE;gBAChB,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjC,aAAa,EAAE,CAAC;aACnB;SACJ,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,CAAuD;YACvF,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YACrC,kBAAkB,EAAE;gBAChB,aAAa,EAAE,CAAC;gBAChB,qBAAqB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;gBACjC,aAAa,EAAE,CAAC;aACnB;SACJ,CAAC,CAAC;QAEH,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,gBAAgB,CAAC,8BAA8B,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9F,CAAC;YACG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC;gBACvC,KAAK,EAAE;oBACH,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC;oBACzC,WAAW,EAAE,CAAC;oBACd,iBAAiB,EAAE,IAAI;iBAC1B;aACJ,CAAC,CAAA;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC;YACvC,KAAK,EAAE;gBACH,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC;gBACzC,WAAW,EAAE,CAAC;gBACd,iBAAiB,EAAE,IAAI;aAC1B;SACJ,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-commit.test.d.ts","sourceRoot":"","sources":["../../../test/unit/parse-commit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { GIT_FORMAT_SEPARATOR, parseCommit } from '../../bin/git';
|
|
3
|
+
describe('parseCommit', () => {
|
|
4
|
+
describe('valid commit strings', () => {
|
|
5
|
+
it('should parse a basic commit string correctly', () => {
|
|
6
|
+
const commitString = `abc123${GIT_FORMAT_SEPARATOR}John Doe<john@example.com>${GIT_FORMAT_SEPARATOR}Mon, 25 Dec 2023 10:30:00 +0100${GIT_FORMAT_SEPARATOR}Add new feature`;
|
|
7
|
+
const result = parseCommit(commitString);
|
|
8
|
+
expect(result).toEqual({
|
|
9
|
+
sha: 'abc123',
|
|
10
|
+
author: 'John Doe<john@example.com>',
|
|
11
|
+
date: 'Mon, 25 Dec 2023 10:30:00 +0100',
|
|
12
|
+
message: 'Add new feature'
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
it('should parse commit with double quotes in message', () => {
|
|
16
|
+
const commitString = `def456${GIT_FORMAT_SEPARATOR}Jane Smith<jane@example.com>${GIT_FORMAT_SEPARATOR}Tue, 26 Dec 2023 14:15:00 +0100${GIT_FORMAT_SEPARATOR}test: commit with double quotes: "`;
|
|
17
|
+
const result = parseCommit(commitString);
|
|
18
|
+
expect(result).toEqual({
|
|
19
|
+
sha: 'def456',
|
|
20
|
+
author: 'Jane Smith<jane@example.com>',
|
|
21
|
+
date: 'Tue, 26 Dec 2023 14:15:00 +0100',
|
|
22
|
+
message: 'test: commit with double quotes: \"'
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
it('should parse commit with special characters and Unicode', () => {
|
|
26
|
+
const commitString = `jkl012${GIT_FORMAT_SEPARATOR}María García<maria@example.com>${GIT_FORMAT_SEPARATOR}Thu, 28 Dec 2023 16:20:00 +0100${GIT_FORMAT_SEPARATOR}Add émojis 🚀 and "special" chars`;
|
|
27
|
+
const result = parseCommit(commitString);
|
|
28
|
+
expect(result).toEqual({
|
|
29
|
+
sha: 'jkl012',
|
|
30
|
+
author: 'María García<maria@example.com>',
|
|
31
|
+
date: 'Thu, 28 Dec 2023 16:20:00 +0100',
|
|
32
|
+
message: 'Add émojis 🚀 and "special" chars'
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
it('should parse commit with empty message', () => {
|
|
36
|
+
const commitString = `mno345${GIT_FORMAT_SEPARATOR}Test User<test@example.com>${GIT_FORMAT_SEPARATOR}Fri, 29 Dec 2023 11:00:00 +0100${GIT_FORMAT_SEPARATOR}`;
|
|
37
|
+
const result = parseCommit(commitString);
|
|
38
|
+
expect(result).toEqual({
|
|
39
|
+
sha: 'mno345',
|
|
40
|
+
author: 'Test User<test@example.com>',
|
|
41
|
+
date: 'Fri, 29 Dec 2023 11:00:00 +0100',
|
|
42
|
+
message: ''
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('invalid commit strings', () => {
|
|
47
|
+
it('should throw error for commit string with too few parts', () => {
|
|
48
|
+
const commitString = `abc123${GIT_FORMAT_SEPARATOR}John Doe<john@example.com>${GIT_FORMAT_SEPARATOR}Mon, 25 Dec 2023 10:30:00 +0100`;
|
|
49
|
+
expect(() => parseCommit(commitString)).toThrow(`Failed to parse commit string: ${commitString}`);
|
|
50
|
+
});
|
|
51
|
+
it('should throw error for commit string with too many parts', () => {
|
|
52
|
+
const commitString = `abc123${GIT_FORMAT_SEPARATOR}John Doe<john@example.com>${GIT_FORMAT_SEPARATOR}Mon, 25 Dec 2023 10:30:00 +0100${GIT_FORMAT_SEPARATOR}Add feature${GIT_FORMAT_SEPARATOR}extra part`;
|
|
53
|
+
expect(() => parseCommit(commitString)).toThrow(`Failed to parse commit string: ${commitString}`);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=parse-commit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-commit.test.js","sourceRoot":"","sources":["../../../test/unit/parse-commit.test.ts"],"names":[],"mappings":"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"}
|