All files / src/modules/billing usage-aggregation.scheduler.ts

100% Statements 10/10
80% Branches 4/5
100% Functions 2/2
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 241x 1x 1x     1x 1x     2x 1x                          
import { InjectQueue } from '@nestjs/bullmq';
import { Injectable, OnModuleInit } from '@nestjs/common';
import { Queue } from 'bullmq';
 
@Injectable()
export class UsageAggregationScheduler implements OnModuleInit {
  constructor(@InjectQueue('usage-ledger') private readonly usageQueue: Queue) {}
 
  async onModuleInit(): Promise<void> {
    if (process.env.NODE_ENV === 'test') return;
    await this.usageQueue.add(
      'aggregate-month',
      {},
      {
        repeat: {
          cron: '0 0 1 * *',
          tz: 'UTC',
        } as any,
        jobId: 'usage-ledger-monthly',
      },
    );
  }
}