diff --git a/server.js b/server.js index 3a9b07b51..cb58f9bd3 100644 --- a/server.js +++ b/server.js @@ -1,6 +1,5 @@ const DB = require('./server/db.js'); const server = require('./server/app.js'); - const config = require('./server/config.js'); DB.connect(config).then(()=>{ diff --git a/server/app.js b/server/app.js index db2eaac5f..c9ebf6a19 100644 --- a/server/app.js +++ b/server/app.js @@ -4,6 +4,7 @@ const jwt = require('jwt-simple'); const express = require('express'); const yaml = require('js-yaml'); const app = express(); +const config = require('./config.js'); const homebrewApi = require('./homebrew.api.js'); const GoogleActions = require('./googleActions.js'); @@ -13,6 +14,9 @@ const asyncHandler = require('express-async-handler'); const brewAccessTypes = ['edit', 'share', 'raw']; +// Set working directory to project root +process.chdir(`${__dirname}/..`); + //Get the brew object from the HB database or Google Drive const getBrewFromId = asyncHandler(async (id, accessType)=>{ if(!brewAccessTypes.includes(accessType)) @@ -62,22 +66,13 @@ const splitTextStyleAndMetadata = (brew)=>{ } }; -app.use('/', serveCompressedStaticAssets(`${__dirname}/../build`)); - -process.chdir(__dirname); +app.use('/', serveCompressedStaticAssets(`build`)); //app.use(express.static(`${__dirname}/build`)); app.use(require('body-parser').json({ limit: '25mb' })); app.use(require('cookie-parser')()); app.use(require('./forcessl.mw.js')); -// FIXME: the config should be passed as an argument for the app -const config = require('nconf') - .argv() - .env({ lowerCase: true }) - .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) - .file('defaults', { file: 'config/default.json' }); - //Account Middleware app.use((req, res, next)=>{ if(req.cookies && req.cookies.nc_session){ @@ -99,16 +94,16 @@ app.use(homebrewApi); app.use(require('./admin.api.js')); const HomebrewModel = require('./homebrew.model.js').model; -const welcomeText = require('fs').readFileSync('./../client/homebrew/pages/homePage/welcome_msg.md', 'utf8'); -const welcomeTextV3 = require('fs').readFileSync('./../client/homebrew/pages/homePage/welcome_msg_v3.md', 'utf8'); -const changelogText = require('fs').readFileSync('./../changelog.md', 'utf8'); -const faqText = require('fs').readFileSync('./../faq.md', 'utf8'); +const welcomeText = require('fs').readFileSync('client/homebrew/pages/homePage/welcome_msg.md', 'utf8'); +const welcomeTextV3 = require('fs').readFileSync('client/homebrew/pages/homePage/welcome_msg_v3.md', 'utf8'); +const changelogText = require('fs').readFileSync('changelog.md', 'utf8'); +const faqText = require('fs').readFileSync('faq.md', 'utf8'); String.prototype.replaceAll = function(s, r){return this.split(s).join(r);}; //Robots.txt app.get('/robots.txt', (req, res)=>{ - return res.sendFile(`${__dirname}/robots.txt`); + return res.sendFile(`robots.txt`, { root: process.cwd() }); }); //Home page diff --git a/server/config.js b/server/config.js index a0cb1a1b0..fc50e68ba 100644 --- a/server/config.js +++ b/server/config.js @@ -1,7 +1,5 @@ -const path = require('path'); - module.exports = require('nconf') .argv() .env({ lowerCase: true }) - .file('environment', { file: path.resolve(__dirname, '../config/${process.env.NODE_ENV}.json') }) - .file('default', { file: path.resolve(__dirname, '../config/default.json') }); + .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) + .file('defaults', { file: 'config/default.json' }); diff --git a/tests/routes/static-pages.test.js b/tests/routes/static-pages.test.js index 0d86bc307..e69706f56 100644 --- a/tests/routes/static-pages.test.js +++ b/tests/routes/static-pages.test.js @@ -21,9 +21,7 @@ describe('Tests for static pages', ()=>{ return app.get('/faq').expect(200); }); - // FIXME: robots.txt file can't be properly loaded under testing environment, - // most likely due to __dirname being different from what is expected - it.skip('robots.txt works', ()=>{ + it('robots.txt works', ()=>{ return app.get('/robots.txt').expect(200); }); });