87 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.1 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.
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Test helpers for the integration tests
 | |
|  */
 | |
| 
 | |
| var error = console.error;
 | |
| var assert = require('assert-plus');
 | |
| var path = require('path');
 | |
| 
 | |
| var testcommon = require('../lib/testcommon');
 | |
| 
 | |
| 
 | |
| 
 | |
| // --- globals
 | |
| 
 | |
| try {
 | |
|     var CONFIG = require('../config.json');
 | |
|     assert.object(CONFIG, 'test/config.json');
 | |
|     assert.string(CONFIG.url, 'test/config.json#url');
 | |
|     assert.string(CONFIG.account, 'test/config.json#account');
 | |
|     assert.string(CONFIG.key_id, 'test/config.json#key_id');
 | |
|     assert.optionalBool(CONFIG.insecure, 'test/config.json#insecure');
 | |
| } catch (e) {
 | |
|     error('* * *');
 | |
|     error('node-triton integration tests require a ./test/config.json');
 | |
|     error('');
 | |
|     error('    {');
 | |
|     error('        "url": "<CloudAPI URL>",');
 | |
|     error('        "account": "<account>",');
 | |
|     error('        "key_id": "<ssh key fingerprint>",');
 | |
|     error('        "insecure": true|false   // optional');
 | |
|     error('    }');
 | |
|     error('');
 | |
|     error('Note: This test suite with create machines, images, et al using');
 | |
|     error('this CloudAPI and account. That could *cost* you money. :)');
 | |
|     error('* * *');
 | |
|     throw e;
 | |
| }
 | |
| 
 | |
| var TRITON = 'node ' + path.resolve(__dirname, '../../bin/triton');
 | |
| var UA = 'node-triton-test';
 | |
| 
 | |
| var LOG = require('../lib/log');
 | |
| 
 | |
| 
 | |
| 
 | |
| // --- internal support routines
 | |
| 
 | |
| /*
 | |
|  * Call the `triton` CLI with the given args.
 | |
|  */
 | |
| function triton(args, cb) {
 | |
|     testcommon.execPlus({
 | |
|         command: TRITON + ' ' + args,
 | |
|         execOpts: {
 | |
|             maxBuffer: Infinity,
 | |
|             env: {
 | |
|                 PATH: process.env.PATH,
 | |
|                 HOME: process.env.HOME,
 | |
|                 SDC_URL: CONFIG.url,
 | |
|                 SDC_ACCOUNT: CONFIG.account,
 | |
|                 SDC_KEY_ID: CONFIG.key_id,
 | |
|                 SDC_TLS_INSECURE: CONFIG.insecure
 | |
|             }
 | |
|         },
 | |
|         log: LOG
 | |
|     }, cb);
 | |
| }
 | |
| 
 | |
| 
 | |
| // --- exports
 | |
| 
 | |
| module.exports = {
 | |
|     CONFIG: CONFIG,
 | |
|     triton: triton,
 | |
|     ifErr: testcommon.ifErr
 | |
| };
 |