Skip to content

Commit a2be54f

Browse files
committed
bucket related versionning tests migration
Issue: CLDSRV-724
1 parent 5c5ab37 commit a2be54f

File tree

2 files changed

+84
-63
lines changed

2 files changed

+84
-63
lines changed
Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
const 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

410
const withV4 = require('../support/withV4');
511
const BucketUtility = require('../../lib/utility/bucket-util');
@@ -12,11 +18,7 @@ const key = 'anObject';
1218

1319
function 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

2224
describe('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
});

tests/functional/aws-node-sdk/test/versioning/replicationBucket.js

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
11
const assert = require('assert');
22
const async = require('async');
3+
const {
4+
CreateBucketCommand,
5+
DeleteBucketCommand,
6+
PutBucketVersioningCommand,
7+
PutBucketReplicationCommand,
8+
DeleteBucketReplicationCommand,
9+
} = require('@aws-sdk/client-s3');
310

411
const withV4 = require('../support/withV4');
512
const BucketUtility = require('../../lib/utility/bucket-util');
613

714
const bucketName = `versioning-bucket-${Date.now()}`;
815

9-
1016
function checkError(err, code) {
1117
assert.notEqual(err, null, 'Expected failure but got success');
12-
assert.strictEqual(err.code, code);
18+
assert.strictEqual(err.name, code);
1319
}
1420

1521
function checkNoError(err) {
1622
assert.ifError(err, `Expected success, got error ${JSON.stringify(err)}`);
1723
}
1824

1925
function testVersioning(s3, versioningStatus, replicationStatus, removeReplication, cb) {
20-
const versioningParams = { Bucket: bucketName,
21-
VersioningConfiguration: { Status: versioningStatus } };
26+
const versioningParams = {
27+
Bucket: bucketName,
28+
VersioningConfiguration: { Status: versioningStatus }
29+
};
2230
const replicationParams = {
2331
Bucket: bucketName,
2432
ReplicationConfiguration: {
@@ -36,15 +44,22 @@ function testVersioning(s3, versioningStatus, replicationStatus, removeReplicati
3644
],
3745
},
3846
};
47+
3948
async.waterfall([
40-
cb => s3.putBucketReplication(replicationParams, e => cb(e)),
49+
cb => s3.send(new PutBucketReplicationCommand(replicationParams))
50+
.then(() => cb())
51+
.catch(cb),
4152
cb => {
4253
if (removeReplication) {
43-
return s3.deleteBucketReplication({ Bucket: bucketName }, e => cb(e));
54+
return s3.send(new DeleteBucketReplicationCommand({ Bucket: bucketName }))
55+
.then(() => cb())
56+
.catch(cb);
4457
}
4558
return process.nextTick(() => cb());
4659
},
47-
cb => s3.putBucketVersioning(versioningParams, e => cb(e)),
60+
cb => s3.send(new PutBucketVersioningCommand(versioningParams))
61+
.then(() => cb())
62+
.catch(cb),
4863
], cb);
4964
}
5065

@@ -55,17 +70,23 @@ describe('Versioning on a replication source bucket', () => {
5570

5671
beforeEach(done => {
5772
async.waterfall([
58-
cb => s3.createBucket({ Bucket: bucketName }, e => cb(e)),
59-
cb => s3.putBucketVersioning({
73+
cb => s3.send(new CreateBucketCommand({ Bucket: bucketName }))
74+
.then(() => cb())
75+
.catch(cb),
76+
cb => s3.send(new PutBucketVersioningCommand({
6077
Bucket: bucketName,
6178
VersioningConfiguration: {
6279
Status: 'Enabled',
6380
},
64-
}, err => cb(err)),
81+
}))
82+
.then(() => cb())
83+
.catch(cb),
6584
], done);
6685
});
6786

68-
afterEach(done => s3.deleteBucket({ Bucket: bucketName }, done));
87+
afterEach(async () => {
88+
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
89+
});
6990

7091
it('should not be able to disable versioning if replication enabled',
7192
done => {

0 commit comments

Comments
 (0)