@@ -11,7 +11,8 @@ const {
1111 HeadObjectCommand,
1212 ListObjectsV2Command,
1313 ListObjectVersionsCommand,
14- PutObjectAclCommand,
14+ // TODO: public folder feature - remove as it's no longer present
15+ // PutObjectAclCommand
1516 PutBucketEncryptionCommand,
1617 PutObjectCommand,
1718 PutObjectTaggingCommand,
@@ -338,7 +339,9 @@ describe('getBucketVersioning', () => {
338339 } ) ;
339340} ) ;
340341
341- describe ( 'getObjectAcl' , ( ) => {
342+ // TODO: public folder feature - remove this test
343+ // (remove .skip() when done!)
344+ describe . skip ( 'getObjectAcl' , ( ) => {
342345 beforeEach ( ( ) => {
343346 s3ClientMock . on ( GetObjectAclCommand ) . resolves ( { } ) ;
344347 } ) ;
@@ -373,64 +376,67 @@ describe('getObjectAcl', () => {
373376 } ) ;
374377} ) ;
375378
376- describe ( 'getObjectPublic' , ( ) => {
377- const getObjectAclMock = jest . spyOn ( service , 'getObjectAcl' ) ;
378-
379- beforeEach ( ( ) => {
380- getObjectAclMock . mockReset ( ) ;
381- } ) ;
382-
383- afterAll ( ( ) => {
384- getObjectAclMock . mockRestore ( ) ;
385- } ) ;
386-
387- it ( 'should return true' , async ( ) => {
388- const filePath = 'filePath' ;
389- getObjectAclMock . mockResolvedValue ( { Grants : [
390- {
391- 'Grantee' : {
392- 'DisplayName' : 'name' ,
393- 'ID' : 'id' ,
394- 'Type' : 'CanonicalUser'
395- } ,
396- 'Permission' : 'FULL_CONTROL'
397- } ,
398- {
399- 'Grantee' : {
400- 'URI' : 'http://acs.amazonaws.com/groups/global/AllUsers' ,
401- 'Type' : 'Group'
402- } ,
403- 'Permission' : 'READ'
404- }
405- ] } ) ;
406-
407- const result = await service . getObjectPublic ( { filePath } ) ;
408-
409- expect ( result ) . toBeTruthy ( ) ;
410- expect ( getObjectAclMock ) . toHaveBeenCalledTimes ( 1 ) ;
411- expect ( getObjectAclMock ) . toHaveBeenCalledWith ( expect . objectContaining ( { filePath } ) ) ;
412- } ) ;
413-
414- it ( 'should return false' , async ( ) => {
415- const filePath = 'filePath' ;
416- getObjectAclMock . mockResolvedValue ( { Grants : [
417- {
418- 'Grantee' : {
419- 'DisplayName' : 'name' ,
420- 'ID' : 'id' ,
421- 'Type' : 'CanonicalUser'
422- } ,
423- 'Permission' : 'FULL_CONTROL'
424- }
425- ] } ) ;
426-
427- const result = await service . getObjectPublic ( { filePath } ) ;
428-
429- expect ( result ) . toBeFalsy ( ) ;
430- expect ( getObjectAclMock ) . toHaveBeenCalledTimes ( 1 ) ;
431- expect ( getObjectAclMock ) . toHaveBeenCalledWith ( expect . objectContaining ( { filePath } ) ) ;
432- } ) ;
433- } ) ;
379+ // TODO: public folder feature - swap out `getObjectPublic()` for `getPublic()`, rewrite tests
380+ // describe('getObjectPublic', () => {
381+ // const getObjectAclMock = jest.spyOn(service, 'getObjectAcl');
382+
383+ // beforeEach(() => {
384+ // getObjectAclMock.mockReset();
385+ // });
386+
387+ // afterAll(() => {
388+ // getObjectAclMock.mockRestore();
389+ // });
390+
391+ // // TODO: public folder feature - update tests
392+ // it('should return true', async () => {
393+ // const filePath = 'filePath';
394+ // getObjectAclMock.mockResolvedValue({ Grants: [
395+ // {
396+ // 'Grantee': {
397+ // 'DisplayName': 'name',
398+ // 'ID': 'id',
399+ // 'Type': 'CanonicalUser'
400+ // },
401+ // 'Permission': 'FULL_CONTROL'
402+ // },
403+ // {
404+ // 'Grantee': {
405+ // 'URI': 'http://acs.amazonaws.com/groups/global/AllUsers',
406+ // 'Type': 'Group'
407+ // },
408+ // 'Permission': 'READ'
409+ // }
410+ // ]});
411+
412+ // const result = await service.getObjectPublic({ filePath });
413+
414+ // expect(result).toBeTruthy();
415+ // expect(getObjectAclMock).toHaveBeenCalledTimes(1);
416+ // expect(getObjectAclMock).toHaveBeenCalledWith(expect.objectContaining({ filePath }));
417+ // });
418+
419+ // // TODO: public folder feature - update tests
420+ // it('should return false', async () => {
421+ // const filePath = 'filePath';
422+ // getObjectAclMock.mockResolvedValue({ Grants: [
423+ // {
424+ // 'Grantee': {
425+ // 'DisplayName': 'name',
426+ // 'ID': 'id',
427+ // 'Type': 'CanonicalUser'
428+ // },
429+ // 'Permission': 'FULL_CONTROL'
430+ // }
431+ // ]});
432+
433+ // const result = await service.getObjectPublic({ filePath });
434+
435+ // expect(result).toBeFalsy();
436+ // expect(getObjectAclMock).toHaveBeenCalledTimes(1);
437+ // expect(getObjectAclMock).toHaveBeenCalledWith(expect.objectContaining({ filePath }));
438+ // });
439+ // });
434440
435441describe ( 'getObjectTagging' , ( ) => {
436442 beforeEach ( ( ) => {
@@ -551,7 +557,8 @@ describe('listAllObjects', () => {
551557 listObjectsV2Mock . mockResolvedValueOnce ( {
552558 Contents : [ { Key : 'filePath/foo' } ] ,
553559 IsTruncated : true ,
554- NextContinuationToken : continueToken } ) ;
560+ NextContinuationToken : continueToken
561+ } ) ;
555562 listObjectsV2Mock . mockResolvedValueOnce ( {
556563 Contents : [ { Key : 'filePath/bar' } ] ,
557564 IsTruncated : false
@@ -583,7 +590,8 @@ describe('listAllObjects', () => {
583590 listObjectsV2Mock . mockResolvedValueOnce ( {
584591 Contents : [ { Key : 'filePath/test/foo' } ] ,
585592 IsTruncated : true ,
586- NextContinuationToken : continueToken } ) ;
593+ NextContinuationToken : continueToken
594+ } ) ;
587595 listObjectsV2Mock . mockResolvedValueOnce ( {
588596 Contents : [ { Key : 'filePath/test/bar' } ] ,
589597 IsTruncated : false
@@ -618,7 +626,8 @@ describe('listAllObjects', () => {
618626 listObjectsV2Mock . mockResolvedValueOnce ( {
619627 Contents : [ { Key : 'filePath/test/foo' } ] ,
620628 IsTruncated : true ,
621- NextContinuationToken : continueToken } ) ;
629+ NextContinuationToken : continueToken
630+ } ) ;
622631 listObjectsV2Mock . mockResolvedValueOnce ( {
623632 Contents : [ { Key : 'filePath/test/bar' } ] ,
624633 IsTruncated : false
@@ -705,7 +714,8 @@ describe('listAllObjectVersions', () => {
705714 listObjectVersionMock . mockResolvedValueOnce ( {
706715 DeleteMarkers : [ { Key : 'filePath/foo' } ] ,
707716 IsTruncated : true ,
708- NextKeyMarker : nextKeyMarker } ) ;
717+ NextKeyMarker : nextKeyMarker
718+ } ) ;
709719 listObjectVersionMock . mockResolvedValueOnce ( {
710720 Versions : [ { Key : 'filePath/bar' } ] ,
711721 IsTruncated : false
@@ -741,7 +751,8 @@ describe('listAllObjectVersions', () => {
741751 listObjectVersionMock . mockResolvedValueOnce ( {
742752 DeleteMarkers : [ { Key : 'filePath/test/foo' } ] ,
743753 IsTruncated : true ,
744- NextKeyMarker : nextKeyMarker } ) ;
754+ NextKeyMarker : nextKeyMarker
755+ } ) ;
745756 listObjectVersionMock . mockResolvedValueOnce ( {
746757 Versions : [ { Key : 'filePath/test/bar' } ] ,
747758 IsTruncated : false
@@ -777,7 +788,8 @@ describe('listAllObjectVersions', () => {
777788 listObjectVersionMock . mockResolvedValueOnce ( {
778789 DeleteMarkers : [ { Key : 'filePath/test/foo' , IsLatest : true } ] ,
779790 IsTruncated : true ,
780- NextKeyMarker : nextKeyMarker } ) ;
791+ NextKeyMarker : nextKeyMarker
792+ } ) ;
781793 listObjectVersionMock . mockResolvedValueOnce ( {
782794 Versions : [ { Key : 'filePath/test/bar' , IsLatest : false } ] ,
783795 IsTruncated : false
@@ -986,84 +998,86 @@ describe('putObject', () => {
986998 } ) ;
987999} ) ;
9881000
989- describe ( 'putObjectAcl' , ( ) => {
990- beforeEach ( ( ) => {
991- s3ClientMock . on ( PutObjectAclCommand ) . resolves ( { } ) ;
992- } ) ;
993-
994- it ( 'should send a put object acl command' , async ( ) => {
995- const acl = 'public-read' ;
996- const filePath = 'filePath' ;
997- const result = await service . putObjectAcl ( { acl, filePath } ) ;
998-
999- expect ( result ) . toBeTruthy ( ) ;
1000- expect ( utils . getBucket ) . toHaveBeenCalledTimes ( 1 ) ;
1001- expect ( s3ClientMock ) . toHaveReceivedCommandTimes ( PutObjectAclCommand , 1 ) ;
1002- expect ( s3ClientMock ) . toHaveReceivedCommandWith ( PutObjectAclCommand , {
1003- ACL : acl ,
1004- Bucket : bucket ,
1005- Key : filePath ,
1006- VersionId : undefined
1007- } ) ;
1008- } ) ;
1009-
1010- it ( 'should send a put object acl for a specific version' , async ( ) => {
1011- const acl = 'public-read' ;
1012- const filePath = 'filePath' ;
1013- const s3VersionId = '1234' ;
1014- const result = await service . putObjectAcl ( { acl, filePath, s3VersionId } ) ;
1015-
1016- expect ( result ) . toBeTruthy ( ) ;
1017- expect ( utils . getBucket ) . toHaveBeenCalledTimes ( 1 ) ;
1018- expect ( s3ClientMock ) . toHaveReceivedCommandTimes ( PutObjectAclCommand , 1 ) ;
1019- expect ( s3ClientMock ) . toHaveReceivedCommandWith ( PutObjectAclCommand , {
1020- ACL : acl ,
1021- Bucket : bucket ,
1022- Key : filePath ,
1023- VersionId : s3VersionId
1024- } ) ;
1025- } ) ;
1026- } ) ;
1027-
1028- describe ( 'putObjectPublic' , ( ) => {
1029- const putObjectAclMock = jest . spyOn ( service , 'putObjectAcl' ) ;
1030-
1031- beforeEach ( ( ) => {
1032- putObjectAclMock . mockReset ( ) ;
1033- } ) ;
1034-
1035- afterAll ( ( ) => {
1036- putObjectAclMock . mockRestore ( ) ;
1037- } ) ;
1038-
1039- it ( 'should set to public' , async ( ) => {
1040- const filePath = 'filePath' ;
1041- putObjectAclMock . mockResolvedValue ( { } ) ;
1042-
1043- const result = await service . putObjectPublic ( { filePath, public : true } ) ;
1044-
1045- expect ( result ) . toBeTruthy ( ) ;
1046- expect ( putObjectAclMock ) . toHaveBeenCalledTimes ( 1 ) ;
1047- expect ( putObjectAclMock ) . toHaveBeenCalledWith ( expect . objectContaining ( {
1048- acl : 'public-read' ,
1049- filePath : filePath
1050- } ) ) ;
1051- } ) ;
1052-
1053- it ( 'should set to non-public' , async ( ) => {
1054- const filePath = 'filePath' ;
1055- putObjectAclMock . mockResolvedValue ( { } ) ;
1056-
1057- const result = await service . putObjectPublic ( { filePath } ) ;
1058-
1059- expect ( result ) . toBeTruthy ( ) ;
1060- expect ( putObjectAclMock ) . toHaveBeenCalledTimes ( 1 ) ;
1061- expect ( putObjectAclMock ) . toHaveBeenCalledWith ( expect . objectContaining ( {
1062- acl : 'private' ,
1063- filePath : filePath
1064- } ) ) ;
1065- } ) ;
1066- } ) ;
1001+ // TODO: public folder feature - fix + rewrite tests as needed
1002+ // describe('putObjectAcl', () => {
1003+ // beforeEach(() => {
1004+ // s3ClientMock.on(PutObjectAclCommand).resolves({});
1005+ // });
1006+
1007+ // it('should send a put object acl command', async () => {
1008+ // const acl = 'public-read';
1009+ // const filePath = 'filePath';
1010+ // const result = await service.putObjectAcl({ acl, filePath });
1011+
1012+ // expect(result).toBeTruthy();
1013+ // expect(utils.getBucket).toHaveBeenCalledTimes(1);
1014+ // expect(s3ClientMock).toHaveReceivedCommandTimes(PutObjectAclCommand, 1);
1015+ // expect(s3ClientMock).toHaveReceivedCommandWith(PutObjectAclCommand, {
1016+ // ACL: acl,
1017+ // Bucket: bucket,
1018+ // Key: filePath,
1019+ // VersionId: undefined
1020+ // });
1021+ // });
1022+
1023+ // it('should send a put object acl for a specific version', async () => {
1024+ // const acl = 'public-read';
1025+ // const filePath = 'filePath';
1026+ // const s3VersionId = '1234';
1027+ // const result = await service.putObjectAcl({ acl, filePath, s3VersionId });
1028+
1029+ // expect(result).toBeTruthy();
1030+ // expect(utils.getBucket).toHaveBeenCalledTimes(1);
1031+ // expect(s3ClientMock).toHaveReceivedCommandTimes(PutObjectAclCommand, 1);
1032+ // expect(s3ClientMock).toHaveReceivedCommandWith(PutObjectAclCommand, {
1033+ // ACL: acl,
1034+ // Bucket: bucket,
1035+ // Key: filePath,
1036+ // VersionId: s3VersionId
1037+ // });
1038+ // });
1039+ // });
1040+
1041+ // TODO: public folder feature - swap out `putObjectPublic()` for `updatePublic()` and rewrite tests
1042+ // describe('putObjectPublic', () => {
1043+ // const putObjectAclMock = jest.spyOn(service, 'putObjectAcl');
1044+
1045+ // beforeEach(() => {
1046+ // putObjectAclMock.mockReset();
1047+ // });
1048+
1049+ // afterAll(() => {
1050+ // putObjectAclMock.mockRestore();
1051+ // });
1052+
1053+ // it('should set to public', async () => {
1054+ // const filePath = 'filePath';
1055+ // putObjectAclMock.mockResolvedValue({});
1056+
1057+ // const result = await service.putObjectPublic({ filePath, public: true });
1058+
1059+ // expect(result).toBeTruthy();
1060+ // expect(putObjectAclMock).toHaveBeenCalledTimes(1);
1061+ // expect(putObjectAclMock).toHaveBeenCalledWith(expect.objectContaining({
1062+ // acl: 'public-read',
1063+ // filePath: filePath
1064+ // }));
1065+ // });
1066+
1067+ // it('should set to non-public', async () => {
1068+ // const filePath = 'filePath';
1069+ // putObjectAclMock.mockResolvedValue({});
1070+
1071+ // const result = await service.putObjectPublic({ filePath });
1072+
1073+ // expect(result).toBeTruthy();
1074+ // expect(putObjectAclMock).toHaveBeenCalledTimes(1);
1075+ // expect(putObjectAclMock).toHaveBeenCalledWith(expect.objectContaining({
1076+ // acl: 'private',
1077+ // filePath: filePath
1078+ // }));
1079+ // });
1080+ // });
10671081
10681082describe ( 'putObjectTagging' , ( ) => {
10691083 beforeEach ( ( ) => {
0 commit comments