await dingus.dispatch(req, res, ctx);
assert(dingus.handlerBadRequest.called);
});
-
+ it('calls handler with additional arguments', async function () {
+ dingus.on('GET', '/', stubHandler, 'foo', 'bar');
+ await dingus.dispatch(req, res, ctx);
+ assert(stubHandler.called);
+ assert.strictEqual(stubHandler.args[0][3], 'foo');
+ assert.strictEqual(stubHandler.args[0][4], 'bar');
+ });
}); // dispatch
describe('parseBody', function () {
size: 8,
blocks: 17,
atimeMs: 1613253436842.815,
- mtimeMs: 1603485933192.8610,
- ctimeMs: 1603485933192.8610,
+ mtimeMs: 1603485933192.861,
+ ctimeMs: 1603485933192.861,
birthtimeMs: 0,
atime: '2021-02-13T21:57:16.843Z',
mtime: '2020-10-23T13:45:33.193Z',
await dingus.serveFile(req, res, ctx, directory, fileName);
assert(dingus.handlerNotFound.called);
});
+ it('requires directory be specified', async function () {
+ await dingus.serveFile(req, res, ctx, '', fileName);
+ assert(!fs.promises.readFile.called);
+ assert(dingus.handlerNotFound.called);
+ });
it('covers fs error', async function () {
const expectedException = new Error('blah');
fs.promises.stat.restore();
assert(pfxDingus.handlerNotFound.called);
});
}); // proxyPrefix
+
+ describe('handlerRedirect', function () {
+ let req, res, ctx;
+ beforeEach(function () {
+ req = {
+ getHeader: sinon.stub(),
+ };
+ res = {
+ setHeader: sinon.stub(),
+ end: sinon.stub(),
+ };
+ ctx = {};
+ });
+ it('covers', async function () {
+ await dingus.handlerRedirect(req, res, ctx);
+ assert(res.setHeader.called);
+ assert(res.end.called);
+ });
+ it('covers non-defaults', async function () {
+ await dingus.handlerRedirect(req, res, ctx, 308);
+ assert(res.setHeader.called);
+ assert(res.end.called);
+ });
+ }); // handlerRedirect
+
+ describe('handlerGetStaticFile', function () {
+ let req, res, ctx;
+ beforeEach(function () {
+ req = {
+ getHeader: sinon.stub(),
+ };
+ res = {
+ setHeader: sinon.stub(),
+ };
+ ctx = {
+ params: {
+ file: '',
+ },
+ };
+ sinon.stub(dingus, 'serveFile');
+ });
+ it('covers', async function () {
+ await dingus.handlerGetStaticFile(req, res, ctx);
+ assert(dingus.serveFile.called);
+ });
+ it('covers specified file', async function () {
+ await dingus.handlerGetStaticFile(req, res, ctx, 'file.txt');
+ assert(dingus.serveFile.called);
+ });
+ }); // handlerGetStaticFile
});
\ No newline at end of file