From 7745fb0e9b21f805e8759d97071ad0aa9fe3e91c Mon Sep 17 00:00:00 2001 From: coderaiser Date: Tue, 17 Apr 2018 11:21:46 +0300 Subject: [PATCH] test(before) add connect --- .eslintrc | 2 +- test/before.js | 13 +++++++++++-- test/server/route.js | 23 ++++++++++------------- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/.eslintrc b/.eslintrc index b7423806..3b54c586 100644 --- a/.eslintrc +++ b/.eslintrc @@ -4,7 +4,7 @@ "node": true, }, "parserOptions": { - "ecmaVersion": 6, + "ecmaVersion": 2017, "sourceType": "module", "ecmaFeatures": { "experimentalObjectRestSpread": true diff --git a/test/before.js b/test/before.js index b254b43d..6e85b15f 100644 --- a/test/before.js +++ b/test/before.js @@ -7,6 +7,7 @@ const express = require('express'); const io = require('socket.io'); const writejson = require('writejson'); const readjson = require('readjson'); +const {promisify} = require('es6-promisify'); process.env.NODE_ENV = 'development'; @@ -16,7 +17,9 @@ const {assign} = Object; const pathConfig = os.homedir() + '/.cloudcmd.json'; const currentConfig = readjson.sync.try(pathConfig); -module.exports = (options, fn = options) => { +module.exports = before; + +function before(options, fn = options) { if (fn === options) { options = {}; } @@ -44,7 +47,13 @@ module.exports = (options, fn = options) => { server.listen(() => { fn(server.address().port, after); }); -}; +} + +module.exports.connect = promisify((options, fn = options) => { + before(options, (port, done) => { + fn(null, {port, done}); + }); +}); function defaultConfig() { return { diff --git a/test/server/route.js b/test/server/route.js index 3da1543c..61e9c3c2 100644 --- a/test/server/route.js +++ b/test/server/route.js @@ -12,7 +12,6 @@ const rootDir = '../..'; const routePath = `${rootDir}/server/route`; const beforePath = '../before'; const configPath = `${rootDir}/server/config`; -const cloudcmdPath = `${rootDir}/server/cloudcmd`; const { _getIndexPath, @@ -20,6 +19,7 @@ const { const route = require(routePath); const before = require(beforePath); +const {connect} = before; const clean = require('clear-module'); @@ -305,7 +305,7 @@ test('cloudcmd: route: realpath: error', (t) => { }); }); -test('cloudcmd: route: sendIndex: error', (t) => { +test('cloudcmd: route: sendIndex: error', async (t) => { const error = Error('index path error'); const {readFile} = fs; const isDev = true; @@ -314,22 +314,19 @@ test('cloudcmd: route: sendIndex: error', (t) => { fs.readFile = (name, options, fn = options) => { if (name === indexPath) { fn(error); - fs.readFile = readFile;; + fs.readFile = readFile; return; - }; + } return readFile(name, options, fn); }; - const config = {}; + const {port, done} = await connect(); + const data = await getStr(`http://localhost:${port}`); - before({config}, (port, after) => { - getStr(`http://localhost:${port}`) - .then((data) => { - t.equal(data, error.message, 'should return error'); - t.end(); - after(); - }) - }); + t.equal(data, error.message, 'should return error'); + t.end(); + + done(); });