mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
test(cloudcmd) coverage
This commit is contained in:
parent
0dd475fcff
commit
ab83db8059
8 changed files with 74 additions and 153 deletions
|
|
@ -7,15 +7,14 @@ const currify = require('currify');
|
|||
const clean = require('clear-module');
|
||||
|
||||
const DIR = '../../server/';
|
||||
const cloudcmd = require(DIR + 'cloudcmd');
|
||||
const cloudcmdPath = DIR + 'cloudcmd';
|
||||
|
||||
const cloudcmd = require(cloudcmdPath);
|
||||
const config = require(DIR + 'config');
|
||||
const {
|
||||
_authenticate,
|
||||
_getPrefix,
|
||||
_authCheck,
|
||||
_auth,
|
||||
_replacePrefix,
|
||||
_replaceDist,
|
||||
} = cloudcmd;
|
||||
|
||||
test('cloudcmd: args: no', (t) => {
|
||||
|
|
@ -93,10 +92,19 @@ test('cloudcmd: replacePrefix', (t) => {
|
|||
});
|
||||
|
||||
test('cloudcmd: replaceDist', (t) => {
|
||||
const {NODE_ENV} = process.env;
|
||||
process.env.NODE_ENV = 'development';
|
||||
|
||||
clean(cloudcmdPath);
|
||||
|
||||
const {_replaceDist} = require(cloudcmdPath);
|
||||
|
||||
const url = '/dist/hello';
|
||||
const result = _replaceDist(url);
|
||||
const expected = '/dist-dev/hello';
|
||||
|
||||
process.env.NODE_ENV = NODE_ENV;
|
||||
|
||||
t.equal(result, expected, 'should equal');
|
||||
t.end();
|
||||
});
|
||||
|
|
@ -174,95 +182,6 @@ test('cloudcmd: auth: accept: no auth', (t) => {
|
|||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: auth: reject', (t) => {
|
||||
const auth = config('auth');
|
||||
const success = sinon.stub();
|
||||
const on = sinon.stub;
|
||||
const socket = {
|
||||
on,
|
||||
};
|
||||
|
||||
config('auth', true);
|
||||
_authCheck(socket, success);
|
||||
config('auth', auth);
|
||||
|
||||
t.notOk(success.called, 'should not call success');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: authCheck: socket', (t) => {
|
||||
const auth = config('auth');
|
||||
const success = sinon.stub();
|
||||
const on = sinon.stub();
|
||||
const socket = {
|
||||
on,
|
||||
};
|
||||
|
||||
config('auth', true);
|
||||
_authCheck(socket, success);
|
||||
config('auth', auth);
|
||||
|
||||
t.ok(on.calledWith('auth'), 'should call socket.on');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: authCheck: success', (t) => {
|
||||
const success = sinon.stub();
|
||||
const auth = config('auth');
|
||||
const on = sinon.stub();
|
||||
const socket = {
|
||||
on,
|
||||
};
|
||||
|
||||
config('auth', true);
|
||||
_authCheck(socket, success);
|
||||
config('auth', auth);
|
||||
|
||||
t.notOk(success.called, 'should not call success');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: authenticate: reject', (t) => {
|
||||
const success = sinon.stub();
|
||||
const emit = sinon.stub();
|
||||
const socket = {
|
||||
emit,
|
||||
};
|
||||
|
||||
_authenticate(socket, success, 'hello', 'world');
|
||||
t.ok(emit.calledWith('reject'), 'should reject');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: authenticate: reject: success', (t) => {
|
||||
const success = sinon.stub();
|
||||
const emit = sinon.stub();
|
||||
const socket = {
|
||||
emit,
|
||||
};
|
||||
|
||||
_authenticate(socket, success, 'hello', 'world');
|
||||
t.notOk(success.called, 'should not call success');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: authenticate: accept: success', (t) => {
|
||||
const success = sinon.stub();
|
||||
const emit = sinon.stub();
|
||||
const socket = {
|
||||
emit,
|
||||
};
|
||||
|
||||
const set = credentials();
|
||||
const reset = set('hello', 'world');
|
||||
|
||||
_authenticate(socket, success, 'hello', 'world');
|
||||
reset();
|
||||
|
||||
t.ok(success.called, 'should call success');
|
||||
t.end();
|
||||
});
|
||||
|
||||
function credentials() {
|
||||
const username = config('username');
|
||||
const password = config('password');
|
||||
|
|
|
|||
|
|
@ -10,18 +10,17 @@ const sinon = diff(require('sinon'));
|
|||
|
||||
const root = '../../';
|
||||
const dir = root + 'server/';
|
||||
const config = require(dir + 'config');
|
||||
const configPath = dir + 'config';
|
||||
|
||||
const config = require(configPath);
|
||||
const {_cryptoPass} = config;
|
||||
const {apiURL} = require(root + 'common/cloudfunc');
|
||||
const clean = require('clear-module');
|
||||
|
||||
const pathHomeConfig = path.join(os.homedir(), '.cloudcmd.json');
|
||||
const pathConfig = path.join(__dirname, '..', '..', 'json', 'config.json');
|
||||
const fixture = require('./config.fixture');
|
||||
|
||||
const clean = (name) => {
|
||||
delete require.cache[require.resolve(name)];
|
||||
};
|
||||
|
||||
function readConfig() {
|
||||
return readjson.sync.try(pathHomeConfig) || require(pathConfig);
|
||||
}
|
||||
|
|
@ -58,11 +57,11 @@ test('config: manage: get', (t) => {
|
|||
});
|
||||
|
||||
test('config: manage: get: *', (t) => {
|
||||
clean(dir + 'config');
|
||||
clean(configPath);
|
||||
|
||||
const config = require(dir + 'config');
|
||||
const config = require(configPath);
|
||||
const data = config('*');
|
||||
const expected = Object.assign({}, require(pathConfig), readConfig());
|
||||
const expected = readConfig();
|
||||
|
||||
t.deepEqual(data, expected, 'should return config data');
|
||||
t.end();
|
||||
|
|
|
|||
|
|
@ -1,13 +1,22 @@
|
|||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
|
||||
const test = require('tape');
|
||||
const io = require('socket.io-client');
|
||||
|
||||
const before = require('./before');
|
||||
const configPath = path.join(__dirname, '../..', 'server', 'config');
|
||||
const before = require('../before');
|
||||
const configFn = require(configPath);
|
||||
|
||||
test('cloudcmd: console: enabled by default', (t) => {
|
||||
before({}, (port, after) => {
|
||||
const config = {
|
||||
auth: false
|
||||
};
|
||||
|
||||
before({config}, (port, after) => {
|
||||
const socket = io(`http://localhost:${port}/console`);
|
||||
socket.emit('auth', configFn('username'), configFn('password'));
|
||||
|
||||
socket.once('data', (data) => {
|
||||
socket.close();
|
||||
|
|
@ -23,6 +32,7 @@ test('cloudcmd: console: enabled', (t) => {
|
|||
|
||||
before({config}, (port, after) => {
|
||||
const socket = io(`http://localhost:${port}/console`);
|
||||
socket.emit('auth', configFn('username'), configFn('password'));
|
||||
|
||||
socket.once('data', (data) => {
|
||||
socket.close();
|
||||
|
|
@ -6,18 +6,24 @@ const test = require('tape');
|
|||
const diff = require('sinon-called-with-diff');
|
||||
const sinon = diff(require('sinon'));
|
||||
|
||||
const dir = path.join('..', '..', 'server');
|
||||
const dir = path.join(__dirname, '..', '..', 'server');
|
||||
|
||||
const pathConfig = path.join(dir, 'config');
|
||||
const pathRoot = `${dir}/root`;
|
||||
|
||||
const stub = require('mock-require');
|
||||
const clean = require('clear-module');
|
||||
|
||||
const {cache, resolve} = require;
|
||||
const stub = (name, exports) => {
|
||||
require(name);
|
||||
|
||||
const resolved = resolve(name);
|
||||
cache[resolved].exports = exports;
|
||||
};
|
||||
|
||||
test('cloudcmd: root: config', (t) => {
|
||||
clean(pathRoot);
|
||||
|
||||
const originalConfig = require(pathConfig);
|
||||
const config = sinon.stub().returns(false);
|
||||
|
||||
stub(pathConfig, config);
|
||||
|
|
@ -28,7 +34,9 @@ test('cloudcmd: root: config', (t) => {
|
|||
|
||||
t.ok(config.calledWith('root'), 'should call config');
|
||||
|
||||
stub(pathConfig, originalConfig);
|
||||
clean(pathConfig);
|
||||
clean(pathRoot);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
|
|
@ -42,8 +50,8 @@ test('cloudcmd: root: mellow', (t) => {
|
|||
pathToWin
|
||||
};
|
||||
|
||||
const originalMellow = stub('mellow', mellow);
|
||||
const originalConfig = stub(pathConfig, config);
|
||||
stub('mellow', mellow);
|
||||
stub(pathConfig, config);
|
||||
|
||||
const root = require(pathRoot);
|
||||
const dir = 'hello';
|
||||
|
|
@ -53,8 +61,9 @@ test('cloudcmd: root: mellow', (t) => {
|
|||
|
||||
t.ok(pathToWin.calledWith(dir, dirRoot), 'should call mellow');
|
||||
|
||||
stub('mellow', originalMellow);
|
||||
stub(pathConfig, originalConfig);
|
||||
clean('mellow');
|
||||
clean(pathConfig);
|
||||
clean(pathRoot);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -7,9 +7,14 @@ const {promisify} = require('es6-promisify');
|
|||
const pullout = require('pullout');
|
||||
const request = require('request');
|
||||
|
||||
const routePath = '../../server/route';
|
||||
const rootDir = '../..';
|
||||
|
||||
const routePath = `${rootDir}/server/route`;
|
||||
const beforePath = '../before';
|
||||
const configPath = `${rootDir}/server/config`;
|
||||
|
||||
const route = require(routePath);
|
||||
const before = require('../before');
|
||||
const before = require(beforePath);
|
||||
|
||||
const clean = require('clear-module');
|
||||
|
||||
|
|
@ -180,23 +185,6 @@ test('cloudcmd: route: keys panel', (t) => {
|
|||
});
|
||||
});
|
||||
|
||||
test('cloudcmd: route: no index', (t) => {
|
||||
const name = path.join(__dirname, '../../dist-dev/index.html');
|
||||
const nameAfter = path.join(__dirname, '../../dist-dev/index1.html');
|
||||
|
||||
fs.renameSync(name, nameAfter);
|
||||
|
||||
before({}, (port, after) => {
|
||||
getStr(`http://localhost:${port}/`)
|
||||
.then((result) => {
|
||||
fs.renameSync(nameAfter, name);
|
||||
t.equal(result.indexOf('ENOENT'), 0, 'should not found index.html');
|
||||
t.end();
|
||||
after();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('cloudcmd: route: getIndexPath: production', (t) => {
|
||||
const isDev = false;
|
||||
const name = path.join(__dirname, '..', '..', 'dist', 'index.html');
|
||||
|
|
@ -294,6 +282,7 @@ test('cloudcmd: route: realpath: error', (t) => {
|
|||
|
||||
clean('../before');
|
||||
clean(routePath);
|
||||
clean(configPath);
|
||||
|
||||
const before = require('../before');
|
||||
const root = path.join(__dirname, '..', 'fixture');
|
||||
|
|
|
|||
|
|
@ -5,12 +5,20 @@ const mock = require('mock-require');
|
|||
const diff = require('sinon-called-with-diff');
|
||||
const sinon = diff(require('sinon'));
|
||||
|
||||
const stub = require('mock-require');
|
||||
//const stub = require('mock-require');
|
||||
const clean = require('clear-module');
|
||||
|
||||
const configPath = '../../server/config';
|
||||
const terminalPath = '../../server/terminal';
|
||||
|
||||
const {cache, resolve} = require;
|
||||
const stub = (name, exports) => {
|
||||
require(name);
|
||||
|
||||
const resolved = resolve(name);
|
||||
cache[resolved].exports = exports;
|
||||
};
|
||||
|
||||
test('cloudcmd: terminal: disabled', (t) => {
|
||||
clean(terminalPath);
|
||||
stub(configPath, () => {
|
||||
|
|
|
|||
|
|
@ -14,9 +14,17 @@ const exitPath = `${dir}/server/exit`;
|
|||
const columnsPath = `${dir}/server/columns`;
|
||||
|
||||
const validate = require(validatePath);
|
||||
const stub = require('mock-require');
|
||||
//const stub = require('mock-require');
|
||||
const clear = require('clear-module');
|
||||
|
||||
const {cache, resolve} = require;
|
||||
const stub = (name, exports) => {
|
||||
require(name);
|
||||
|
||||
const resolved = resolve(name);
|
||||
cache[resolved].exports = exports;
|
||||
};
|
||||
|
||||
test('validate: root: bad', (t) => {
|
||||
const config = {
|
||||
root: Math.random()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue