35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { createDefaultSlide, createDefaultTextElement } from '@/lib/edit/slide-edit-elements';
|
|
import type { Scene, SlideContent } from '@/lib/types/stage';
|
|
import type { Slide } from '@openmaic/dsl';
|
|
|
|
/**
|
|
* Build a minimal valid Scene/SlideContent/Slide trio for the round-trip
|
|
* harness. The slide carries a single default text element so each test
|
|
* has a stable target to act on.
|
|
*/
|
|
export function makeSlideFixture(): {
|
|
scene: Scene;
|
|
content: SlideContent;
|
|
slide: Slide;
|
|
textElementId: string;
|
|
} {
|
|
const slide = createDefaultSlide('slide-1');
|
|
const text = createDefaultTextElement('text-1');
|
|
slide.elements.push(text);
|
|
const content: SlideContent = { type: 'slide', canvas: slide };
|
|
const scene: Scene = {
|
|
id: 'scene-1',
|
|
stageId: 'stage-1',
|
|
type: 'slide',
|
|
title: 'Fixture slide',
|
|
order: 1,
|
|
content,
|
|
};
|
|
return { scene, content, slide, textElementId: text.id };
|
|
}
|
|
|
|
export const VIEWPORT_SIZE = 1000;
|
|
export const VIEWPORT_RATIO = 0.5625;
|
|
export const RATIO_PX2_INCH = 96 * (VIEWPORT_SIZE / 960);
|
|
export const RATIO_PX2_PT = (96 / 72) * (VIEWPORT_SIZE / 960);
|