mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
795 B
32 lines
795 B
import type { Job, JobId, JobOptions } from 'bull';
|
|
import { setTimeout } from 'timers/promises';
|
|
|
|
import { PortfolioSnapshotQueueJob } from './interfaces/portfolio-snapshot-queue-job.interface';
|
|
|
|
export const PortfolioSnapshotServiceMock = {
|
|
addJobToQueue({
|
|
opts
|
|
}: {
|
|
data: PortfolioSnapshotQueueJob;
|
|
name: string;
|
|
opts?: JobOptions;
|
|
}): Promise<Job> {
|
|
const mockJob: Partial<Job> = {
|
|
finished: async () => {
|
|
await setTimeout(100);
|
|
|
|
return Promise.resolve();
|
|
}
|
|
};
|
|
|
|
this.jobsStore.set(opts?.jobId, mockJob);
|
|
|
|
return Promise.resolve(mockJob as Job);
|
|
},
|
|
getJob(jobId: JobId): Promise<Job> {
|
|
const job = this.jobsStore.get(jobId);
|
|
|
|
return Promise.resolve(job as Job);
|
|
},
|
|
jobsStore: new Map<JobId, Partial<Job>>()
|
|
};
|
|
|