import type {ThreadGeneratorFactory} from '@revideo/core'; import {threads} from '@revideo/core'; import {useScene2D} from '../../scenes'; import type {View2D} from '../View2D'; /** * Turn a generator factory into a test function. * * @example * ```ts * it( * 'Example test', * generatorTest(function* () { * yield* waitFor(1); * expect(useTime()).toBe(1); * }), * ); * ``` * * @param factory - The generator factory to test. */ export function generatorTest(factory: ThreadGeneratorFactory) { return () => { const view = useScene2D().getView(); const tasks = threads(() => factory(view)); [...tasks]; }; }