diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..da218ec --- /dev/null +++ b/.env.test @@ -0,0 +1,7 @@ +NODE_ENV=test +PORT=4040 +MONGO_HOST=mongodb://localhost/hl7-telescoper-api-server-development +MONGO_PORT=27017 +JWT_SECRET=0a6b944d-d2fb-46fc-a85e-0295c986cd9f +JWT_EXP_TIME=1h +FILE_UPLOAD_PATH=data/hl7-uploads-test \ No newline at end of file diff --git a/config/config.js b/config/config.js index b3f2954..62ef7b9 100644 --- a/config/config.js +++ b/config/config.js @@ -1,5 +1,14 @@ const Joi = require('joi'); +const dotenv = require('dotenv') +// require and configure dotenv, will load vars in .env or .env.test in PROCESS.ENV +if (process.env.NODE_ENV === 'test') { + console.log('config.js: Using .env.test') + dotenv.config({ path: '.env.test' }); +} else { + console.log('config.js: Using .env') + dotenv.config(); +} // require and configure dotenv, will load vars in .env in PROCESS.ENV require('dotenv').config(); diff --git a/server/hl7/hl7.test.js b/server/hl7/hl7.test.js index acff295..752f086 100644 --- a/server/hl7/hl7.test.js +++ b/server/hl7/hl7.test.js @@ -4,6 +4,7 @@ const httpStatus = require('http-status'); const chai = require('chai'); // eslint-disable-line import/newline-after-import const expect = chai.expect; const app = require('../../index'); +const fs = require('fs'); chai.config.includeStack = true; @@ -11,6 +12,11 @@ chai.config.includeStack = true; * root level hooks */ after((done) => { + // Deleting any sample HL7 message used for testing if they exist already before running tests + fs.unlinkSync('data/hl7-uploads-test/500HL7Messages.txt', (err) => { + if (err) throw err; + console.log('data/hl7-uploads-test/500HL7Messages.txt was deleted'); + }); // required because https://github.com/Automattic/mongoose/issues/1251#issuecomment-65793092 mongoose.models = {}; mongoose.modelSchemas = {}; @@ -25,6 +31,10 @@ const user = { }; let userToken = ''; before((done) => { + if(!fs.existsSync('data/hl7-uploads-test')) { + fs.mkdirSync('data/hl7-uploads-test') + } + // create a user request(app) .post('/api/users') @@ -46,7 +56,7 @@ before((done) => { describe('## File Upload', () => { describe('# POST /api/hl7/upload', () => { - it('should upload a file to /data/hl7-uploads', (done) => { + it('should upload a file to /data/hl7-uploads-test', (done) => { request(app) .post('/api/hl7/upload') .set('Authorization', `Bearer ${userToken}`) diff --git a/yarn.lock b/yarn.lock index a775145..7029e45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -294,7 +294,7 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bcrypt@false3.0.6: +bcrypt@3.0.6: version "3.0.6" resolved "https://registry.yarnpkg.com/bcrypt/-/bcrypt-3.0.6.tgz#f607846df62d27e60d5e795612c4f67d70206eb2" integrity sha512-taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==