Spaces:
Paused
Paused
| import { describe, it, expect, beforeEach, vi } from 'vitest'; | |
| import request from 'supertest'; | |
| // force resolution failure to hit catch | |
| vi.mock('../../src/services/ytdlp.service.js', async (importOriginal) => { | |
| const actual = | |
| await importOriginal< | |
| typeof import('../../src/services/ytdlp.service.js') | |
| >(); | |
| return { ...actual, getVideoInfo: vi.fn().mockResolvedValue(null) }; | |
| }); | |
| import app from '../../src/app.js'; | |
| import { | |
| getMetrics, | |
| resetMetrics, | |
| } from '../../src/utils/infra/metrics.util.js'; | |
| describe('controller failure metrics', () => { | |
| beforeEach(() => { | |
| resetMetrics(); | |
| }); | |
| it('records a stream_urls failure when resolution fails', async () => { | |
| const res = await request(app) | |
| .get('/stream-urls') | |
| .query({ url: 'https://www.youtube.com/watch?v=nTbA7qrEsP0' }); | |
| expect(res.status).toBe(500); | |
| expect(getMetrics().failures.stream_urls).toBe(1); | |
| }); | |
| }); | |