Skip to content

Commit accc358

Browse files
committed
versionning functional tests adaptation due to aws-sdk migration
1 parent e7e1c18 commit accc358

18 files changed

+3870
-3997
lines changed
Lines changed: 53 additions & 55 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,68 @@ 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 => {
43-
removeAllVersions({ Bucket: bucketName }, err => {
44-
if (err && err.code === 'NoSuchBucket') {
45-
return done();
46-
} else if (err) {
47-
return done(err);
41+
afterEach(async () => {
42+
try {
43+
await removeAllVersions({ Bucket: bucketName });
44+
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
45+
} catch (err) {
46+
if (err && err.Code === 'NoSuchBucket') {
47+
return;
48+
} else {
49+
throw err;
4850
}
49-
return s3.deleteBucket({ Bucket: bucketName }, done);
50-
});
51+
}
5152
});
5253

5354
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-
});
55+
async () => {
56+
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
5957
});
6058

6159
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-
});
60+
' containing delete marker', async () => {
61+
await s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: key }));
62+
63+
try {
64+
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
65+
assert.fail('Expected BucketNotEmpty error but got success');
66+
} catch (err) {
67+
checkError(err, 'BucketNotEmpty');
68+
}
7269
});
7370

7471
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);
72+
' containing version and delete marker', async () => {
73+
await s3.send(new PutObjectCommand({ Bucket: bucketName, Key: key }));
74+
await s3.send(new DeleteObjectCommand({ Bucket: bucketName, Key: key }));
75+
76+
try {
77+
await s3.send(new DeleteBucketCommand({ Bucket: bucketName }));
78+
assert.fail('Expected BucketNotEmpty error but got success');
79+
} catch (err) {
80+
checkError(err, 'BucketNotEmpty');
81+
}
8682
});
8783

8884
it('should return error 404 NoSuchBucket if the bucket name is invalid',
89-
done => {
90-
s3.deleteBucket({ Bucket: 'bucketA' }, err => {
85+
async () => {
86+
try {
87+
await s3.send(new DeleteBucketCommand({ Bucket: 'bucketA' }));
88+
assert.fail('Expected NoSuchBucket error but got success');
89+
} catch (err) {
9190
checkError(err, 'NoSuchBucket');
92-
return done();
93-
});
91+
}
9492
});
9593
});
9694
});

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

Lines changed: 42 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
const assert = require('assert');
22
const async = require('async');
3+
const {
4+
CreateBucketCommand,
5+
PutObjectCommand,
6+
PutBucketVersioningCommand,
7+
PutObjectAclCommand,
8+
GetObjectAclCommand,
9+
DeleteObjectCommand,
10+
ListObjectVersionsCommand,
11+
PutObjectTaggingCommand,
12+
GetObjectTaggingCommand,
13+
DeleteObjectTaggingCommand,
14+
DeleteBucketCommand,
15+
} = require('@aws-sdk/client-s3');
316

417
const BucketUtility = require('../../lib/utility/bucket-util');
518

