From b0a9468da711b1679ce34931fb60df52a2d9a715 Mon Sep 17 00:00:00 2001 From: Priyanshu Date: Tue, 18 Aug 2026 17:26:37 +0530 Subject: [PATCH] fix(server): guard createAll against empty values list (#30837) Co-authored-by: priyanshuANDcoad --- server/src/repositories/asset.repository.ts | 3 +++ .../medium/specs/repositories/asset.repository.spec.ts | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/server/src/repositories/asset.repository.ts b/server/src/repositories/asset.repository.ts index add3f0a24..b3f23399c 100644 --- a/server/src/repositories/asset.repository.ts +++ b/server/src/repositories/asset.repository.ts @@ -448,6 +448,9 @@ export class AssetRepository { @ChunkedArray({ chunkSize: 4000 }) async createAll(assets: Insertable[]) { + if (assets.length === 0) { + return []; + } const ids = await this.db.insertInto('asset').values(assets).returning('id').execute(); return ids.map(({ id }) => id); } diff --git a/server/test/medium/specs/repositories/asset.repository.spec.ts b/server/test/medium/specs/repositories/asset.repository.spec.ts index 2e449ae80..b623270b3 100644 --- a/server/test/medium/specs/repositories/asset.repository.spec.ts +++ b/server/test/medium/specs/repositories/asset.repository.spec.ts @@ -204,4 +204,11 @@ describe(AssetRepository.name, () => { ).resolves.toEqual({ lockedProperties: null }); }); }); + + describe('createAll', () => { + it('should return an empty array when given an empty input', async () => { + const { sut } = setup(); + await expect(sut.createAll([])).resolves.toStrictEqual([]); + }); + }); });