| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import { and, desc, eq, sql } from 'drizzle-orm';
- import { getMediaStatus } from '../src/actions/media';
- import { db } from '../src/db';
- import { media } from '../src/db/schema/media';
- async function runTest() {
- console.log('Testing media status lookup...');
- const [latestCompletedMedia] = await db
- .select()
- .from(media)
- .where(and(eq(media.status, 'completed'), sql`${media.metadata}->>'hlsPath' is not null`))
- .orderBy(desc(media.updatedAt))
- .limit(1);
- if (!latestCompletedMedia) {
- console.error('No completed media with HLS output found. Run npm run test:media-pipeline first.');
- process.exit(1);
- }
- const status = await getMediaStatus(latestCompletedMedia.id);
- if (!status) {
- console.error('getMediaStatus returned null.');
- process.exit(1);
- }
- console.log('Media ID:', status.id);
- console.log('Status:', status.status);
- console.log('HLS Path:', status.hlsPath);
- console.log('HLS URL generated:', Boolean(status.hlsUrl));
- if (status.status !== 'completed' || !status.hlsPath || !status.hlsUrl) {
- console.error('Media status response is missing completed playback data.');
- process.exit(1);
- }
- console.log('Media status lookup passed.');
- process.exit(0);
- }
- runTest().catch((error) => {
- console.error('Test failed with error:', error);
- process.exit(1);
- });
|