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();
});
dingus.on('GET', '/', () => {});
assert(stubOn.called);
});
- });
+ }); // on
describe('setEndBodyHandler', function () {
let req, res, ctx, handler, origEnd, origWrite;
dingus.strictAccept = false;
dingus.setResponseType(['my/type'], req, res, ctx);
assert.strictEqual(ctx.responseType, 'my/type');
- });
+ });
}); // setResponseType
});
}); // _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: <https://example.com/>; 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;
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);