11const assert = require ( 'assert' ) ;
2- const async = require ( 'async' ) ;
2+ const {
3+ CreateBucketCommand,
4+ PutBucketVersioningCommand,
5+ DeleteBucketCommand,
6+ PutObjectCommand,
7+ DeleteObjectCommand,
8+ } = require ( '@aws-sdk/client-s3' ) ;
39
410const withV4 = require ( '../support/withV4' ) ;
511const BucketUtility = require ( '../../lib/utility/bucket-util' ) ;
@@ -12,11 +18,7 @@ const key = 'anObject';
1218
1319function checkError ( err , code ) {
1420 assert . notEqual ( err , null , 'Expected failure but got success' ) ;
15- assert . strictEqual ( err . code , code ) ;
16- }
17-
18- function checkNoError ( err ) {
19- assert . ifError ( err , `Expected success, got error ${ JSON . stringify ( err ) } ` ) ;
21+ assert . strictEqual ( err . Code , code ) ;
2022}
2123
2224describe ( 'aws-node-sdk test delete bucket' , ( ) => {
@@ -25,72 +27,70 @@ describe('aws-node-sdk test delete bucket', () => {
2527 const s3 = bucketUtil . s3 ;
2628
2729 // setup test
28- beforeEach ( done => {
29- async . waterfall ( [
30- next => s3 . createBucket ( { Bucket : bucketName } ,
31- err => next ( err ) ) ,
32- next => s3 . putBucketVersioning ( {
33- Bucket : bucketName ,
34- VersioningConfiguration : {
35- Status : 'Enabled' ,
36- } ,
37- } , err => next ( err ) ) ,
38- ] , done ) ;
30+ beforeEach ( async ( ) => {
31+ await s3 . send ( new CreateBucketCommand ( { Bucket : bucketName } ) ) ;
32+ await s3 . send ( new PutBucketVersioningCommand ( {
33+ Bucket : bucketName ,
34+ VersioningConfiguration : {
35+ Status : 'Enabled' ,
36+ } ,
37+ } ) ) ;
3938 } ) ;
4039
4140 // empty and delete bucket after testing if bucket exists
42- afterEach ( done => {
41+ afterEach ( done => {
4342 removeAllVersions ( { Bucket : bucketName } , err => {
44- if ( err && err . code === ' NoSuchBucket' ) {
43+ if ( err ?. name === " NoSuchBucket" ) {
4544 return done ( ) ;
46- } else if ( err ) {
47- return done ( err ) ;
4845 }
49- return s3 . deleteBucket ( { Bucket : bucketName } , done ) ;
46+ return s3 . send ( new DeleteBucketCommand ( { Bucket : bucketName } ) )
47+ . then ( ( ) => done ( ) ) . catch ( err => {
48+ if ( err . name === 'NoSuchBucket' ) {
49+ return done ( ) ;
50+ }
51+ return done ( err ) ;
52+ } ) ;
5053 } ) ;
5154 } ) ;
5255
5356 it ( 'should be able to delete empty bucket with version enabled' ,
54- done => {
55- s3 . deleteBucket ( { Bucket : bucketName } , err => {
56- checkNoError ( err ) ;
57- return done ( ) ;
58- } ) ;
57+ async ( ) => {
58+ await s3 . send ( new DeleteBucketCommand ( { Bucket : bucketName } ) ) ;
5959 } ) ;
6060
6161 it ( 'should return error 409 BucketNotEmpty if trying to delete bucket' +
62- ' containing delete marker' , done => {
63- s3 . deleteObject ( { Bucket : bucketName , Key : key } , err => {
64- if ( err ) {
65- return done ( err ) ;
66- }
67- return s3 . deleteBucket ( { Bucket : bucketName } , err => {
68- checkError ( err , 'BucketNotEmpty' ) ;
69- return done ( ) ;
70- } ) ;
71- } ) ;
62+ ' containing delete marker' , async ( ) => {
63+ await s3 . send ( new DeleteObjectCommand ( { Bucket : bucketName , Key : key } ) ) ;
64+
65+ try {
66+ await s3 . send ( new DeleteBucketCommand ( { Bucket : bucketName } ) ) ;
67+ assert . fail ( 'Expected BucketNotEmpty error but got success' ) ;
68+ } catch ( err ) {
69+ checkError ( err , 'BucketNotEmpty' ) ;
70+ }
7271 } ) ;
7372
7473 it ( 'should return error 409 BucketNotEmpty if trying to delete bucket' +
75- ' containing version and delete marker' , done => {
76- async . waterfall ( [
77- next => s3 . putObject ( { Bucket : bucketName , Key : key } ,
78- err => next ( err ) ) ,
79- next => s3 . deleteObject ( { Bucket : bucketName , Key : key } ,
80- err => next ( err ) ) ,
81- next => s3 . deleteBucket ( { Bucket : bucketName } , err => {
82- checkError ( err , 'BucketNotEmpty' ) ;
83- return next ( ) ;
84- } ) ,
85- ] , done ) ;
74+ ' containing version and delete marker' , async ( ) => {
75+ await s3 . send ( new PutObjectCommand ( { Bucket : bucketName , Key : key } ) ) ;
76+ await s3 . send ( new DeleteObjectCommand ( { Bucket : bucketName , Key : key } ) ) ;
77+
78+ try {
79+ await s3 . send ( new DeleteBucketCommand ( { Bucket : bucketName } ) ) ;
80+ assert . fail ( 'Expected BucketNotEmpty error but got success' ) ;
81+ } catch ( err ) {
82+ checkError ( err , 'BucketNotEmpty' ) ;
83+ }
8684 } ) ;
8785
8886 it ( 'should return error 404 NoSuchBucket if the bucket name is invalid' ,
89- done => {
90- s3 . deleteBucket ( { Bucket : 'bucketA' } , err => {
87+ async ( ) => {
88+ try {
89+ await s3 . send ( new DeleteBucketCommand ( { Bucket : 'bucketA' } ) ) ;
90+ assert . fail ( 'Expected NoSuchBucket error but got success' ) ;
91+ } catch ( err ) {
9192 checkError ( err , 'NoSuchBucket' ) ;
92- return done ( ) ;
93- } ) ;
93+ }
9494 } ) ;
9595 } ) ;
9696} ) ;
0 commit comments