This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
// src/services/analyticsService.server.test.ts
|
||||
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
||||
import { AnalyticsService } from './analyticsService.server';
|
||||
import { logger } from './logger.server';
|
||||
@@ -130,13 +131,14 @@ describe('AnalyticsService', () => {
|
||||
// Get the promise from the service method.
|
||||
const promise = service.processWeeklyReportJob(job);
|
||||
|
||||
// Capture the expectation promise BEFORE triggering the rejection.
|
||||
const expectation = expect(promise).rejects.toThrow('Processing failed');
|
||||
|
||||
// Advance timers to trigger the part of the code that throws.
|
||||
await vi.advanceTimersByTimeAsync(30000);
|
||||
|
||||
// Now, assert that the promise rejects as expected.
|
||||
// This structure avoids an unhandled promise rejection that can occur
|
||||
// when awaiting a rejecting promise inside a helper function without a try/catch.
|
||||
await expect(promise).rejects.toThrow('Processing failed');
|
||||
// Await the expectation to ensure assertions ran.
|
||||
await expectation;
|
||||
|
||||
// Verify the side effect (error logging) after the rejection is confirmed.
|
||||
expect(mockLoggerInstance.error).toHaveBeenCalledWith(
|
||||
|
||||
Reference in New Issue
Block a user