11const assert = require ( 'assert' ) ;
2+ const {
3+ PutObjectCommand,
4+ PutObjectAclCommand,
5+ } = require ( '@aws-sdk/client-s3' ) ;
26
37const withV4 = require ( '../support/withV4' ) ;
48const BucketUtility = require ( '../../lib/utility/bucket-util' ) ;
@@ -45,23 +49,18 @@ describe('PUT Object ACL', () => {
4549 const s3 = bucketUtil . s3 ;
4650 const Key = 'aclTest' ;
4751
48- before ( done => {
49- bucketUtil . createRandom ( 1 )
50- . then ( created => {
51- bucketName = created ;
52- done ( ) ;
53- } )
54- . catch ( done ) ;
52+ before ( async ( ) => {
53+ bucketName = await bucketUtil . createRandom ( 1 ) ;
5554 } ) ;
5655
57- afterEach ( ( ) => {
56+ afterEach ( async ( ) => {
5857 process . stdout . write ( 'emptying bucket' ) ;
59- return bucketUtil . empty ( bucketName ) ;
58+ await bucketUtil . empty ( bucketName ) ;
6059 } ) ;
6160
62- after ( ( ) => {
61+ after ( async ( ) => {
6362 process . stdout . write ( 'deleting bucket' ) ;
64- return bucketUtil . deleteOne ( bucketName ) ;
63+ await bucketUtil . deleteOne ( bucketName ) ;
6564 } ) ;
6665
6766 it ( 'should put object ACLs' , async ( ) => {
@@ -71,38 +70,49 @@ describe('PUT Object ACL', () => {
7170 { Bucket, Key } ,
7271 ] ;
7372 for ( const param of objects ) {
74- await s3 . putObject ( param ) . promise ( ) ;
73+ await s3 . send ( new PutObjectCommand ( param ) ) ;
7574 }
76- const data = await s3 . putObjectAcl ( { Bucket, Key, ACL : 'public-read' } ) . promise ( ) ;
75+ const data = await s3 . send ( new PutObjectAclCommand ( {
76+ Bucket,
77+ Key,
78+ ACL : 'public-read'
79+ } ) ) ;
7780 assert ( data ) ;
7881 } ) ;
7982
8083 it ( 'should return NoSuchKey if try to put object ACLs ' +
81- 'for nonexistent object' , done => {
84+ 'for nonexistent object' , async ( ) => {
8285 const s3 = bucketUtil . s3 ;
8386 const Bucket = bucketName ;
8487
85- s3 . putObjectAcl ( {
86- Bucket,
87- Key,
88- ACL : 'public-read' } , err => {
88+ try {
89+ await s3 . send ( new PutObjectAclCommand ( {
90+ Bucket,
91+ Key,
92+ ACL : 'public-read'
93+ } ) ) ;
94+ throw new Error ( 'Expected NoSuchKey error' ) ;
95+ } catch ( err ) {
8996 assert ( err ) ;
90- assert . strictEqual ( err . statusCode , 404 ) ;
91- assert . strictEqual ( err . code , 'NoSuchKey' ) ;
92- done ( ) ;
93- } ) ;
97+ assert . strictEqual ( err . $metadata . httpStatusCode , 404 ) ;
98+ assert . strictEqual ( err . name , 'NoSuchKey' ) ;
99+ }
94100 } ) ;
95101
96102 describe ( 'on an object' , ( ) => {
97- before ( done => s3 . putObject ( { Bucket : bucketName , Key } , done ) ) ;
98- after ( ( ) => {
103+ before ( async ( ) => {
104+ await s3 . send ( new PutObjectCommand ( { Bucket : bucketName , Key } ) ) ;
105+ } ) ;
106+
107+ after ( async ( ) => {
99108 process . stdout . write ( 'deleting bucket' ) ;
100- return bucketUtil . empty ( bucketName ) ;
109+ await bucketUtil . empty ( bucketName ) ;
101110 } ) ;
111+
102112 // The supplied canonical ID is not associated with a real AWS
103113 // account, so AWS_ON_AIR will raise a 400 InvalidArgument
104114 itSkipIfAWS ( 'should return AccessDenied if try to change owner ' +
105- 'ID in ACL request body' , done => {
115+ 'ID in ACL request body' , async ( ) => {
106116 const acp = new _AccessControlPolicy (
107117 { ownerID : notOwnerCanonicalID } ) ;
108118 acp . addGrantee ( 'Group' , constants . publicId , 'READ' ) ;
@@ -111,12 +121,15 @@ describe('PUT Object ACL', () => {
111121 Key,
112122 AccessControlPolicy : acp ,
113123 } ;
114- s3 . putObjectAcl ( putAclParams , err => {
124+
125+ try {
126+ await s3 . send ( new PutObjectAclCommand ( putAclParams ) ) ;
127+ throw new Error ( 'Expected AccessDenied error' ) ;
128+ } catch ( err ) {
115129 assert ( err ) ;
116- assert . strictEqual ( err . statusCode , 403 ) ;
117- assert . strictEqual ( err . code , 'AccessDenied' ) ;
118- done ( ) ;
119- } ) ;
130+ assert . strictEqual ( err . $metadata . httpStatusCode , 403 ) ;
131+ assert . strictEqual ( err . name , 'AccessDenied' ) ;
132+ }
120133 } ) ;
121134 } ) ;
122135 } ) ;
0 commit comments