diff --git a/src/pipeline-tasks/pipeline-task.consumer.spec.ts b/src/pipeline-tasks/pipeline-task.consumer.spec.ts new file mode 100644 index 0000000..566c45f --- /dev/null +++ b/src/pipeline-tasks/pipeline-task.consumer.spec.ts @@ -0,0 +1,48 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { Job } from 'bull'; +import { PipelineUnits } from './enums/pipeline-units.enum'; +import { PipelineTaskConsumer } from './pipeline-task.consumer'; +import { PipelineTask } from './pipeline-task.entity'; +import { PipelineTasksService } from './pipeline-tasks.service'; + +describe('PipelineTaskConsumer', () => { + let consumer: PipelineTaskConsumer; + let tasksService: PipelineTasksService; + const getJob = () => + ({ + data: { + pipelineId: 'test', + units: [PipelineUnits.checkout, PipelineUnits.test], + }, + } as Job); + + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [ + { + provide: PipelineTasksService, + useValue: { + doNextTask: () => undefined, + }, + }, + PipelineTaskConsumer, + ], + }).compile(); + + tasksService = module.get(PipelineTasksService); + consumer = module.get(PipelineTaskConsumer); + }); + + it('should be defined', () => { + expect(consumer).toBeDefined(); + }); + + describe('onCompleted', () => { + it('should call doNextTask()', () => { + const job = getJob(); + const doNextTask = jest.spyOn(tasksService, 'doNextTask'); + consumer.onCompleted(job); + expect(doNextTask).toHaveBeenCalledTimes(1); + }); + }); +}); diff --git a/src/pipeline-tasks/pipeline-tasks.module.ts b/src/pipeline-tasks/pipeline-tasks.module.ts index f10fd99..447f9d1 100644 --- a/src/pipeline-tasks/pipeline-tasks.module.ts +++ b/src/pipeline-tasks/pipeline-tasks.module.ts @@ -4,10 +4,10 @@ import { PipelineTasksResolver } from './pipeline-tasks.resolver'; import { TypeOrmModule } from '@nestjs/typeorm'; import { PipelineTask } from './pipeline-task.entity'; import { Pipeline } from '../pipelines/pipeline.entity'; -import { BullModule } from '@nestjs/bull'; +import { ReposModule } from '../repos/repos.module'; @Module({ - imports: [TypeOrmModule.forFeature([PipelineTask, Pipeline])], + imports: [TypeOrmModule.forFeature([PipelineTask, Pipeline]), ReposModule], providers: [PipelineTasksService, PipelineTasksResolver], }) export class PipelineTasksModule {} diff --git a/src/repos/repos.module.ts b/src/repos/repos.module.ts index 0e22a10..c4ec2e7 100644 --- a/src/repos/repos.module.ts +++ b/src/repos/repos.module.ts @@ -9,5 +9,6 @@ import { ProjectsModule } from '../projects/projects.module'; @Module({ imports: [TypeOrmModule.forFeature([Project]), ConfigModule, ProjectsModule], providers: [ReposResolver, ReposService], + exports: [ReposService], }) export class ReposModule {}