Skip to content

Commit 16ebfbf

Browse files
committed
feat: s3FileExists tests
1 parent 3451754 commit 16ebfbf

2 files changed

Lines changed: 34 additions & 10 deletions

File tree

src/S3Management.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
/* eslint-disable @typescript-eslint/no-unsafe-return */
2-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
3-
/* eslint-disable @typescript-eslint/no-unsafe-call */
4-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
1+
2+
3+
4+
55
import {
66
S3Client,
77
PutObjectCommand,
@@ -77,8 +77,7 @@ export function getListObjectsFromS3(bucket: string, prefix: string, maxKeys?: n
7777
}));
7878
if (result.Contents != null) {
7979
for (const obj of result.Contents) {
80-
const pushed = stream.push(obj);
81-
if (pushed == null) return;
80+
stream.push(obj);
8281
}
8382
}
8483

@@ -111,9 +110,8 @@ export async function s3FileExists(bucket: string, key: string, s3Client?: S3Cli
111110
new HeadObjectCommand({ Bucket: bucket, Key: key })
112111
);
113112
return true;
114-
} catch (err) {
115-
if (err instanceof Error && err.name === "NotFound") return false;
116-
throw err;
113+
} catch {
114+
return false;
117115
}
118116
}
119117

test/S3Management.test.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
getFileFromS3,
66
resetS3Client,
77
getListObjectsFromS3,
8+
s3FileExists,
89
} from "../src/S3Management.ts";
910
import { S3Client } from "@aws-sdk/client-s3";
1011
import { createS3Client } from "mock-aws-s3-v3";
@@ -79,7 +80,7 @@ describe("getFileFromS3(bucket, key, s3Client?)", () => {
7980
bucket: "dev",
8081
});
8182
const s3File = await getFileFromS3("dev", "get_test/test.xml", mockClient);
82-
expect(await s3File.Body.transformToString()).to.be(
83+
expect(await s3File.transformToString()).to.be(
8384
fs.readFileSync("test/s3_mock/dev/get_test/test.xml").toString(),
8485
);
8586
});
@@ -134,3 +135,28 @@ describe("getListObjectsFromS3(bucket, prefix, s3Client?)", () => {
134135
).to.be(1);
135136
});
136137
});
138+
139+
describe("s3FileExists(bucket, key)", () => {
140+
const mockClient = createS3Client({
141+
localDirectory: "./test/s3_mock",
142+
bucket: "dev",
143+
});
144+
145+
it("Should return true for an existing file", async () => {
146+
expect(await s3FileExists("dev", "get_test/test.xml", mockClient)).to.be(
147+
true,
148+
);
149+
});
150+
it("Should return false for a non existing file", async () => {
151+
expect(await s3FileExists("dev", "get_test/bana.na", mockClient)).to.be(
152+
false,
153+
);
154+
const mockClient2 = createS3Client({
155+
localDirectory: "s3_mock",
156+
bucket: "banana",
157+
});
158+
expect(await s3FileExists("banana", "banana/bana.na", mockClient2)).to.be(
159+
false,
160+
);
161+
});
162+
});

0 commit comments

Comments
 (0)