From 54a72bd714d4b4a168c2d4170eba6b92fe89f297 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 23 Feb 2018 16:34:18 +0200 Subject: [PATCH] test(static) auth: coverage --- test/static.js | 85 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/test/static.js b/test/static.js index ce384ea8..7c03749d 100644 --- a/test/static.js +++ b/test/static.js @@ -5,14 +5,20 @@ const {promisify} = require('es6-promisify'); const pullout = require('pullout'); const request = require('request'); +const configFn = require('../server/config'); const before = require('./before'); const warp = (fn, ...a) => (...b) => fn(...b, ...a); const _pullout = promisify(pullout); -const get = promisify((url, fn) => { - fn(null, request(url)); +const get = promisify((url, options, fn) => { + if (!fn) { + fn = options; + options = {}; + } + + fn(null, request(url, options)); }); test('cloudcmd: static', (t) => { @@ -91,6 +97,81 @@ test('cloudcmd: /cloudcmd.js', (t) => { }); }); +test('cloudcmd: /cloudcmd.js: auth: access denied', (t) => { + const config = { + auth: true + }; + + before({config}, (port, after) => { + const name = 'cloudcmd.js'; + + get(`http://localhost:${port}/${name}`) + .then((res) => { + res.on('response', ({statusCode}) => { + t.equal(statusCode, 401, 'should return auth'); + }); + res.on('end', () => { + t.end(); + after(); + }); + }) + .catch(console.error); + }); +}); + +test('cloudcmd: /cloudcmd.js: auth: no password', (t) => { + const config = { + auth: true + }; + + const auth = { + username: configFn('username'), + }; + + before({config}, (port, after) => { + const name = 'cloudcmd.js'; + + get(`http://localhost:${port}/${name}`, {auth}) + .then((res) => { + res.on('response', ({statusCode}) => { + t.equal(statusCode, 401, 'should return auth'); + }); + res.on('end', () => { + t.end(); + after(); + }); + }) + .catch(console.error); + }); +}); + +test('cloudcmd: /cloudcmd.js: auth: access granted', (t) => { + const config = { + auth: true + }; + + const auth = { + username: configFn('username'), + password: configFn('password'), + }; + + before({config}, (port, after) => { + const name = 'cloudcmd.js'; + + get(`http://localhost:${port}/${name}`, {auth}) + .then((res) => { + res.on('response', ({statusCode}) => { + t.equal(statusCode, 401, 'should return auth'); + }); + res.on('end', () => { + t.end(); + after(); + }); + }) + .catch(console.error); + }); +}); + test('cloudcmd: /logout', (t) => { before({}, (port, after) => { const name = 'logout';