@@ -34,60 +47,60 @@ describeSkipIfNotExplicitlyEnabled('legacy null version compatibility tests', ()
3447
// Cloudserver endpoint that is configured with null version
3548
// compatibility mode enabled.
3649
beforeEach(done => async.series([
37-
next => s3Compat.createBucket({
50+
next => s3Compat.send(new CreateBucketCommand({
3851
Bucket: bucket,
39-
}, next),
40-
next => s3Compat.putObject({
52+
}), next),
53+
next => s3Compat.send(new PutObjectCommand({
4154
Bucket: bucket,
4255
Key: 'obj',
4356
Body: 'nullbody',
44-
}, next),
45-
next => s3Compat.putBucketVersioning({
57+
}), next),
58+
next => s3Compat.send(new PutBucketVersioningCommand({
4659
Bucket: bucket,
4760
VersioningConfiguration: versioningEnabled,
48-
}, next),
49-
next => s3Compat.putObject({
61+
}), next),
62+
next => s3Compat.send(new PutObjectCommand({
5063
Bucket: bucket,
5164
Key: 'obj',
5265
Body: 'versionedbody',
53-
}, next),
66+
}), next),
5467
], done));
5568

5669
afterEach(done => {
5770
removeAllVersions({ Bucket: bucket }, err => {
5871
if (err) {
5972
return done(err);
6073
}
61-
return s3Compat.deleteBucket({ Bucket: bucket }, done);
74+
return s3Compat.send(new DeleteBucketCommand({ Bucket: bucket }), done);
6275
});
6376
});
6477

6578
it('updating ACL of legacy null version with non-compat cloudserver', done => {
6679
async.series([
67-
next => s3.putObjectAcl({
80+
next => s3.send(new PutObjectAclCommand({
6881
Bucket: bucket,
6982
Key: 'obj',
7083
VersionId: 'null',
7184
ACL: 'public-read',
72-
}, next),
73-
next => s3.getObjectAcl({
85+
}), next),
86+
next => s3.send(new GetObjectAclCommand({
7487
Bucket: bucket,
7588
Key: 'obj',
7689
VersionId: 'null',
77-
}, (err, acl) => {
90+
}), (err, acl) => {
7891
assert.ifError(err);
7992
// check that we fetched the updated null version
8093
assert.strictEqual(acl.Grants.length, 2);
8194
next();
8295
}),
83-
next => s3.deleteObject({
96+
next => s3.send(new DeleteObjectCommand({
8497
Bucket: bucket,
8598
Key: 'obj',
8699
VersionId: 'null',
87-
}, next),
88-
next => s3.listObjectVersions({
100+
}), next),
101+
next => s3.send(new ListObjectVersionsCommand({
89102
Bucket: bucket,
90-
}, (err, listing) => {
103+
}), (err, listing) => {
91104
assert.ifError(err);
92105
// check that the null version has been correctly deleted
93106
assert(listing.Versions.every(version => version.VersionId !== 'null'));
@@ -104,48 +117,48 @@ describeSkipIfNotExplicitlyEnabled('legacy null version compatibility tests', ()
104117
},
105118
];
106119
async.series([
107-
next => s3.putObjectTagging({
120+
next => s3.send(new PutObjectTaggingCommand({
108121
Bucket: bucket,
109122
Key: 'obj',
110123
VersionId: 'null',
111124
Tagging: {
112125
TagSet: tagSet,
113126
},
114-
}, next),
115-
next => s3.getObjectTagging({
127+
}), next),
128+
next => s3.send(new GetObjectTaggingCommand({
116129
Bucket: bucket,
117130
Key: 'obj',
118131
VersionId: 'null',
119-
}, (err, tagging) => {
132+
}), (err, tagging) => {
120133
assert.ifError(err);
121134
assert.deepStrictEqual(tagging.TagSet, tagSet);
122135
next();
123136
}),
124-
next => s3.deleteObjectTagging({
137+
next => s3.send(new DeleteObjectTaggingCommand({
125138
Bucket: bucket,
126139
Key: 'obj',
127140
VersionId: 'null',
128-
}, err => {
141+
}), err => {
129142
assert.ifError(err);
130143
next();
131144
}),
132-
next => s3.getObjectTagging({
145+
next => s3.send(new GetObjectTaggingCommand({
133146
Bucket: bucket,
134147
Key: 'obj',
135148
VersionId: 'null',
136-
}, (err, tagging) => {
149+
}), (err, tagging) => {
137150
assert.ifError(err);
138151
assert.deepStrictEqual(tagging.TagSet, []);
139152
next();
140153
}),
141-
next => s3.deleteObject({
154+
next => s3.send(new DeleteObjectCommand({
142155
Bucket: bucket,
143156
Key: 'obj',
144157
VersionId: 'null',
145-
}, next),
146-
next => s3.listObjectVersions({
158+
}), next),
159+
next => s3.send(new ListObjectVersionsCommand({
147160
Bucket: bucket,
148-
}, (err, listing) => {
161+
}), (err, listing) => {
149162
assert.ifError(err);
150163
// check that the null version has been correctly deleted
151164
assert(listing.Versions.every(version => version.VersionId !== 'null'));

0 commit comments

Comments
 (0)