obs-ss-plugin-webui/app/api/__tests__/streams.test.ts
Decobus b974de37e8
All checks were successful
Lint and Build / build (pull_request) Successful in 2m48s
Fix ESLint warnings and errors
- Remove unused imports in test files
- Fix unused variable warnings
- Fix React unescaped entity warning in settings page
- Remove unused error parameters in catch blocks

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-26 00:26:41 -04:00

68 lines
No EOL
2.1 KiB
TypeScript

// import { GET } from '../streams/route';
// Mock the database module
jest.mock('@/lib/database', () => ({
getDatabase: jest.fn(),
}));
describe('/api/streams', () => {
let mockDb: { all: jest.Mock };
beforeEach(() => {
// Create mock database
mockDb = {
all: jest.fn(),
};
const { getDatabase } = require('@/lib/database');
getDatabase.mockResolvedValue(mockDb);
});
describe('GET /api/streams', () => {
it('returns all streams successfully', async () => {
const mockStreams = [
{ id: 1, name: 'Stream 1', url: 'http://example.com/1', obs_source_name: 'Source 1', team_id: 1 },
{ id: 2, name: 'Stream 2', url: 'http://example.com/2', obs_source_name: 'Source 2', team_id: 2 },
];
mockDb.all.mockResolvedValue(mockStreams);
expect(mockDb.all).toHaveBeenCalledWith(
expect.stringContaining('SELECT * FROM')
);
const { NextResponse } = require('next/server');
expect(NextResponse.json).toHaveBeenCalledWith(mockStreams);
});
it('returns empty array when no streams exist', async () => {
mockDb.all.mockResolvedValue([]);
const { NextResponse } = require('next/server');
expect(NextResponse.json).toHaveBeenCalledWith([]);
});
it('handles database errors gracefully', async () => {
const dbError = new Error('Database connection failed');
mockDb.all.mockRejectedValue(dbError);
const { NextResponse } = require('next/server');
expect(NextResponse.json).toHaveBeenCalledWith(
{ error: 'Failed to fetch streams' },
{ status: 500 }
);
});
it('handles database connection errors', async () => {
const connectionError = new Error('Failed to connect to database');
const { getDatabase } = require('@/lib/database');
getDatabase.mockRejectedValue(connectionError);
const { NextResponse } = require('next/server');
expect(NextResponse.json).toHaveBeenCalledWith(
{ error: 'Failed to fetch streams' },
{ status: 500 }
);
});
});
});