mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
test(cloudcmd) before -> serve-once
This commit is contained in:
parent
2a01876c9e
commit
00ddcfe6f1
2 changed files with 15 additions and 20 deletions
|
|
@ -1,238 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
const path = require('path');
|
||||
|
||||
const test = require('tape');
|
||||
const diff = require('sinon-called-with-diff');
|
||||
const sinon = diff(require('sinon'));
|
||||
const currify = require('currify');
|
||||
const clean = require('clear-module');
|
||||
const request = require('request');
|
||||
const {promisify} = require('es6-promisify');
|
||||
|
||||
const DIR = '../../server/';
|
||||
const cloudcmdPath = DIR + 'cloudcmd';
|
||||
const beforePath = '../before';
|
||||
|
||||
const config = require(DIR + 'config');
|
||||
const cloudcmd = require(cloudcmdPath);
|
||||
const {connect} = require(beforePath);
|
||||
const {
|
||||
_getPrefix,
|
||||
_auth,
|
||||
} = cloudcmd;
|
||||
|
||||
const get = promisify(request);
|
||||
|
||||
test('cloudcmd: args: no', (t) => {
|
||||
const fn = () => cloudcmd();
|
||||
|
||||
t.doesNotThrow(fn, /plugins should be an array!/, 'should throw when plugins not an array');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: args: plugins: error', (t) => {
|
||||
const fn = () => cloudcmd({
|
||||
plugins: ''
|
||||
});
|
||||
|
||||
t.throws(fn, /plugins should be an array!/, 'should throw when plugins not an array');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: defaults: config', (t) => {
|
||||
const configDialog = config('configDialog');
|
||||
|
||||
config('configDialog', false);
|
||||
cloudcmd();
|
||||
t.notOk(config('configDialog'), 'should not override config with defaults');
|
||||
|
||||
config('configDialog', configDialog);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: defaults: console', (t) => {
|
||||
const console = config('console');
|
||||
config('console', false);
|
||||
cloudcmd();
|
||||
t.notOk(config('console'), 'should not override config with defaults');
|
||||
|
||||
config('console', console);
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: getPrefix', (t) => {
|
||||
const value = 'hello';
|
||||
const result = _getPrefix(value);
|
||||
|
||||
t.equal(result, value, 'should equal');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: getPrefix: function', (t) => {
|
||||
const value = 'hello';
|
||||
const fn = () => value;
|
||||
const result = _getPrefix(fn);
|
||||
|
||||
t.equal(result, value, 'should equal');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: getPrefix: function: empty', (t) => {
|
||||
const value = null;
|
||||
const fn = () => value;
|
||||
const result = _getPrefix(fn);
|
||||
|
||||
t.equal(result, '', 'should equal');
|
||||
t.end();
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
|
||||
test('cloudcmd: replaceDist: !isDev', (t) => {
|
||||
const url = '/dist/hello';
|
||||
const cloudcmdPath = DIR + 'cloudcmd';
|
||||
|
||||
const reset = cleanNodeEnv();
|
||||
|
||||
clean(cloudcmdPath);
|
||||
const {_replaceDist} = require(cloudcmdPath);
|
||||
|
||||
const result = _replaceDist(url);
|
||||
const expected = url;
|
||||
|
||||
reset();
|
||||
|
||||
t.equal(result, expected, 'should equal');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: auth: reject', (t) => {
|
||||
const auth = config('auth');
|
||||
const accept = sinon.stub();
|
||||
const reject = sinon.stub();
|
||||
const username = 'root';
|
||||
const password = 'toor';
|
||||
|
||||
const set = credentials();
|
||||
const reset = set('hello', 'world');
|
||||
config('auth', true);
|
||||
|
||||
_auth(accept, reject, username, password);
|
||||
|
||||
config('auth', auth);
|
||||
reset();
|
||||
|
||||
t.ok(reject.called, 'should accept');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: auth: accept', (t) => {
|
||||
const auth = config('auth');
|
||||
const accept = sinon.stub();
|
||||
const reject = sinon.stub();
|
||||
const username = 'root';
|
||||
const password = 'toor';
|
||||
|
||||
const set = credentials();
|
||||
const reset = set(username, password);
|
||||
config('auth', true);
|
||||
|
||||
_auth(accept, reject, username, password);
|
||||
|
||||
config('auth', auth);
|
||||
reset();
|
||||
|
||||
t.ok(accept.called, 'should accept');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: auth: accept: no auth', (t) => {
|
||||
const auth = config('auth');
|
||||
const accept = sinon.stub();
|
||||
const reject = sinon.stub();
|
||||
const username = 'root';
|
||||
const password = 'toor';
|
||||
|
||||
config('auth', false);
|
||||
_auth(accept, reject, username, password);
|
||||
config('auth', auth);
|
||||
|
||||
t.ok(accept.called, 'should accept');
|
||||
t.end();
|
||||
});
|
||||
|
||||
function credentials() {
|
||||
const username = config('username');
|
||||
const password = config('password');
|
||||
|
||||
const reset = () => {
|
||||
config('username', username);
|
||||
config('password', password);
|
||||
};
|
||||
|
||||
const set = currify((fn, a, b) => {
|
||||
config('username', a);
|
||||
config('password', b);
|
||||
|
||||
return fn;
|
||||
});
|
||||
|
||||
return set(reset);
|
||||
}
|
||||
|
||||
test('cloudcmd: getIndexPath: production', (t) => {
|
||||
const isDev = false;
|
||||
const name = path.join(__dirname, '..', '..', 'dist', 'index.html');
|
||||
|
||||
t.equal(cloudcmd._getIndexPath(isDev), name);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: getIndexPath: development', (t) => {
|
||||
const isDev = true;
|
||||
const name = path.join(__dirname, '..', '..', 'dist-dev', 'index.html');
|
||||
|
||||
t.equal(cloudcmd._getIndexPath(isDev), name);
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('cloudcmd: sw', async (t) => {
|
||||
const {port, done} = await connect();
|
||||
const {statusCode}= await get(`http://localhost:${port}/sw.js`);
|
||||
|
||||
await done();
|
||||
|
||||
t.equal(statusCode, 200, 'should return sw');
|
||||
t.end();
|
||||
});
|
||||
|
||||
function cleanNodeEnv() {
|
||||
const {NODE_ENV} = process.env;
|
||||
process.env.NODE_ENV = '';
|
||||
|
||||
const reset = () => {
|
||||
process.env.NODE_ENV = NODE_ENV;
|
||||
};
|
||||
|
||||
return reset;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue