Skip to content

Commit 928e658

Browse files
committed
feat: add ETag header to HEAD response and update tests
1 parent 052dd2b commit 928e658

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

src/webdav/handlers/HEAD.handler.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export class HEADRequestHandler implements WebDavMethodHandler {
1919

2020
webdavLogger.info(`[HEAD] [${driveItem.uuid}] Found Drive item`);
2121

22+
res.header('ETag', WebDavUtils.getItemETag(driveItem));
23+
2224
if (driveItem.itemType === 'file') {
2325
const range = req.headers['range'];
2426
const rangeOptions = NetworkUtils.parseRangeHeader({

test/webdav/handlers/HEAD.handler.test.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ describe('HEAD request handler', () => {
4040

4141
await sut.handle(request, response);
4242
expect(response.status).toHaveBeenCalledWith(200);
43+
expect(response.header).toHaveBeenCalledWith('ETag', WebDavUtils.getItemETag(mockFolder));
4344
expect(getRequestedResourceStub).toHaveBeenCalledOnce();
4445
expect(getFolderMetadataStub).toHaveBeenCalledOnce();
4546
});
@@ -68,6 +69,7 @@ describe('HEAD request handler', () => {
6869
expect(response.status).toHaveBeenCalledWith(200);
6970
expect(response.header).toHaveBeenCalledWith('Content-Type', 'application/octet-stream');
7071
expect(response.header).toHaveBeenCalledWith('Content-length', mockFile.size.toString());
72+
expect(response.header).toHaveBeenCalledWith('ETag', WebDavUtils.getItemETag(mockFile));
7173
expect(getRequestedResourceStub).toHaveBeenCalledOnce();
7274
expect(getFileMetadataStub).toHaveBeenCalledOnce();
7375
});
@@ -100,6 +102,7 @@ describe('HEAD request handler', () => {
100102
expect(response.status).toHaveBeenCalledWith(200);
101103
expect(response.header).toHaveBeenCalledWith('Content-length', (mockSize - rangeStart).toString());
102104
expect(response.header).toHaveBeenCalledWith('Content-Type', 'application/octet-stream');
105+
expect(response.header).toHaveBeenCalledWith('ETag', WebDavUtils.getItemETag(mockFile));
103106
expect(getRequestedResourceStub).toHaveBeenCalledOnce();
104107
expect(getFileMetadataStub).toHaveBeenCalledOnce();
105108
});

0 commit comments

Comments
 (0)