-
Notifications
You must be signed in to change notification settings - Fork 54
/
mmkdir.test.js
99 lines (78 loc) · 2.62 KB
/
mmkdir.test.js
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
* Copyright 2019 Joyent, Inc.
* Copyright 2022 MNX Cloud, Inc.
*/
/*
* Test the "mmkdir" command.
*/
var assert = require('assert-plus');
var forkExecWait = require('forkexec').forkExecWait;
var fs = require('fs');
var libuuid = require('uuid');
var path = require('path');
var test = require('tap').test;
var vasync = require('vasync');
var sprintf = require('extsprintf').sprintf;
var logging = require('../lib/logging');
var log = logging.createLogger();
var BINDIR = path.resolve(__dirname, '../../bin');
var MMKDIR = path.resolve(BINDIR, 'mmkdir');
var MRM = path.resolve(BINDIR, 'mrm');
var MINFO = path.resolve(BINDIR, 'minfo');
var TESTDIR = sprintf('/%s/stor/node-manta-test-mput-%s',
process.env.MANTA_USER || 'admin',
libuuid.v4().split('-')[0]);
var testOpts = {
skip: !process.env.MANTA_TEST_ROLE && 'MANTA_TEST_ROLE envvar not set'
};
// ---- tests
/*
* Create a directory using the role-tag option and verify the role-tag header
* is set on the object. This verifies the fix for
* https://github.com/TritonDataCenter/node-manta/issues/333. This test requires
* a role to be configured in triton to work properly so it is condtional
* upon the user setting MANTA_TEST_ROLE in the environment.
*/
test('mmkdir with role-tag', testOpts, function (suite) {
suite.test('mmkdir with --role-tag option', function (t) {
// Expect the role-tag header
var role = process.env.MANTA_TEST_ROLE;
var expectedHeader = 'role-tag: ' + role;
var argv1 = [
MMKDIR,
'--role-tag',
role,
TESTDIR
];
var argv2 = [
MINFO,
TESTDIR
];
forkExecWait({
argv: argv1
}, function (err, info) {
t.ifError(err, err);
t.equal(info.stderr, '', 'no stderr');
forkExecWait({
argv: argv2
}, function (err2, info2) {
t.ifError(err2, err2);
t.equal(info2.stderr, '', 'no stderr');
var headerIndex = info2.stdout.indexOf(expectedHeader);
t.notEqual(headerIndex, -1,
'minfo response contains header');
t.end();
});
});
});
suite.test('cleanup: rm test directory ' + TESTDIR, function (t) {
// Sanity checks that we don't `mrm -r` a non-test dir.
assert.ok(TESTDIR);
assert.ok(TESTDIR.indexOf('node-manta-test') !== -1);
forkExecWait({ argv: [ MRM, '-r', TESTDIR ]}, function (err) {
t.ifError(err, err);
t.end();
});
});
suite.end();
});