Skip to content

Commit

Permalink
set body to empty string
Browse files Browse the repository at this point in the history
  • Loading branch information
mapsam committed Mar 11, 2024
1 parent d8ce98b commit b34324f
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
7 changes: 7 additions & 0 deletions lib/node/node-layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,13 @@ function createRequestStreams(request) {
gotOptions.body = JSON.stringify(request.body);
}

if (
['POST', 'PUT', 'PATCH', 'DELETE'].includes(request.method) &&
!request.body
) {
gotOptions.body = '';
}

var gotStream = got.stream(url, gotOptions);

gotStream.setEncoding(request.encoding);
Expand Down
43 changes: 43 additions & 0 deletions test/node-interface.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,46 @@ describe('test node progress events', () => {
});
});
});

describe('test empty request bodies', () => {
let server;
let createLocalClient;
const { mockToken } = tu;

beforeAll(() => {
return tu.mockServer().then(s => {
server = s;
createLocalClient = server.localClient(nodeClient);
});
});

afterAll(done => {
server.close(done);
});

afterEach(() => {
server.reset();
});

beforeEach(() => {
server.setResponse((req, res) => {
res.append('Content-Type', 'application/json; charset=utf-8');
res.json({ mockStyle: true });
});
});

test('request for POST, PATCH, PUT, or DELETE without an explicit body should include empty string as body', () => {
// https://github.com/sindresorhus/got/issues/2303
const accessToken = mockToken();
const client = createLocalClient({ accessToken });
const request = client.createRequest({
method: 'DELETE',
path: '/tilesets/v1/:tilesetId',
params: { tilesetId: 'foo.bar' }
});

return request.send().then(({ statusCode }) => {
expect(statusCode).toBe(200);
});
});
});

0 comments on commit b34324f

Please sign in to comment.