X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Flib%2Fdingus.js;fp=test%2Flib%2Fdingus.js;h=60b0dad59d68ea21bfba45c759df89b5a7ccebe9;hb=ca35f167826c0732571da5f35e3c25881d138b79;hp=a1070a558c534a24c4f2d80a529e24bd8b7e64ed;hpb=29837f0eeb9fcb4c53426e5bd89e9bdf7e9d961b;p=squeep-api-dingus diff --git a/test/lib/dingus.js b/test/lib/dingus.js index a1070a5..60b0dad 100644 --- a/test/lib/dingus.js +++ b/test/lib/dingus.js @@ -13,8 +13,10 @@ const Enum = require('../../lib/enum'); const noExpectedException = 'did not get expected exception'; describe('Dingus', function () { - const dingus = new Dingus(); - + let dingus; + beforeEach(function () { + dingus = new Dingus(); + }); afterEach(function () { sinon.restore(); }); @@ -224,7 +226,7 @@ describe('Dingus', function () { dingus.on('GET', '/', () => {}); assert(stubOn.called); }); - }); + }); // on describe('setEndBodyHandler', function () { let req, res, ctx, handler, origEnd, origWrite; @@ -550,7 +552,7 @@ describe('Dingus', function () { dingus.strictAccept = false; dingus.setResponseType(['my/type'], req, res, ctx); assert.strictEqual(ctx.responseType, 'my/type'); - }); + }); }); // setResponseType @@ -591,6 +593,33 @@ describe('Dingus', function () { }); }); // _readFileInfo + describe('_serveFileMetaHeaders', function () { + let res, directory, fileName; + beforeEach(function () { + sinon.stub(dingus, '_readFileInfo'); + res = { + setHeader: sinon.stub(), + }; + directory = '/path'; + fileName = 'filename'; + }); + it('covers no meta file', async function() { + dingus._readFileInfo.resolves([null, null]); + await dingus._serveFileMetaHeaders(res, directory, fileName); + assert(!res.setHeader.called); + }); + it('adds extra headers', async function () { + dingus._readFileInfo.resolves([{}, Buffer.from(`Link: ; rel="relation" +X-Folded-Header: data + data under + the fold +Content-Type: image/sgi +`)]); + await dingus._serveFileMetaHeaders(res, directory, fileName); + assert(res.setHeader.called); + }); + }); // _serveFileMetaHeaders + describe('serveFile', function () { const path = require('path'); let ctx, req, res, directory, fileName, filestats; @@ -649,6 +678,12 @@ describe('Dingus', function () { assert(fs.promises.readFile.called); assert(!dingus.handlerNotFound.called); }); + it('covers no meta headers', async function () { + dingus.staticMetadata = false; + await dingus.serveFile(req, res, ctx, directory, fileName); + assert(fs.promises.readFile.called); + assert(!dingus.handlerNotFound.called); + }); it('does not serve dot-file', async function () { fileName = '.example'; await dingus.serveFile(req, res, ctx, directory, fileName);