cloudcmd/server/rest/index.spec.js
2020-04-10 14:32:17 +03:00

75 lines
1.7 KiB
JavaScript

'use strict';
const test = require('supertape');
const tryToCatch = require('try-to-catch');
const {
_formatMsg,
_getWin32RootMsg,
_isRootWin32,
_isRootAll,
_onPUT,
} = require('.');
test('rest: formatMsg', (t) => {
const result = _formatMsg('hello', 'world');
t.equal(result, 'hello: ok("world")', 'should be equal');
t.end();
});
test('rest: formatMsg: json', (t) => {
const result = _formatMsg('hello', {
name: 'world',
});
t.equal(result, 'hello: ok("{"name":"world"}")', 'should parse json');
t.end();
});
test('rest: getWin32RootMsg', (t) => {
const {message} = _getWin32RootMsg();
t.equal(message, 'Could not copy from/to root on windows!', 'should return error');
t.end();
});
test('rest: isRootWin32', (t) => {
const result = _isRootWin32('/', '/');
t.notOk(result, 'should equal');
t.end();
});
test('rest: isRootAll', (t) => {
const result = _isRootAll('/', ['/', '/h']);
t.notOk(result, 'should equal');
t.end();
});
test('rest: onPUT: no args', async (t) => {
const [e] = await tryToCatch(_onPUT, {});
t.equal(e.message, 'name should be a string!', 'should throw when no args');
t.end();
});
test('rest: onPUT: no body', async (t) => {
const [e] = await tryToCatch(_onPUT, {
name: 'hello',
});
t.equal(e.message, 'body should be a string!', 'should throw when no body');
t.end();
});
test('rest: onPUT: no callback', async (t) => {
const [e] = await tryToCatch(_onPUT, {
name: 'hello',
body: 'world',
});
t.equal(e.message, 'callback should be a function!', 'should throw when no callback');
t.end();
});