diff --git a/server/route.js b/server/route.js index d652faf7..77efe070 100644 --- a/server/route.js +++ b/server/route.js @@ -5,6 +5,7 @@ const DIR_SERVER = './'; const DIR_COMMON = '../common/'; const fs = require('fs'); +const path = require('path'); const flop = require('flop'); const ponse = require('ponse'); @@ -23,9 +24,9 @@ const Template = require(DIR_SERVER + 'template')(); const prefix = squad(prefixer, apart(config, 'prefix')); const isDev = process.env.NODE_ENV === 'development'; -const getIndexPath = () => { +const getIndexPath = (isDev) => { const dist = isDev ? 'dist-dev' : 'dist'; - return DIR + `${dist}/index.html`; + return path.join(DIR, `${dist}/index.html`); }; const FS = CloudFunc.FS; @@ -36,6 +37,8 @@ module.exports = (req, res, next) => { route(req, res, next); }; +module.exports._getIndexPath = getIndexPath; + /** * additional processing of index file */ @@ -142,7 +145,7 @@ function route(request, response, callback) { if (!error) return buildIndex(dir, (error, data) => { - p.name = getIndexPath(); + p.name = getIndexPath(isDev); if (error) return ponse.sendError(error, p); diff --git a/test/server/route.js b/test/server/route.js index a0a6ae6f..9a01a248 100644 --- a/test/server/route.js +++ b/test/server/route.js @@ -164,14 +164,15 @@ test('cloudcmd: route: keys panel', (t) => { }); test('cloudcmd: route: no index', (t) => { - const name = path.join(__dirname, '../../dist-dev/index.html'); - const nameAfter = path.join(__dirname, '../../dist-dev/index1.html'); + const name = path.join(__dirname, '../../dist/index.html'); + const nameAfter = path.join(__dirname, '../../dist/index1.html'); fs.renameSync(name, nameAfter); before({}, (port, after) => { getStr(`http://localhost:${port}/`) .then((result) => { + console.log(result); fs.renameSync(nameAfter, name); t.equal(result.indexOf('ENOENT'), 0, 'should not found index.html'); t.end(); @@ -180,6 +181,22 @@ test('cloudcmd: route: no index', (t) => { }); }); +test('cloudcmd: route: getIndexPath: production', (t) => { + const isDev = false; + const name = path.join(__dirname, '..', '..', 'dist', 'index.html'); + + t.equal(route._getIndexPath(isDev), name); + t.end(); +}); + +test('cloudcmd: route: getIndexPath: development', (t) => { + const isDev = true; + const name = path.join(__dirname, '..', '..', 'dist-dev', 'index.html'); + + t.equal(route._getIndexPath(isDev), name); + t.end(); +}); + test('cloudcmd: route: file', (t) => { const root = path.join(__dirname, '..', 'fixture', 'empty-file'); const config = {