Skip to content

Commit 4e11b97

Browse files
fix(avatar): include zero file size for Content-Length header
Closes #39187
1 parent 99fc95a commit 4e11b97

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

apps/meteor/server/routes/avatar/utils.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,19 @@ describe('#serveAvatarFile()', () => {
8181
expect(response.setHeader.getCall(3).calledWith('Content-Length', file.size)).to.be.true;
8282
expect(mocks.fileUploadGet.calledWith(file, request, response, next)).to.be.true;
8383
});
84+
85+
it('should serve avatar and set Content-Length 0 when file size is exactly 0', () => {
86+
const zeroSizeFile = { uploadedAt: new Date(0), type: 'image/png', size: 0 };
87+
const request = { headers: { 'if-modified-since': new Date(200000).toUTCString() } };
88+
serveAvatarFile(zeroSizeFile, request, response, next);
89+
90+
const contentLengthCall = response.setHeader.getCalls().find(
91+
(c) => c.args[0] === 'Content-Length'
92+
);
93+
94+
expect(contentLengthCall).to.exist;
95+
expect(contentLengthCall?.args[1]).to.equal(0);
96+
});
8497
});
8598

8699
describe('#serveSvgAvatarInRequestedFormat()', () => {

apps/meteor/server/routes/avatar/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export const serveAvatarFile = (file: IUpload, req: IIncomingMessage, res: Serve
4040
res.setHeader('Content-Type', file.type);
4141
}
4242

43-
if (file.size) {
43+
if (typeof file.size === 'number') {
4444
res.setHeader('Content-Length', file.size);
4545
}
4646

0 commit comments

Comments
 (0)