8
8
ListObjectsV2Command ,
9
9
PutObjectCommand ,
10
10
S3Client ,
11
+ NoSuchKey ,
11
12
} from "@aws-sdk/client-s3" ;
12
13
import { SdkStream } from "@aws-sdk/types" ;
13
14
import { sdkStreamMixin } from "@aws-sdk/util-stream-node" ;
@@ -93,7 +94,7 @@ test("get a non-existent object from the bucket", async () => {
93
94
const VALUE = "VALUE" ;
94
95
s3Mock
95
96
. on ( GetObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
96
- . rejects ( new Error ( "fake error " ) ) ;
97
+ . rejects ( new Error ( "Object does not exist " ) ) ;
97
98
98
99
// WHEN
99
100
const client = new BucketClient ( BUCKET_NAME ) ;
@@ -372,7 +373,7 @@ test("tryGet a non-existent object from the bucket", async () => {
372
373
const VALUE = "VALUE" ;
373
374
s3Mock
374
375
. on ( GetObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
375
- . rejects ( new Error ( "fake error") ) ;
376
+ . rejects ( new NoSuchKey ( { message : "NoSuchKey error", $metadata : { } } ) ) ;
376
377
s3Mock
377
378
. on ( HeadObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
378
379
. rejects ( { name : "NotFound" } ) ;
@@ -385,6 +386,23 @@ test("tryGet a non-existent object from the bucket", async () => {
385
386
expect ( objectTryGet ) . toEqual ( undefined ) ;
386
387
} ) ;
387
388
389
+ test ( "tryGet object from the bucket throws an unknown error" , async ( ) => {
390
+ // GIVEN
391
+ const BUCKET_NAME = "BUCKET_NAME" ;
392
+ const KEY = "KEY" ;
393
+ const VALUE = "VALUE" ;
394
+ s3Mock
395
+ . on ( GetObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
396
+ . rejects ( new Error ( "unknown error" ) ) ;
397
+ s3Mock . on ( HeadObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } ) . resolves ( { } ) ;
398
+
399
+ // WHEN
400
+ const client = new BucketClient ( BUCKET_NAME ) ;
401
+
402
+ // THEN
403
+ await expect ( ( ) => client . tryGet ( KEY ) ) . rejects . toThrowError ( / u n k n o w n e r r o r / ) ;
404
+ } ) ;
405
+
388
406
test ( "tryGetJson an existing object from the bucket" , async ( ) => {
389
407
// GIVEN
390
408
const BUCKET_NAME = "BUCKET_NAME" ;
@@ -418,7 +436,7 @@ test("tryGetJson a non-existent object from the bucket", async () => {
418
436
const VALUE = { msg : "Hello, World!" } ;
419
437
s3Mock
420
438
. on ( GetObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
421
- . rejects ( new Error ( "fake error") ) ;
439
+ . rejects ( new NoSuchKey ( { message : "NoSuchKey error", $metadata : { } } ) ) ;
422
440
s3Mock
423
441
. on ( HeadObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
424
442
. rejects ( { name : "NotFound" } ) ;
@@ -431,6 +449,23 @@ test("tryGetJson a non-existent object from the bucket", async () => {
431
449
expect ( objectTryGetJson ) . toEqual ( undefined ) ;
432
450
} ) ;
433
451
452
+ test ( "tryGetJson object from the bucket throws an unknown error" , async ( ) => {
453
+ // GIVEN
454
+ const BUCKET_NAME = "BUCKET_NAME" ;
455
+ const KEY = "KEY" ;
456
+ const VALUE = { msg : "Hello, World!" } ;
457
+ s3Mock
458
+ . on ( GetObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } )
459
+ . rejects ( new Error ( "unknown error" ) ) ;
460
+ s3Mock . on ( HeadObjectCommand , { Bucket : BUCKET_NAME , Key : KEY } ) . resolves ( { } ) ;
461
+
462
+ // WHEN
463
+ const client = new BucketClient ( BUCKET_NAME ) ;
464
+
465
+ // THEN
466
+ await expect ( ( ) => client . tryGet ( KEY ) ) . rejects . toThrowError ( / u n k n o w n e r r o r / ) ;
467
+ } ) ;
468
+
434
469
test ( "tryGetJson an existing non-Json object from the bucket" , async ( ) => {
435
470
// GIVEN
436
471
const BUCKET_NAME = "BUCKET_NAME" ;
0 commit comments