I have a .env
file with MYVAR=1
variable in it.
server.js
//...
var app = express();
//...
if(app.get("env")==="development"){
require('dotenv').config();
}
console.log("server------",process.env. MYVAR) //outputs 1
if(process.env.MYVAR==1){
//do this
}
if(process.env.MYVAR==2){
//do this
}
module.exports = app;
test.server.js
app = require('../server'),
supertest = require('supertest');
require('dotenv').config();
describe('Server TESTS', function () {
let request = null
let server = null
before(function (done) {
process.env.MYVAR = 2;
server = app.listen()
request = supertest.agent(server)
done()
});
after(function (done) {
console.log("client------",process.env. MYVAR) //outputs 2
server.close(done)
});
})
Problem:
After I run mocha test
, my MYVAR
does not reflect server.js
file and it remains as 1
. Even if I comment out require('dotenv').config();
in server.js
How do I overcome this, maybe my supertest agent structure is not correct. Please advice.
UPDATE:
Instead of server = app.listen()
, server = require('../server').listen()
worked as expected.