X-Git-Url: http://git.squeep.com/?p=squeep-api-dingus;a=blobdiff_plain;f=test%2Flib%2Fdingus.js;h=356974fee0f48342dd80cfd710ccbd91bb64b210;hp=b478a454aa3eb5b4b3ad8027382e4f5f23bd0681;hb=3b70d88ed735041cb0ec358dfc478b825c1c12e7;hpb=4ec136ae8257a1a9f40d83ad61c57954226e79e0 diff --git a/test/lib/dingus.js b/test/lib/dingus.js index b478a45..356974f 100644 --- a/test/lib/dingus.js +++ b/test/lib/dingus.js @@ -538,7 +538,7 @@ describe('Dingus', function () { }); // bodyData describe('ingestBody', function () { - it('covers', async function () { + it('ingests json', async function () { const req = {}; const res = {}; const ctx = {}; @@ -546,6 +546,30 @@ describe('Dingus', function () { sinon.stub(Dingus, 'getRequestContentType').returns(Enum.ContentType.ApplicationJson); await dingus.ingestBody(req, res, ctx); assert.deepStrictEqual(ctx.parsedBody, { foo: 'bar' }); + assert.deepStrictEqual(ctx.rawBody, undefined); + }); + it('persists rawBody', async function () { + const req = {}; + const res = {}; + const ctx = {}; + const body = '{"foo":"bar"}'; + sinon.stub(dingus, 'bodyData').resolves(body); + sinon.stub(Dingus, 'getRequestContentType').returns(Enum.ContentType.ApplicationJson); + await dingus.ingestBody(req, res, ctx, { persistRawBody: true }); + assert.deepStrictEqual(ctx.parsedBody, { foo: 'bar' }); + assert.deepStrictEqual(ctx.rawBody, body); + }); + it('skips parsing empty body', async function () { + const req = {}; + const res = {}; + const ctx = {}; + const body = ''; + sinon.stub(dingus, 'bodyData').resolves(body); + sinon.stub(Dingus, 'getRequestContentType').returns(Enum.ContentType.ApplicationJson); + sinon.spy(dingus, 'parseBody'); + await dingus.ingestBody(req, res, ctx, { parseEmptyBody: false }); + assert.deepStrictEqual(ctx.parsedBody, undefined); + assert(dingus.parseBody.notCalled); }); }); // ingestBody