apify-test-tools 0.10.2-beta.12 → 0.10.2-beta.14
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/.github/cli/apify-test-tools.mjs +123 -128
- package/.github/workflows/public_platform-tests-claude-investigate-and-fix.yaml +1 -1
- package/.github/workflows/public_platform-tests.yaml +36 -22
- package/.github/workflows/public_pr-build-test.yaml +7 -6
- package/.github/workflows/public_push-build-latest.yaml +6 -4
- package/.prettierignore +1 -1
- package/CHANGELOG.md +3 -0
- package/CONTRIBUTING.md +8 -6
- package/README.md +10 -11
- package/bin/actor-ids.ts +38 -0
- package/bin/build.ts +1 -1
- package/bin/git.ts +20 -92
- package/bin/main.ts +87 -73
- package/bin/notify.ts +198 -0
- package/bin/run-tests.ts +141 -0
- package/bin/slack.ts +16 -87
- package/bin/stdin-input.ts +98 -7
- package/bin/test-report.ts +141 -140
- package/bin/types.ts +0 -9
- package/dist/bin/actor-ids.d.ts +16 -0
- package/dist/bin/actor-ids.d.ts.map +1 -0
- package/dist/bin/actor-ids.js +24 -0
- package/dist/bin/actor-ids.js.map +1 -0
- package/dist/bin/build.js +1 -1
- package/dist/bin/build.js.map +1 -1
- package/dist/bin/git.d.ts +6 -16
- package/dist/bin/git.d.ts.map +1 -1
- package/dist/bin/git.js +15 -75
- package/dist/bin/git.js.map +1 -1
- package/dist/bin/main.js +80 -51
- package/dist/bin/main.js.map +1 -1
- package/dist/bin/notify.d.ts +35 -0
- package/dist/bin/notify.d.ts.map +1 -0
- package/dist/bin/notify.js +131 -0
- package/dist/bin/notify.js.map +1 -0
- package/dist/bin/run-tests.d.ts +21 -0
- package/dist/bin/run-tests.d.ts.map +1 -0
- package/dist/bin/run-tests.js +116 -0
- package/dist/bin/run-tests.js.map +1 -0
- package/dist/bin/slack.d.ts +2 -17
- package/dist/bin/slack.d.ts.map +1 -1
- package/dist/bin/slack.js +17 -58
- package/dist/bin/slack.js.map +1 -1
- package/dist/bin/stdin-input.d.ts +71 -9
- package/dist/bin/stdin-input.d.ts.map +1 -1
- package/dist/bin/stdin-input.js +76 -6
- package/dist/bin/stdin-input.js.map +1 -1
- package/dist/bin/test-report.d.ts +69 -8
- package/dist/bin/test-report.d.ts.map +1 -1
- package/dist/bin/test-report.js +76 -67
- package/dist/bin/test-report.js.map +1 -1
- package/dist/bin/types.d.ts +0 -8
- package/dist/bin/types.d.ts.map +1 -1
- package/dist/lib/lib.d.ts +0 -3
- package/dist/lib/lib.d.ts.map +1 -1
- package/dist/lib/lib.js +5 -10
- package/dist/lib/lib.js.map +1 -1
- package/dist/test/bundle/cli-bundle.test.js +40 -48
- package/dist/test/bundle/cli-bundle.test.js.map +1 -1
- package/dist/test/e2e/cli-bundle.e2e.test.js +15 -16
- package/dist/test/e2e/cli-bundle.e2e.test.js.map +1 -1
- package/dist/test/e2e/git-build-release.e2e.test.js +2 -2
- package/dist/test/e2e/git-build-release.e2e.test.js.map +1 -1
- package/dist/test/unit/bin/actor-ids.test.d.ts +2 -0
- package/dist/test/unit/bin/actor-ids.test.d.ts.map +1 -0
- package/dist/test/unit/bin/actor-ids.test.js +32 -0
- package/dist/test/unit/bin/actor-ids.test.js.map +1 -0
- package/dist/test/unit/bin/build-cli.test.js +8 -3
- package/dist/test/unit/bin/build-cli.test.js.map +1 -1
- package/dist/test/unit/bin/compiled-cli.d.ts +1 -1
- package/dist/test/unit/bin/compiled-cli.d.ts.map +1 -1
- package/dist/test/unit/bin/compiled-cli.js +12 -5
- package/dist/test/unit/bin/compiled-cli.js.map +1 -1
- package/dist/test/unit/bin/diff-changes.test.js +1 -1
- package/dist/test/unit/bin/diff-changes.test.js.map +1 -1
- package/dist/test/unit/bin/git.test.js +4 -142
- package/dist/test/unit/bin/git.test.js.map +1 -1
- package/dist/test/unit/bin/notify.test.d.ts +2 -0
- package/dist/test/unit/bin/notify.test.d.ts.map +1 -0
- package/dist/test/unit/bin/notify.test.js +222 -0
- package/dist/test/unit/bin/notify.test.js.map +1 -0
- package/dist/test/unit/bin/stdin-input.test.js +51 -9
- package/dist/test/unit/bin/stdin-input.test.js.map +1 -1
- package/dist/test/unit/bin/test-cli.test.d.ts +2 -0
- package/dist/test/unit/bin/test-cli.test.d.ts.map +1 -0
- package/dist/test/unit/bin/test-cli.test.js +115 -0
- package/dist/test/unit/bin/test-cli.test.js.map +1 -0
- package/dist/test/unit/bin/test-report.test.d.ts +2 -0
- package/dist/test/unit/bin/test-report.test.d.ts.map +1 -0
- package/dist/test/unit/bin/test-report.test.js +100 -0
- package/dist/test/unit/bin/test-report.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/cli.md +131 -53
- package/docs/lib.md +21 -16
- package/docs/workflows.md +24 -23
- package/eslint.config.mjs +1 -1
- package/lib/lib.ts +5 -10
- package/package.json +1 -1
- package/test/bundle/cli-bundle.test.ts +47 -60
- package/test/e2e/cli-bundle.e2e.test.ts +18 -25
- package/test/e2e/git-build-release.e2e.test.ts +2 -2
- package/test/unit/bin/actor-ids.test.ts +43 -0
- package/test/unit/bin/build-cli.test.ts +9 -3
- package/test/unit/bin/compiled-cli.ts +11 -5
- package/test/unit/bin/diff-changes.test.ts +1 -1
- package/test/unit/bin/git.test.ts +3 -197
- package/test/unit/bin/notify.test.ts +299 -0
- package/test/unit/bin/stdin-input.test.ts +68 -9
- package/test/unit/bin/test-cli.test.ts +137 -0
- package/test/unit/bin/test-report.test.ts +118 -0
- package/dist/test/unit/bin/logging.test.d.ts +0 -2
- package/dist/test/unit/bin/logging.test.d.ts.map +0 -1
- package/dist/test/unit/bin/logging.test.js +0 -43
- package/dist/test/unit/bin/logging.test.js.map +0 -1
- package/dist/test/unit/bin/slack.test.d.ts +0 -2
- package/dist/test/unit/bin/slack.test.d.ts.map +0 -1
- package/dist/test/unit/bin/slack.test.js +0 -71
- package/dist/test/unit/bin/slack.test.js.map +0 -1
- package/test/unit/bin/logging.test.ts +0 -52
- package/test/unit/bin/slack.test.ts +0 -84
package/bin/stdin-input.ts
CHANGED
|
@@ -29,6 +29,14 @@ const parseStdinJson = <T>(
|
|
|
29
29
|
} catch (error) {
|
|
30
30
|
throw new Error(`The input on stdin is not valid JSON: ${(error as Error).message}`);
|
|
31
31
|
}
|
|
32
|
+
return validateStdinJson(json, schema, { expected, example });
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const validateStdinJson = <T>(
|
|
36
|
+
json: unknown,
|
|
37
|
+
schema: ZodType<T>,
|
|
38
|
+
{ expected, example }: { expected: string; example: string },
|
|
39
|
+
) => {
|
|
32
40
|
const result = schema.safeParse(json);
|
|
33
41
|
if (!result.success) {
|
|
34
42
|
throw new Error(`The input on stdin is not ${expected} (${example}):\n${prettifyError(result.error)}`);
|
|
@@ -51,15 +59,98 @@ export const parseBuildInput = (raw: string) =>
|
|
|
51
59
|
example: `e.g. echo '{"actors":[{"actorFullName":"owner/name"}]}' | apify-test-tools build --version-number 0.1`,
|
|
52
60
|
});
|
|
53
61
|
|
|
54
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* What `test` reads: the Actors to test, each with the build to test or, without one, its default build. The builds
|
|
64
|
+
* `build` and `build-from-local` print fit, and so does `get-actor-configs`, whose other fields are ignored. An Actor
|
|
65
|
+
* needs its full name or its raw ID, `test` looks up the other. A dry-run plan is an object on purpose, so it is
|
|
66
|
+
* rejected here rather than tested as if it were built.
|
|
67
|
+
*/
|
|
68
|
+
const testTargetsSchema = z.array(
|
|
69
|
+
z
|
|
70
|
+
.object({
|
|
71
|
+
actorFullName: z.string().optional(),
|
|
72
|
+
buildId: z.string().optional(),
|
|
73
|
+
actorRawId: z.string().optional(),
|
|
74
|
+
buildNumber: z.string().optional(),
|
|
75
|
+
})
|
|
76
|
+
.refine(({ actorFullName, actorRawId }) => !!actorFullName || !!actorRawId, {
|
|
77
|
+
message: 'An Actor needs actorFullName or actorRawId',
|
|
78
|
+
}),
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
export type TestTarget = z.infer<typeof testTargetsSchema>[number];
|
|
82
|
+
|
|
83
|
+
const isDryRunPlan = (raw: string) => {
|
|
84
|
+
try {
|
|
85
|
+
return (JSON.parse(raw) as { dryRun?: unknown } | null)?.dryRun === true;
|
|
86
|
+
} catch {
|
|
87
|
+
// Not JSON at all, parseStdinJson says so
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const parseTestTargets = (raw: string) => {
|
|
93
|
+
const example =
|
|
94
|
+
'e.g. ... | apify-test-tools build --version-number 0.99 | apify-test-tools test, ' +
|
|
95
|
+
"or apify-test-tools get-actor-configs | apify-test-tools test for every Actor's default build";
|
|
96
|
+
if (isDryRunPlan(raw)) {
|
|
97
|
+
throw new Error(`The input on stdin is a dry-run plan, not builds, so there is nothing to test (${example}).`);
|
|
98
|
+
}
|
|
99
|
+
return parseStdinJson(raw, testTargetsSchema, { expected: 'the Actors to test', example });
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/** The report `test` prints, see TestReport. */
|
|
103
|
+
const testRunSchema = z.object({ actorId: z.string(), runId: z.string(), runLink: z.string() });
|
|
104
|
+
const testReportSchema = z.object({
|
|
105
|
+
kind: z.literal('test-report'),
|
|
106
|
+
version: z.literal(1),
|
|
107
|
+
success: z.boolean(),
|
|
108
|
+
summary: z.object({ total: z.number(), passed: z.number(), failed: z.number(), skipped: z.number() }),
|
|
109
|
+
tests: z.array(
|
|
110
|
+
z.object({
|
|
111
|
+
name: z.string(),
|
|
112
|
+
file: z.string(),
|
|
113
|
+
status: z.enum(['passed', 'failed', 'skipped']),
|
|
114
|
+
durationMs: z.number().nullable(),
|
|
115
|
+
failureMessages: z.array(z.string()),
|
|
116
|
+
run: testRunSchema.nullable(),
|
|
117
|
+
}),
|
|
118
|
+
),
|
|
119
|
+
errors: z.array(z.string()),
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
/** The parts of a get-affected-actors document that describe what a release changed. Other fields are ignored. */
|
|
55
123
|
const releaseChangesSchema = z.object({
|
|
56
124
|
commits: z.array(z.object({ sha: z.string(), author: z.string(), date: z.string(), message: z.string() })),
|
|
57
|
-
changedFiles: z.array(z.string()),
|
|
58
125
|
changelog: z.string().nullable(),
|
|
59
126
|
});
|
|
60
127
|
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
128
|
+
export type ReleaseChanges = z.infer<typeof releaseChangesSchema>;
|
|
129
|
+
|
|
130
|
+
export type NotifyInput =
|
|
131
|
+
| { kind: 'tests'; report: z.infer<typeof testReportSchema> }
|
|
132
|
+
| { kind: 'release'; changes: ReleaseChanges };
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* What `notify` reads: a test run, as `test` reports it, or a release, as `get-affected-actors` reports it. The test
|
|
136
|
+
* report says so in its `kind`, a release is told by its `commits`, so either can be piped in as it is.
|
|
137
|
+
*/
|
|
138
|
+
export const parseNotifyInput = (raw: string): NotifyInput => {
|
|
139
|
+
const example =
|
|
140
|
+
'e.g. ... | apify-test-tools test | apify-test-tools notify --slack-channel "#my-channel", ' +
|
|
141
|
+
'or apify-test-tools get-affected-actors --since <sha> | apify-test-tools notify --slack-channel "#my-channel"';
|
|
142
|
+
const expected = 'the output of test or get-affected-actors';
|
|
143
|
+
const json = parseStdinJson(raw, z.looseObject({}), { expected, example });
|
|
144
|
+
if (json.kind === 'test-report') {
|
|
145
|
+
const report = validateStdinJson(json, testReportSchema, { expected: 'the output of test', example });
|
|
146
|
+
return { kind: 'tests', report };
|
|
147
|
+
}
|
|
148
|
+
if ('commits' in json) {
|
|
149
|
+
const changes = validateStdinJson(json, releaseChangesSchema, {
|
|
150
|
+
expected: 'the output of get-affected-actors',
|
|
151
|
+
example,
|
|
152
|
+
});
|
|
153
|
+
return { kind: 'release', changes };
|
|
154
|
+
}
|
|
155
|
+
throw new Error(`The input on stdin is not ${expected} (${example}).`);
|
|
156
|
+
};
|
package/bin/test-report.ts
CHANGED
|
@@ -1,158 +1,159 @@
|
|
|
1
|
-
import
|
|
1
|
+
import path from 'node:path';
|
|
2
2
|
|
|
3
3
|
import { logger } from './logger.js';
|
|
4
|
-
import { getSlackClient, sendingLabel, sendSlackMessage } from './slack.js';
|
|
5
|
-
|
|
6
|
-
interface ReportTestResultsOptions {
|
|
7
|
-
reportFile: string;
|
|
8
|
-
dryRun: boolean;
|
|
9
|
-
reportSlackChannel?: string;
|
|
10
|
-
jobUrl?: string;
|
|
11
|
-
workflowName?: string;
|
|
12
|
-
}
|
|
13
4
|
|
|
14
|
-
export
|
|
15
|
-
dryRun,
|
|
16
|
-
reportSlackChannel,
|
|
17
|
-
reportFile: jsonResultsPath,
|
|
18
|
-
jobUrl,
|
|
19
|
-
workflowName,
|
|
20
|
-
}: ReportTestResultsOptions) => {
|
|
21
|
-
const results: JsonTestResults = JSON.parse((await fs.readFile(jsonResultsPath)).toString());
|
|
22
|
-
const passed: JsonAssertionResult[] = [];
|
|
23
|
-
const failed: JsonAssertionResult[] = [];
|
|
24
|
-
|
|
25
|
-
for (const result of results.testResults) {
|
|
26
|
-
if (result.status !== 'failed') {
|
|
27
|
-
passed.push(...result.assertionResults);
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
for (const aResult of result.assertionResults) {
|
|
31
|
-
if (aResult.status !== 'failed') {
|
|
32
|
-
passed.push(aResult);
|
|
33
|
-
} else {
|
|
34
|
-
failed.push(aResult);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const failedAssertions: { message: string; runLink: string; actorId: string }[] = [];
|
|
40
|
-
|
|
41
|
-
logger.info();
|
|
42
|
-
logger.info(`PASSED: ${passed.length}, FAILED: ${failed.length}`);
|
|
43
|
-
logger.info();
|
|
44
|
-
logger.info('**************************************************');
|
|
45
|
-
logger.info('* Successes *');
|
|
46
|
-
logger.info('**************************************************');
|
|
47
|
-
logger.info();
|
|
48
|
-
for (const [i, aResult] of passed.entries()) {
|
|
49
|
-
const { fullName } = aResult;
|
|
50
|
-
logger.info(`${i + 1}) ${fullName} ... ${aResult.meta.runLink}`);
|
|
51
|
-
logger.info();
|
|
52
|
-
}
|
|
5
|
+
export type TestStatus = 'passed' | 'failed' | 'skipped';
|
|
53
6
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (failureMessages) {
|
|
61
|
-
failedAssertions.push(
|
|
62
|
-
...failureMessages.map((message) => ({
|
|
63
|
-
message: message.split('\n')?.[0],
|
|
64
|
-
runLink: meta.runLink,
|
|
65
|
-
actorId: meta.actorId,
|
|
66
|
-
})),
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
logger.info(`${i + 1}) ${fullName} ... ${meta.runLink}`);
|
|
70
|
-
logger.info();
|
|
71
|
-
}
|
|
72
|
-
logger.info();
|
|
73
|
-
logger.info(`PASSED: ${passed.length}, FAILED: ${failed.length}`);
|
|
74
|
-
logger.info();
|
|
75
|
-
|
|
76
|
-
if (!reportSlackChannel) {
|
|
77
|
-
logger.info(
|
|
78
|
-
`Skipping slack notification. If you want to enable it, add --report-slack-channel flag and make sure SLACK_TOKEN_TESTS_BOT env variable is set.`,
|
|
79
|
-
);
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// Checked before knowing if there's anything to send, so a broken token shows up on a green run
|
|
83
|
-
// (and in dry runs) rather than on the day tests fail
|
|
84
|
-
const slack = await getSlackClient('SLACK_TOKEN_TESTS_BOT', dryRun);
|
|
85
|
-
|
|
86
|
-
if (failedAssertions.length === 0) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
7
|
+
/** The Actor run a test started, as the lib records it on the test's `meta`. */
|
|
8
|
+
export interface TestRun {
|
|
9
|
+
actorId: string;
|
|
10
|
+
runId: string;
|
|
11
|
+
runLink: string;
|
|
12
|
+
}
|
|
89
13
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (!dryRun) {
|
|
104
|
-
await sendSlackMessage(slack, reportSlackChannel, slackMessage, blocks);
|
|
105
|
-
}
|
|
106
|
-
};
|
|
14
|
+
export interface TestCaseReport {
|
|
15
|
+
/** The full test name, including its `describe` blocks, e.g. `owner/name: finishes` */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Relative to the directory the tests ran in */
|
|
18
|
+
file: string;
|
|
19
|
+
status: TestStatus;
|
|
20
|
+
durationMs: number | null;
|
|
21
|
+
/** The first line of each failure, the rest (diffs, stack traces) is in the vitest output */
|
|
22
|
+
failureMessages: string[];
|
|
23
|
+
/** Null for tests that didn't start a run: skipped ones, standby tests, or ones that failed before the run */
|
|
24
|
+
run: TestRun | null;
|
|
25
|
+
}
|
|
107
26
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
27
|
+
/**
|
|
28
|
+
* What `test` writes to stdout and `notify` reads. A contract between the CLI and whoever reads it, so add fields
|
|
29
|
+
* freely, but renaming or removing one needs a new `version`.
|
|
30
|
+
*/
|
|
31
|
+
export interface TestReport {
|
|
32
|
+
/** What the document is, so `notify` and others can tell it from other outputs */
|
|
33
|
+
kind: 'test-report';
|
|
34
|
+
version: 1;
|
|
35
|
+
/** False if any test failed, or the run failed in a way no test accounts for (see `errors`) */
|
|
36
|
+
success: boolean;
|
|
37
|
+
summary: { total: number; passed: number; failed: number; skipped: number };
|
|
38
|
+
tests: TestCaseReport[];
|
|
39
|
+
/** Failures outside any test, e.g. a test file that failed to import, or vitest crashing without a report */
|
|
40
|
+
errors: string[];
|
|
113
41
|
}
|
|
114
42
|
|
|
115
|
-
|
|
116
|
-
|
|
43
|
+
// Vitest's JSON reporter output, only the parts we read
|
|
44
|
+
type VitestStatus = 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled';
|
|
45
|
+
|
|
46
|
+
interface VitestAssertionResult {
|
|
117
47
|
fullName: string;
|
|
118
|
-
status:
|
|
119
|
-
|
|
120
|
-
meta: {
|
|
121
|
-
runId: string;
|
|
122
|
-
runLink: string;
|
|
123
|
-
actorId: string;
|
|
124
|
-
};
|
|
125
|
-
duration?: Milliseconds | null;
|
|
48
|
+
status: VitestStatus;
|
|
49
|
+
duration?: number | null;
|
|
126
50
|
failureMessages: string[] | null;
|
|
127
|
-
|
|
51
|
+
meta?: Partial<TestRun>;
|
|
128
52
|
}
|
|
129
53
|
|
|
130
|
-
interface
|
|
131
|
-
message: string;
|
|
54
|
+
interface VitestFileResult {
|
|
132
55
|
name: string;
|
|
133
56
|
status: 'failed' | 'passed';
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
assertionResults: JsonAssertionResult[];
|
|
137
|
-
// summary: string
|
|
138
|
-
// coverage: unknown
|
|
57
|
+
message: string;
|
|
58
|
+
assertionResults: VitestAssertionResult[];
|
|
139
59
|
}
|
|
140
60
|
|
|
141
|
-
interface
|
|
142
|
-
numFailedTests: number;
|
|
143
|
-
numFailedTestSuites: number;
|
|
144
|
-
numPassedTests: number;
|
|
145
|
-
numPassedTestSuites: number;
|
|
146
|
-
numPendingTests: number;
|
|
147
|
-
numPendingTestSuites: number;
|
|
148
|
-
numTodoTests: number;
|
|
149
|
-
numTotalTests: number;
|
|
150
|
-
numTotalTestSuites: number;
|
|
151
|
-
startTime: number;
|
|
61
|
+
export interface VitestJsonReport {
|
|
152
62
|
success: boolean;
|
|
153
|
-
testResults:
|
|
154
|
-
// snapshot: SnapshotSummary
|
|
155
|
-
// coverageMap?: CoverageMap | null | undefined
|
|
156
|
-
// numRuntimeErrorTestSuites: number
|
|
157
|
-
// wasInterrupted: boolean
|
|
63
|
+
testResults: VitestFileResult[];
|
|
158
64
|
}
|
|
65
|
+
|
|
66
|
+
const firstLine = (text: string) => text.split('\n')[0];
|
|
67
|
+
|
|
68
|
+
const toRun = (meta: Partial<TestRun> | undefined): TestRun | null => {
|
|
69
|
+
const { actorId, runId, runLink } = meta ?? {};
|
|
70
|
+
return actorId && runId && runLink ? { actorId, runId, runLink } : null;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Turns vitest's JSON report into a `TestReport`. `exitCode` is vitest's: a non-zero exit with every test passing
|
|
75
|
+
* still fails the report (e.g. an unhandled error between tests), so the report never reads greener than the run.
|
|
76
|
+
*/
|
|
77
|
+
export const toTestReport = (
|
|
78
|
+
vitest: VitestJsonReport,
|
|
79
|
+
{ cwd, exitCode }: { cwd: string; exitCode: number },
|
|
80
|
+
): TestReport => {
|
|
81
|
+
const tests: TestCaseReport[] = [];
|
|
82
|
+
const errors: string[] = [];
|
|
83
|
+
|
|
84
|
+
for (const file of vitest.testResults) {
|
|
85
|
+
const relativeFile = path.relative(cwd, file.name);
|
|
86
|
+
// A file that fails to load (an import error, a syntax error) has no tests to blame, only its message
|
|
87
|
+
if (file.status === 'failed' && file.message) {
|
|
88
|
+
errors.push(`${relativeFile}: ${firstLine(file.message)}`);
|
|
89
|
+
}
|
|
90
|
+
for (const assertion of file.assertionResults) {
|
|
91
|
+
const status: TestStatus =
|
|
92
|
+
assertion.status === 'passed' || assertion.status === 'failed' ? assertion.status : 'skipped';
|
|
93
|
+
tests.push({
|
|
94
|
+
name: assertion.fullName,
|
|
95
|
+
file: relativeFile,
|
|
96
|
+
status,
|
|
97
|
+
durationMs: assertion.duration != null ? Math.round(assertion.duration) : null,
|
|
98
|
+
failureMessages: (assertion.failureMessages ?? []).map(firstLine),
|
|
99
|
+
run: toRun(assertion.meta),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const count = (status: TestStatus) => tests.filter((test) => test.status === status).length;
|
|
105
|
+
const summary = {
|
|
106
|
+
total: tests.length,
|
|
107
|
+
passed: count('passed'),
|
|
108
|
+
failed: count('failed'),
|
|
109
|
+
skipped: count('skipped'),
|
|
110
|
+
};
|
|
111
|
+
if (exitCode !== 0 && summary.failed === 0 && errors.length === 0) {
|
|
112
|
+
errors.push(`Vitest exited with code ${exitCode}, see its output above`);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return {
|
|
116
|
+
kind: 'test-report',
|
|
117
|
+
version: 1,
|
|
118
|
+
success: vitest.success && exitCode === 0 && summary.failed === 0 && errors.length === 0,
|
|
119
|
+
summary,
|
|
120
|
+
tests,
|
|
121
|
+
errors,
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/** The report of a run that left no vitest report behind, e.g. because vitest crashed or was killed. */
|
|
126
|
+
export const failedRunReport = (error: string): TestReport => ({
|
|
127
|
+
kind: 'test-report',
|
|
128
|
+
version: 1,
|
|
129
|
+
success: false,
|
|
130
|
+
summary: { total: 0, passed: 0, failed: 0, skipped: 0 },
|
|
131
|
+
tests: [],
|
|
132
|
+
errors: [error],
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
/** Logs the tests with their run links, which vitest's own output doesn't show. */
|
|
136
|
+
export const logTestReport = ({ summary, tests, errors }: TestReport) => {
|
|
137
|
+
const runLink = ({ run }: TestCaseReport) => (run ? ` ... ${run.runLink}` : '');
|
|
138
|
+
const totals = `PASSED: ${summary.passed}, FAILED: ${summary.failed}, SKIPPED: ${summary.skipped}`;
|
|
139
|
+
|
|
140
|
+
logger.info();
|
|
141
|
+
logger.info(totals);
|
|
142
|
+
for (const status of ['passed', 'failed'] as const) {
|
|
143
|
+
const matching = tests.filter((test) => test.status === status);
|
|
144
|
+
if (matching.length === 0) continue;
|
|
145
|
+
logger.info();
|
|
146
|
+
logger.info(status === 'passed' ? 'Passed:' : 'Failed:');
|
|
147
|
+
for (const [i, test] of matching.entries()) {
|
|
148
|
+
logger.info(`${i + 1}) ${test.name}${runLink(test)}`);
|
|
149
|
+
for (const message of test.failureMessages) logger.info(` ${message}`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
if (errors.length > 0) {
|
|
153
|
+
logger.info();
|
|
154
|
+
logger.info('Errors outside of tests:');
|
|
155
|
+
for (const error of errors) logger.info(`- ${error}`);
|
|
156
|
+
}
|
|
157
|
+
logger.info();
|
|
158
|
+
logger.info(totals);
|
|
159
|
+
};
|
package/bin/types.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
import type { ActorJsonPaths } from './utils/config/actor-json.js';
|
|
2
2
|
import type { ExistingDir, RelativeDir } from './utils/path/repo-relative.js';
|
|
3
3
|
|
|
4
|
-
export interface Config {
|
|
5
|
-
targetBranch: string;
|
|
6
|
-
sourceBranch: string;
|
|
7
|
-
baseCommit?: string;
|
|
8
|
-
actors: string[];
|
|
9
|
-
ignore: string[];
|
|
10
|
-
testFilesGlob?: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
4
|
/** The changes from `fromRef` (excluded) to `toRef`, compared as trees like `git diff fromRef toRef`. */
|
|
14
5
|
export interface GitRange {
|
|
15
6
|
fromRef: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ApifyClient } from 'apify-client';
|
|
2
|
+
import type { TestTarget } from './stdin-input.js';
|
|
3
|
+
type ActorGetter = Pick<ApifyClient, 'actor'>;
|
|
4
|
+
/** A test target with both IDs of its Actor */
|
|
5
|
+
export type ResolvedTestTarget = TestTarget & {
|
|
6
|
+
actorFullName: string;
|
|
7
|
+
actorRawId: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Adds the ID each target is missing: the raw ID to those listed by full name, e.g. by `get-actor-configs`, and the
|
|
11
|
+
* full name to those listed by raw ID. The lib matches a test to its Actor by the ID the test names, so a target
|
|
12
|
+
* without either ID would skip the tests that name its Actor by the other one.
|
|
13
|
+
*/
|
|
14
|
+
export declare const withActorIds: (targets: TestTarget[], client?: ActorGetter) => Promise<ResolvedTestTarget[]>;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=actor-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-ids.d.ts","sourceRoot":"","sources":["../../bin/actor-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,KAAK,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAE9C,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5F;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACrB,SAAS,UAAU,EAAE,EACrB,SAAQ,WAAwE,KACjF,OAAO,CAAC,kBAAkB,EAAE,CAoB1B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ApifyClient } from 'apify-client';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the ID each target is missing: the raw ID to those listed by full name, e.g. by `get-actor-configs`, and the
|
|
4
|
+
* full name to those listed by raw ID. The lib matches a test to its Actor by the ID the test names, so a target
|
|
5
|
+
* without either ID would skip the tests that name its Actor by the other one.
|
|
6
|
+
*/
|
|
7
|
+
export const withActorIds = async (targets, client = new ApifyClient({ token: process.env.TESTER_APIFY_TOKEN })) => Promise.all(targets.map(async (target) => {
|
|
8
|
+
const { actorFullName, actorRawId } = target;
|
|
9
|
+
if (actorFullName && actorRawId)
|
|
10
|
+
return { ...target, actorFullName, actorRawId };
|
|
11
|
+
// The parser lets no target through without either ID
|
|
12
|
+
const actorId = (actorFullName ?? actorRawId);
|
|
13
|
+
const actor = await client.actor(actorId).get();
|
|
14
|
+
if (!actor) {
|
|
15
|
+
throw new Error(`Actor ${actorId} not found, or TESTER_APIFY_TOKEN can't access it. ` +
|
|
16
|
+
'Both its full name and its raw ID are needed to run the tests that name it by either.');
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
...target,
|
|
20
|
+
actorFullName: actorFullName ?? `${actor.username}/${actor.name}`,
|
|
21
|
+
actorRawId: actorRawId ?? actor.id,
|
|
22
|
+
};
|
|
23
|
+
}));
|
|
24
|
+
//# sourceMappingURL=actor-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actor-ids.js","sourceRoot":"","sources":["../../bin/actor-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAS3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC7B,OAAqB,EACrB,SAAsB,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,EACnD,EAAE,CAC/B,OAAO,CAAC,GAAG,CACP,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IACzB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC7C,IAAI,aAAa,IAAI,UAAU;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;IACjF,sDAAsD;IACtD,MAAM,OAAO,GAAG,CAAC,aAAa,IAAI,UAAU,CAAE,CAAC;IAC/C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACX,SAAS,OAAO,qDAAqD;YACjE,uFAAuF,CAC9F,CAAC;IACN,CAAC;IACD,OAAO;QACH,GAAG,MAAM;QACT,aAAa,EAAE,aAAa,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QACjE,UAAU,EAAE,UAAU,IAAI,KAAK,CAAC,EAAE;KACrC,CAAC;AACN,CAAC,CAAC,CACL,CAAC"}
|
package/dist/bin/build.js
CHANGED
|
@@ -181,7 +181,7 @@ export class ApifyBuilder {
|
|
|
181
181
|
const DEFAULT_DAYS_BACK_PROD_VERSIONS = 30;
|
|
182
182
|
const DEFAULT_DAYS_BACK_DEVEL = 7;
|
|
183
183
|
const actorInfo = await this.getActorInfo();
|
|
184
|
-
// 'devel'
|
|
184
|
+
// A build tagged 'devel' is kept for DEFAULT_DAYS_BACK_DEVEL only. Remove this once no Actor has the tag
|
|
185
185
|
const taggedDevelBuildNumber = actorInfo.taggedBuilds.devel?.buildNumber;
|
|
186
186
|
const allTags = Object.keys(actorInfo.taggedBuilds ?? {});
|
|
187
187
|
const protectedTags = allTags.filter((tag) => PROTECTED_TAGS_PREFIX.some((prefix) => tag.startsWith(prefix)));
|
package/dist/bin/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../bin/build.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/git.d.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import type { Commit
|
|
1
|
+
import type { Commit } from './types.js';
|
|
2
2
|
export declare const GIT_FORMAT_SEPARATOR = "\u00BB\u00A6\u00AB";
|
|
3
|
-
/**
|
|
4
|
-
* Gets the list of changed files between the given commits (inclusive), so it diffs from the parent of the oldest.
|
|
5
|
-
*/
|
|
6
|
-
export declare const getChangedFiles: (commits: Commit[]) => Promise<string[]>;
|
|
7
3
|
/**
|
|
8
4
|
* Files that differ between two commits, i.e. changed by the commits in the range (fromRef, toRef]. fromRef's own
|
|
9
5
|
* changes are not included: to include them, pass its parent, `${sha}~` (as getChangedFiles does).
|
|
@@ -19,22 +15,11 @@ export declare const getChangedFilesBetween: (fromRef: string, toRef: string) =>
|
|
|
19
15
|
export declare const getMergeBase: (base: string, head: string) => Promise<string>;
|
|
20
16
|
/** Resolves a ref to a commit, or undefined when it isn't in the local history (e.g. it was force-pushed away). */
|
|
21
17
|
export declare const findCommitSha: (ref: string) => Promise<string | undefined>;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param shaOrCommit Supports both a SHA string or a Commit object in JSON format. Can be empty.
|
|
25
|
-
* @returns The SHA string if valid, otherwise throws an error.
|
|
26
|
-
*/
|
|
27
|
-
export declare const parseBaseCommit: (shaOrCommit: string | undefined) => string | undefined;
|
|
28
18
|
/**
|
|
29
19
|
* Commits reachable from toRef but not from fromRef, oldest first: the range (fromRef, toRef], so fromRef itself is
|
|
30
20
|
* not included. To include it, pass its parent, `${sha}~`.
|
|
31
21
|
*/
|
|
32
22
|
export declare const getCommitsBetween: (fromRef: string, toRef: string) => Promise<Commit[]>;
|
|
33
|
-
/**
|
|
34
|
-
* Gets the commits between sourceBranch and targetBranch (exclusive).
|
|
35
|
-
* - If baseCommit is provided, only returns commits after the baseCommit.
|
|
36
|
-
*/
|
|
37
|
-
export declare const getCommits: ({ sourceBranch, targetBranch, baseCommit, }: Pick<Config, "sourceBranch" | "targetBranch" | "baseCommit">) => Promise<Commit[]>;
|
|
38
23
|
export declare const parseCommit: (commitString: string) => Commit;
|
|
39
24
|
/**
|
|
40
25
|
* Returns the currently checked-out branch. Builds point the Actor version at this branch,
|
|
@@ -59,6 +44,11 @@ export declare const resolveRepoUrl: (explicitRepoUrl: string | undefined) => Pr
|
|
|
59
44
|
* - ssh://git@github.com/org/repo#master:actors/foo (Actor versions carry a `#branch:folder` fragment)
|
|
60
45
|
*/
|
|
61
46
|
export declare const normalizeRepoUrl: (repoUrl: string) => string;
|
|
47
|
+
/**
|
|
48
|
+
* Web link to a commit, e.g. https://github.com/apify-store/google-maps/commit/<sha>. Null for hosts other than
|
|
49
|
+
* GitHub, whose commit pages live under other paths.
|
|
50
|
+
*/
|
|
51
|
+
export declare const getCommitUrl: (repoUrl: string, sha: string) => string | null;
|
|
62
52
|
/** Repository name from its URL, e.g. `google-maps` for git@github.com:apify-store/google-maps.git */
|
|
63
53
|
export declare const getRepoName: (repoUrl: string) => string;
|
|
64
54
|
/**
|
package/dist/bin/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../bin/git.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,eAAO,MAAM,oBAAoB,uBAAQ,CAAC;AAO1C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,sBAQ1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,MAAM,MAAM,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CACwB,CAAC;AAEvG,mHAAmH;AACnH,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAOtE,CAAC;AAEP;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,EAAE,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAQxF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,MAYlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,MAAM,CAUvD,CAAC;AAEF,yGAAyG;AACzG,eAAO,MAAM,gBAAgB,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CACyC,CAAC;AAa7G;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAU,iBAAiB,MAAM,GAAG,SAAS;;;EAGtE,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,MAUlD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,GAAG,IAGpE,CAAC;AAEF,sGAAsG;AACtG,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,KAAG,MAE7C,CAAC;AAOF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,YAAY,MAAM,EAAE,aAAa,KAAG,OAAO,CAAC,MAAM,CAmChG,CAAC;AAIF,+GAA+G;AAC/G,eAAO,MAAM,qBAAqB,GAC9B,SAAS,MAAM,EACf,OAAO,MAAM,EACb,cAAc,MAAM,EAAE,KACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CA0BvB,CAAC"}
|