diff --git a/package.json b/package.json index e424dc2d..d61eda47 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "build:start:dev": "redrun build:client:dev start:dev", "lint": "redrun lint:*", "lintjs": "redrun lint:client lint:server lint:test", - "lint:server": "eslint -c .eslintrc.server $npm_package_config_dirs", + "lint:server": "eslint -c .eslintrc.server $npm_package_config_dirs --ignore-pattern *.spec.js", "lint:test": "eslint $npm_package_config_dirs_test", "lint:client": "eslint --env browser client", "lint:css": "stylelint css/*.css", @@ -57,8 +57,9 @@ "fix:lint:client": "redrun lint:client -- --fix", "fix:lint:test": "redrun lint:test -- --fix", "fix:lint:server": "redrun lint:server -- --fix", - "test": "tape 'test/**/*.js' 'client/**/*.spec.js'", + "test": "tape 'test/**/*.js' '{client,server}/**/*.spec.js'", "test:client": "tape 'test/client/**/*.js'", + "test:server": "tape 'test/**/*.js' 'server/**/*.spec.js'", "wisdom": "redrun build", "prewisdom": "redrun lint test", "wisdom:type": "bin/release.js", diff --git a/server/rest/index.js b/server/rest/index.js index b377f1ee..a954bbe3 100644 --- a/server/rest/index.js +++ b/server/rest/index.js @@ -10,6 +10,7 @@ const root = require(DIR + 'root'); const config = require(DIR + 'config'); const CloudFunc = require(DIR_COMMON + 'cloudfunc'); const markdown = require(DIR + 'markdown'); +const info = require('./info'); const jaguar = require('jaguar'); const onezip = require('onezip'); @@ -116,9 +117,7 @@ function onGET(params, callback) { switch(cmd) { case '': - p.data = json.stringify({ - info: 'Cloud Commander API v1' - }); + p.data = json.stringify(info()); callback(null, {name: 'api.json'}, p.data); break; diff --git a/server/rest/info.js b/server/rest/info.js new file mode 100644 index 00000000..eeb38c66 --- /dev/null +++ b/server/rest/info.js @@ -0,0 +1,15 @@ +'use strict'; + +const version = require('../../package').version; +const format = require('format-io'); + +const getMemory = () => { + const rss = process.memoryUsage().rss; + return format.size(rss); +}; + +module.exports = () => ({ + version, + memory: getMemory(), +}); + diff --git a/server/rest/info.spec.js b/server/rest/info.spec.js new file mode 100644 index 00000000..f3362da9 --- /dev/null +++ b/server/rest/info.spec.js @@ -0,0 +1,24 @@ +'use strict'; + +const test = require('tape'); +const info = require('./info'); +const sinon = require('sinon'); + +test('cloudcmd: rest: info', (t) => { + const {memoryUsage} = process; + + const _memoryUsage = sinon + .stub() + .returns({}); + + process.memoryUsage = _memoryUsage; + + info(); + + process.memoryUsage = memoryUsage; + + t.ok(_memoryUsage.calledWith(), 'should call memoryUsage'); + + t.end(); +}); +