88 lines
1.9 KiB
JavaScript
88 lines
1.9 KiB
JavaScript
/*
|
|
* 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.
|
|
*/
|
|
|
|
/*
|
|
* Integration tests for using instance-related APIs as a module.
|
|
*/
|
|
|
|
var h = require('./helpers');
|
|
var test = require('tape');
|
|
|
|
var common = require('../../lib/common');
|
|
|
|
|
|
// --- Globals
|
|
|
|
|
|
var CLIENT;
|
|
var INST;
|
|
|
|
|
|
// --- Tests
|
|
|
|
|
|
test('TritonApi packages', function (tt) {
|
|
tt.test(' setup', function (t) {
|
|
CLIENT = h.createClient();
|
|
t.ok(CLIENT, 'client');
|
|
|
|
CLIENT.cloudapi.listMachines(function (err, insts) {
|
|
if (h.ifErr(t, err))
|
|
return t.end();
|
|
|
|
t.ok(Array.isArray(insts), 'instances');
|
|
|
|
INST = insts[0];
|
|
|
|
t.end();
|
|
});
|
|
});
|
|
|
|
|
|
tt.test(' TritonApi getInstance', function (t) {
|
|
if (!INST) {
|
|
return t.end();
|
|
}
|
|
|
|
function check(val, valName, next) {
|
|
CLIENT.getInstance(val, function (err, inst) {
|
|
if (h.ifErr(t, err, 'no err'))
|
|
return t.end();
|
|
|
|
/*
|
|
* Normalize: There can be fields that are on the machine object
|
|
* for CloudAPI GetMachine, but not for ListMachine:
|
|
* - dns_names (if CNS is enabled in the DC)
|
|
*/
|
|
delete inst.dns_names;
|
|
t.deepEqual(inst, INST, valName);
|
|
|
|
next();
|
|
});
|
|
}
|
|
|
|
var shortId = INST.id.split('-')[0];
|
|
|
|
check(INST.id, 'id', function () {
|
|
check(INST.name, 'name', function () {
|
|
check(shortId, 'shortId', function () {
|
|
t.end();
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
tt.test(' teardown: client', function (t) {
|
|
CLIENT.close();
|
|
t.end();
|
|
});
|
|
});
|