diff --git a/deploy/compression/index.js b/deploy/compression/index.js index 61193db5e5fe36f44c964e756ad5573953cb4a96..4d0a9caabd9cd18ca9ba5be10f2c44792bf2499e 100644 --- a/deploy/compression/index.js +++ b/deploy/compression/index.js @@ -1,11 +1,15 @@ const BROTLI = `br` const GZIP = `gzip` -const detEncoding = (acceptEncoding) => /br/i.test(acceptEncoding) - ? BROTLI - : /gzip/i.test(acceptEncoding) - ? GZP - : null +const detEncoding = (acceptEncoding = '') => { + if (process.env.NODE_ENV !== 'production') return null + + return /br/i.test(acceptEncoding) + ? BROTLI + : /gzip/i.test(acceptEncoding) + ? GZIP + : null +} const mimeMap = new Map([ ['.png', 'image/png'], diff --git a/deploy/compression/index.spec.js b/deploy/compression/index.spec.js new file mode 100644 index 0000000000000000000000000000000000000000..3c1a3826fb3b8151a73c8d180b8d31b49f82c6c4 --- /dev/null +++ b/deploy/compression/index.spec.js @@ -0,0 +1,39 @@ +const mocha = require('mocha') +const chai = require('chai') +const expect = chai.expect + +const { detEncoding, GZIP, BROTLI } = require('./index') + +const gzip = 'gzip' +const gzipDeflate = 'gzip, deflate' +const gzipDeflateBr = 'gzip, deflate, br' + +describe('compression/index.js', () => { + let nodeEnv + + before(() => { + nodeEnv = process.env.NODE_ENV + }) + + after(() => { + process.env.NODE_ENV = nodeEnv + }) + + describe('#detEncoding', () => { + it('When NODE_ENV is set to production, returns appropriate encoding', () => { + process.env.NODE_ENV = 'production' + expect(detEncoding(null)).to.equal(null) + expect(detEncoding(gzip)).to.equal(GZIP) + expect(detEncoding(gzipDeflate)).to.equal(GZIP) + expect(detEncoding(gzipDeflateBr)).to.equal(BROTLI) + }) + + it('When NODE_ENV is set to non production, returns null always', () => { + process.env.NODE_ENV = 'development' + expect(detEncoding(null)).to.equal(null) + expect(detEncoding(gzip)).to.equal(null) + expect(detEncoding(gzipDeflate)).to.equal(null) + expect(detEncoding(gzipDeflateBr)).to.equal(null) + }) + }) +}) \ No newline at end of file diff --git a/deploy/nehubaConfig/index.js b/deploy/nehubaConfig/index.js index f8ad0929e544c69788649a64e91311c589665d1d..145441ee8d730b5a0df2cabccf6e2612d86f2cb4 100644 --- a/deploy/nehubaConfig/index.js +++ b/deploy/nehubaConfig/index.js @@ -10,7 +10,7 @@ nehubaConfigRouter.get('/:configId', (req, res, next) => { const acceptedEncoding = detEncoding(header) const { configId } = req.params - res.set('Content-Encoding', acceptedEncoding) + if (acceptedEncoding) res.set('Content-Encoding', acceptedEncoding) getTemplateNehubaConfig({ configId, acceptedEncoding, returnAsStream:true}).pipe(res) }) diff --git a/deploy/templates/index.js b/deploy/templates/index.js index dc226218613c3389465e1319ed61585613f3fc5d..d9fbeb8313a14464177a2c00f47fbda8392d707b 100644 --- a/deploy/templates/index.js +++ b/deploy/templates/index.js @@ -34,7 +34,7 @@ router.get('/:template', (req, res, next) => { error: 'template not in the list supported' }) - res.set('Content-Encoding', acceptedEncoding) + if (acceptedEncoding) res.set('Content-Encoding', acceptedEncoding) query.getTemplate({ template, acceptedEncoding, returnAsStream:true }).pipe(res) }) .catch(error => next({ diff --git a/deploy/test/mocha.test.js b/deploy/test/mocha.test.js index 8f55b54de1f2566b8d2348adef651303b0ef1fca..366f5af4a874c10e907272ba0ece2b686248078a 100644 --- a/deploy/test/mocha.test.js +++ b/deploy/test/mocha.test.js @@ -1 +1,2 @@ -require('../auth/util.spec') \ No newline at end of file +require('../auth/util.spec') +require('../compression/index.spec') \ No newline at end of file