Skip to content

Commit 218c3c2

Browse files
ensure that we only process pdf files
1 parent 0cabe18 commit 218c3c2

File tree

2 files changed

+46
-16
lines changed

2 files changed

+46
-16
lines changed

visual-js/visual-snapshots/test/app/pdf-handler.spec.ts

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,27 @@ describe("pdf-handler", () => {
3838
const snapshotName = "snapshotName";
3939
const buildId = "buildId";
4040

41-
const fileExtractor = new MockFileExtractor();
41+
const mockFileExtractor = new MockFileExtractor();
4242

4343
const { logger, logged, reset: resetLogger } = mockLogger();
4444

4545
beforeEach(() => {
4646
jest.resetAllMocks();
4747
resetLogger();
48+
mockFileExtractor.reset();
4849
});
4950

5051
describe("creating build", () => {
5152
it("should create a build when buildId is not passed", async () => {
52-
fileExtractor.setFilesToReturn([
53+
mockFileExtractor.setFilesToReturn([
5354
"/absolute/path/to/files/1.pdf",
5455
"/absolute/path/to/files/2.pdf",
5556
]);
5657

5758
const handler = new PdfCommandHandler(
5859
visualSnapshotsApi,
5960
pdfSnapshotUploaderMock,
60-
fileExtractor,
61+
mockFileExtractor,
6162
logger
6263
);
6364

@@ -74,6 +75,12 @@ describe("pdf-handler", () => {
7475
);
7576

7677
expect(createBuildMock).toHaveBeenCalledWith(params);
78+
expect(mockFileExtractor.calls()).toEqual([
79+
{
80+
globOrDirs: [path.join(__dirname(import.meta), "../files/")],
81+
dirGlob: "*.pdf",
82+
},
83+
]);
7784
expect(logged).toEqual([
7885
{
7986
level: 30,
@@ -83,12 +90,12 @@ describe("pdf-handler", () => {
8390
});
8491

8592
it("should not create a build when buildId is passed", async () => {
86-
fileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
93+
mockFileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
8794

8895
const handler = new PdfCommandHandler(
8996
visualSnapshotsApi,
9097
pdfSnapshotUploaderMock,
91-
fileExtractor,
98+
mockFileExtractor,
9299
logger
93100
);
94101

@@ -106,6 +113,12 @@ describe("pdf-handler", () => {
106113
);
107114

108115
expect(createBuildMock).not.toHaveBeenCalled();
116+
expect(mockFileExtractor.calls()).toEqual([
117+
{
118+
globOrDirs: [path.join(__dirname(import.meta), "../files/1.pdf")],
119+
dirGlob: "*.pdf",
120+
},
121+
]);
109122
expect(logged).toEqual([
110123
{
111124
level: 30,
@@ -115,12 +128,12 @@ describe("pdf-handler", () => {
115128
});
116129

117130
it("should not create a build when there are no files to process", async () => {
118-
fileExtractor.setFilesToReturn([]);
131+
mockFileExtractor.setFilesToReturn([]);
119132

120133
const handler = new PdfCommandHandler(
121134
visualSnapshotsApi,
122135
pdfSnapshotUploaderMock,
123-
fileExtractor,
136+
mockFileExtractor,
124137
logger
125138
);
126139

@@ -138,6 +151,12 @@ describe("pdf-handler", () => {
138151
);
139152

140153
expect(createBuildMock).not.toHaveBeenCalled();
154+
expect(mockFileExtractor.calls()).toEqual([
155+
{
156+
globOrDirs: [path.join(__dirname(import.meta), "../files/1.pdf")],
157+
dirGlob: "*.pdf",
158+
},
159+
]);
141160
expect(logged).toEqual([
142161
{ level: 40, msg: "No PDF files found to process." },
143162
]);
@@ -146,12 +165,12 @@ describe("pdf-handler", () => {
146165

147166
describe("uploading snapshots", () => {
148167
it("should call uploadSnapshots with created build ID", async () => {
149-
fileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
168+
mockFileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
150169

151170
const handler = new PdfCommandHandler(
152171
visualSnapshotsApi,
153172
pdfSnapshotUploaderMock,
154-
fileExtractor,
173+
mockFileExtractor,
155174
logger
156175
);
157176

@@ -180,12 +199,12 @@ describe("pdf-handler", () => {
180199
});
181200

182201
it("should call uploadSnapshots with provided build ID", async () => {
183-
fileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
202+
mockFileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
184203

185204
const handler = new PdfCommandHandler(
186205
visualSnapshotsApi,
187206
pdfSnapshotUploaderMock,
188-
fileExtractor,
207+
mockFileExtractor,
189208
logger
190209
);
191210

@@ -217,12 +236,12 @@ describe("pdf-handler", () => {
217236
it("should finish build when buildId is not passed, using created build ID", async () => {
218237
createBuildMock.mockResolvedValue(buildId);
219238

220-
fileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
239+
mockFileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
221240

222241
const handler = new PdfCommandHandler(
223242
visualSnapshotsApi,
224243
pdfSnapshotUploaderMock,
225-
fileExtractor,
244+
mockFileExtractor,
226245
logger
227246
);
228247

@@ -242,12 +261,12 @@ describe("pdf-handler", () => {
242261
});
243262

244263
it("should not finish build when buildId is passed", async () => {
245-
fileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
264+
mockFileExtractor.setFilesToReturn(["/absolute/path/to/files/1.pdf"]);
246265

247266
const handler = new PdfCommandHandler(
248267
visualSnapshotsApi,
249268
pdfSnapshotUploaderMock,
250-
fileExtractor,
269+
mockFileExtractor,
251270
logger
252271
);
253272

visual-js/visual-snapshots/test/mock-file-extractor.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,23 @@ import { FileExtractor } from "../src/utils/glob.js";
22

33
export class MockFileExtractor implements FileExtractor {
44
private files: string[] = [];
5+
private calledWith: { globOrDirs: string[]; dirGlob: string }[] = [];
56

67
public setFilesToReturn(files: string[]) {
78
this.files = files;
89
}
910

10-
public async getFiles(_globOrDirs: string[], _dirGlob: string) {
11+
public async getFiles(globOrDirs: string[], dirGlob: string) {
12+
this.calledWith.push({ globOrDirs, dirGlob });
1113
return this.files;
1214
}
15+
16+
public reset() {
17+
this.files = [];
18+
this.calledWith = [];
19+
}
20+
21+
public calls() {
22+
return this.calledWith;
23+
}
1324
}

0 commit comments

Comments
 (0)