Skip to content

Commit 021a385

Browse files
always finishe created builds
1 parent 65cddbb commit 021a385

File tree

2 files changed

+39
-12
lines changed

2 files changed

+39
-12
lines changed

Diff for: visual-js/visual-snapshots/src/app/pdf-handler.ts

+23-8
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,43 @@ export interface PdfCommandParams
1212
concurrency: number;
1313
}
1414

15+
export enum PdfCommandStatus {
16+
SUCCESS,
17+
FAILURE,
18+
}
19+
1520
export class PdfCommandHandler {
1621
constructor(
1722
private readonly visualSnapshotsApi: VisualSnapshotsApi,
1823
private readonly pdfSnapshotUploader: PdfSnapshotUploader
1924
) {}
2025

21-
public async handle(globsOrDirs: string[], params: PdfCommandParams) {
26+
public async handle(
27+
globsOrDirs: string[],
28+
params: PdfCommandParams
29+
): Promise<PdfCommandStatus> {
2230
const pdfFilePaths = await getFiles(globsOrDirs, "*.pdf");
2331

2432
const buildId =
2533
params.buildId ?? (await this.visualSnapshotsApi.createBuild(params));
2634

27-
await this.pdfSnapshotUploader.uploadSnapshots({
28-
buildId,
29-
pdfFilePaths,
30-
suiteName: params.suiteName,
31-
testNameFormat: params.testName,
32-
snapshotNameFormat: params.snapshotName,
33-
});
35+
let status: PdfCommandStatus;
36+
try {
37+
await this.pdfSnapshotUploader.uploadSnapshots({
38+
buildId,
39+
pdfFilePaths,
40+
suiteName: params.suiteName,
41+
testNameFormat: params.testName,
42+
snapshotNameFormat: params.snapshotName,
43+
});
44+
status = PdfCommandStatus.SUCCESS;
45+
} catch (_) {
46+
status = PdfCommandStatus.FAILURE;
47+
}
3448

3549
if (!params.buildId) {
3650
await this.visualSnapshotsApi.finishBuild(buildId);
3751
}
52+
return status;
3853
}
3954
}

Diff for: visual-js/visual-snapshots/src/commands/pdf.ts

+16-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ import {
1212
suiteNameOption,
1313
usernameOption,
1414
} from "./options.js";
15-
import { PdfCommandHandler, PdfCommandParams } from "../app/pdf-handler.js";
15+
import {
16+
PdfCommandHandler,
17+
PdfCommandParams,
18+
PdfCommandStatus,
19+
} from "../app/pdf-handler.js";
1620
import { EOL } from "os";
1721
import { VisualSnapshotsApi } from "../api/visual-snapshots-api.js";
1822
import { initializeVisualApi } from "../api/visual-client.js";
@@ -67,11 +71,19 @@ export const pdfCommand = (clientVersion: string) => {
6771

6872
new PdfCommandHandler(visualSnapshotsApi, pdfSnapshotUploader)
6973
.handle(globsOrDirs, params)
70-
.then(() => {
71-
console.log("Successfully created PDF snapshots");
74+
.then((status: PdfCommandStatus) => {
75+
if (status == PdfCommandStatus.SUCCESS) {
76+
console.info("Successfully created PDF snapshots.");
77+
} else {
78+
console.error(
79+
"At least one PDF snapshot creation failed. Please contact Sauce Labs customer support."
80+
);
81+
}
7282
})
7383
.catch((err) => {
74-
console.error(`An error occured when creating PDF snapshots: ${err}`);
84+
console.error(
85+
`An unexpected error occured when creating PDF snapshots: ${err}. Please contact Sauce Labs customer support.`
86+
);
7587
});
7688
});
7789
};

0 commit comments

Comments
 (0)