diff --git a/test/integration/cli-profiles.test.js b/test/integration/cli-profiles.test.js new file mode 100644 index 0000000..4fab4a3 --- /dev/null +++ b/test/integration/cli-profiles.test.js @@ -0,0 +1,88 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/* + * Copyright (c) 2015, Joyent, Inc. + */ + +/* + * Test 'profiles' and 'profile' + */ + +var fs = require('fs'); +var path = require('path'); + +var h = require('./helpers'); +var test = require('tape'); + +var PROFILE_FILE = path.join(__dirname, 'test-profile.json'); +var PROFILE_DATA = JSON.parse(fs.readFileSync(PROFILE_FILE, 'utf8')); + +var opts = { + skip: !h.CONFIG.destructiveAllowed +}; + +// --- Tests + +if (opts.skip) { + console.error('** skipping triton profile creation tests'); + console.error('** set "destructiveAllowed" to enable'); +} + +test('triton profiles (read only)', function (tt) { + tt.test('triton profile env', function (t) { + h.safeTriton(t, {json: true, args: ['profile', '-j', 'env']}, + function (p) { + + t.equal(p.account, + process.env.TRITON_ACCOUNT || process.env.SDC_ACCOUNT, + 'env account correct'); + t.equal(p.keyId, + process.env.TRITON_KEY_ID || process.env.SDC_KEY_ID, + 'env keyId correct'); + t.equal(p.url, + process.env.TRITON_URL || process.env.SDC_URL, + 'env url correct'); + + t.end(); + }); + }); + + tt.end(); +}); + +test('triton profiles (read/write)', opts, function (tt) { + tt.test('triton profile create', function (t) { + h.safeTriton(t, ['profile', '-a', PROFILE_FILE], + function (stdout) { + + t.ok(stdout.match(/^Saved profile/), 'stdout correct'); + t.end(); + }); + }); + + tt.test('triton profile get', function (t) { + h.safeTriton(t, + {json: true, args: ['profile', '-j', PROFILE_DATA.name]}, + function (p) { + + t.deepEqual(p, PROFILE_DATA, 'profile matched'); + + t.end(); + }); + }); + + tt.test('triton profile delete', function (t) { + h.safeTriton(t, ['profile', '-df', PROFILE_DATA.name], + function (stdout) { + + t.ok(stdout.match(/^Deleted profile/), 'stdout correct'); + t.end(); + }); + }); + + tt.end(); +}); diff --git a/test/integration/test-profile.json b/test/integration/test-profile.json new file mode 100644 index 0000000..de57c3c --- /dev/null +++ b/test/integration/test-profile.json @@ -0,0 +1,7 @@ +{ + "name": "node-triton-test-profile-1", + "account": "some-name", + "url": "http://example.com/test", + "keyId": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00", + "curr": false +}