+ 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);