| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { getMediaStatus } from '../src/actions/media';
- import { db } from '../src/db';
- import { media } from '../src/db/schema/media';
- import { resources } from '../src/db/schema/resource';
- import { cleanupMediaRecord } from './helpers/media-cleanup';
- async function runTest() {
- console.log('Testing media status lookup...');
- const suffix = Date.now();
- const [resource] = await db.insert(resources).values({
- name: `media-status-${suffix}.mp4`,
- path: `/media-status/${suffix}.mp4`,
- type: 'file',
- }).returning();
- const [createdMedia] = await db.insert(media).values({
- resourceId: resource.id,
- filename: `media-status-${suffix}.mp4`,
- storageKey: `uploads/media-status-${suffix}.mp4`,
- mimeType: 'video/mp4',
- size: BigInt(1),
- status: 'completed',
- metadata: {
- hlsPath: `hls/media-status-${suffix}/index.m3u8`,
- processedAt: new Date().toISOString(),
- },
- }).returning();
- try {
- const status = await getMediaStatus(createdMedia.id);
- if (!status) {
- throw new Error('getMediaStatus returned null.');
- }
- 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) {
- throw new Error('Media status response is missing completed playback data.');
- }
- } finally {
- await cleanupMediaRecord(createdMedia.id);
- }
- console.log('Media status lookup passed.');
- process.exit(0);
- }
- runTest().catch((error) => {
- console.error('Test failed with error:', error);
- process.exit(1);
- });
|