Forráskód Böngészése

fix: import assets on new install (#2044)

Jason Rasmussen 2 éve
szülő
commit
6239b3b309

+ 12 - 1
server/libs/domain/src/search/search.service.spec.ts

@@ -173,12 +173,23 @@ describe(SearchService.name, () => {
   });
 
   describe('handleIndexAssets', () => {
+    it('should call done, even when there are no assets', async () => {
+      assetMock.getAll.mockResolvedValue([]);
+
+      await sut.handleIndexAssets();
+
+      expect(searchMock.importAssets).toHaveBeenCalledWith([], true);
+    });
+
     it('should index all the assets', async () => {
       assetMock.getAll.mockResolvedValue([assetEntityStub.image]);
 
       await sut.handleIndexAssets();
 
-      expect(searchMock.importAssets).toHaveBeenCalledWith([assetEntityStub.image], true);
+      expect(searchMock.importAssets.mock.calls).toEqual([
+        [[assetEntityStub.image], false],
+        [[], true],
+      ]);
     });
 
     it('should log an error', async () => {

+ 3 - 4
server/libs/domain/src/search/search.service.ts

@@ -148,12 +148,11 @@ export class SearchService {
 
       const chunkSize = 1000;
       for (let i = 0; i < assets.length; i += chunkSize) {
-        const end = i + chunkSize;
-        const chunk = assets.slice(i, end);
-        const done = end >= assets.length - 1;
-        await this.searchRepository.importAssets(chunk, done);
+        await this.searchRepository.importAssets(assets.slice(i, i + chunkSize), false);
       }
 
+      await this.searchRepository.importAssets([], true);
+
       this.logger.debug('Finished re-indexing all assets');
     } catch (error: any) {
       this.logger.error(`Unable to index all assets`, error?.stack);