diff --git a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts index 332ba0231..d2f68e628 100644 --- a/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts +++ b/apps/api/src/app/portfolio/calculator/portfolio-calculator.ts @@ -1072,7 +1072,7 @@ export abstract class PortfolioCalculator { } } else { // Wait for computation - const job = await this.portfolioSnapshotService.addJobToQueue({ + await this.portfolioSnapshotService.addJobToQueue({ data: { filters: this.filters, userCurrency: this.currency, @@ -1086,7 +1086,11 @@ export abstract class PortfolioCalculator { } }); - await job.finished(); + const job = await this.portfolioSnapshotService.getJob(jobId); + + if (job) { + await job.finished(); + } await this.initialize(); } diff --git a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock.ts b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock.ts index 004eb5ad8..172f44052 100644 --- a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock.ts +++ b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.mock.ts @@ -13,16 +13,22 @@ export const PortfolioSnapshotServiceMock = { name: string; opts?: Bull.JobOptions; }): Promise> { - // Mock the Job object with a finished method const mockJob: Partial> = { - // Mock the finished method to return a resolved promise finished: async () => { await setTimeout(100); - return Promise.resolve('Mocked job finished result'); + return Promise.resolve(); } }; + this.jobsStore.set(opts?.jobId, mockJob); + return Promise.resolve(mockJob as Bull.Job); - } + }, + getJob(jobId: string): Promise> { + const job = this.jobsStore.get(jobId); + + return Promise.resolve(job as Bull.Job); + }, + jobsStore: new Map>>() }; diff --git a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.ts b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.ts index d2c577026..27ebdee53 100644 --- a/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.ts +++ b/apps/api/src/services/queues/portfolio-snapshot/portfolio-snapshot.service.ts @@ -24,4 +24,8 @@ export class PortfolioSnapshotService { }) { return this.portfolioSnapshotQueue.add(name, data, opts); } + + public async getJob(jobId: string) { + return this.portfolioSnapshotQueue.getJob(jobId); + } }