-
Notifications
You must be signed in to change notification settings - Fork 256
Expand file tree
/
Copy pathobjectDeleteTagging.js
More file actions
69 lines (64 loc) · 2.46 KB
/
objectDeleteTagging.js
File metadata and controls
69 lines (64 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
const assert = require('assert');
const async = require('async');
const { bucketPut } = require('../../../lib/api/bucketPut');
const objectPut = require('../../../lib/api/objectPut');
const objectPutTagging = require('../../../lib/api/objectPutTagging');
const objectDeleteTagging = require('../../../lib/api/objectDeleteTagging');
const metadata = require('../../../lib/metadata/wrapper');
const { cleanup,
DummyRequestLogger,
makeAuthInfo,
TaggingConfigTester } = require('../helpers');
const DummyRequest = require('../DummyRequest');
const log = new DummyRequestLogger();
const authInfo = makeAuthInfo('accessKey1');
const namespace = 'default';
const bucketName = 'bucketname';
const objectName = 'objectName';
const postBody = Buffer.from('I am a body', 'utf8');
const testBucketPutRequest = {
bucketName,
headers: { host: `${bucketName}.s3.amazonaws.com` },
url: '/',
actionImplicitDenies: false,
};
const testPutObjectRequest = new DummyRequest({
bucketName,
namespace,
objectKey: objectName,
headers: {},
url: `/${bucketName}/${objectName}`,
}, postBody);
describe('deleteObjectTagging API', () => {
beforeEach(done => {
cleanup();
bucketPut(authInfo, testBucketPutRequest, log, err => {
if (err) {
return done(err);
}
return objectPut(authInfo, testPutObjectRequest, undefined, log,
done);
});
});
afterEach(() => cleanup());
it('should delete tag set and update originOp', done => {
const taggingUtil = new TaggingConfigTester();
const testObjectPutTaggingRequest = taggingUtil
.createObjectTaggingRequest('PUT', bucketName, objectName);
const testObjectDeleteTaggingRequest = taggingUtil
.createObjectTaggingRequest('DELETE', bucketName, objectName);
async.waterfall([
next => objectPutTagging(authInfo, testObjectPutTaggingRequest, log,
err => next(err)),
next => objectDeleteTagging(authInfo,
testObjectDeleteTaggingRequest, log, err => next(err)),
next => metadata.getObjectMD(bucketName, objectName, {}, log,
(err, objectMD) => next(err, objectMD)),
], (err, objectMD) => {
const uploadedTags = objectMD.tags;
assert.deepStrictEqual(uploadedTags, {});
assert.strictEqual(objectMD.originOp, 's3:ObjectTagging:Delete');
return done();
});
});
});