项目文件夹

文件
wehub-resource-sync c48612c494
CI / E2E Tests (push) Has been cancelled
CI / Lint, Typecheck & Unit Tests (push) Has been cancelled
Docs Build / Build docs site (push) Has been cancelled
Publish @openmaic packages / Build, validate & publish (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:03:23 +08:00

46 行
1.2 KiB
TypeScript

import { describe, expect, test } from 'vitest';
import { replaceMediaPlaceholders } from '@/lib/server/classroom-media-generation';
import type { Scene } from '@/lib/types/stage';
function slideScene(
elements: Array<{ id: string; type: string; src?: string; mediaRef?: string }>,
) {
return {
id: 'scene_1',
stageId: 'stage_1',
type: 'slide',
title: 'Scene',
order: 1,
content: {
type: 'slide',
canvas: {
id: 'canvas_1',
elements,
},
},
} as unknown as Scene;
}
describe('classroom media placeholder replacement', () => {
test('preserves direct video src when mediaRef is also present', () => {
const scene = slideScene([
{
id: 'video_1',
type: 'video',
src: 'https://example.com/direct.mp4',
mediaRef: 'gen_vid_real123',
},
]);
replaceMediaPlaceholders([scene], {
gen_vid_real123: 'https://cdn.example.com/generated.mp4',
});
const content = scene.content as {
canvas: { elements: Array<{ src?: string }> };
};
const video = content.canvas.elements[0];
expect(video.src).toBe('https://example.com/direct.mp4');
});
});