feat: publish av-tools 0.1.0
This commit is contained in:
66
tests/unit/project/project-fixture.ts
Normal file
66
tests/unit/project/project-fixture.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import { createEmptyProject } from '../../../src/project/project.schema';
|
||||
import type {
|
||||
AvProjectV1,
|
||||
MediaAssetReference,
|
||||
} from '../../../src/project/project.types';
|
||||
|
||||
export const CREATED_AT = '2026-01-02T03:04:05.000Z';
|
||||
export const UPDATED_AT = '2026-01-02T04:00:00.000Z';
|
||||
|
||||
export function mediaAsset(
|
||||
overrides: Partial<MediaAssetReference> = {}
|
||||
): MediaAssetReference {
|
||||
return {
|
||||
id: 'asset-1',
|
||||
originalName: 'source.mp4',
|
||||
size: 1_024,
|
||||
lastModified: 1_700_000_000_000,
|
||||
mimeType: 'video/mp4',
|
||||
sourceStatus: 'attached',
|
||||
probe: {
|
||||
durationSeconds: 10,
|
||||
formatNames: ['mov', 'mp4'],
|
||||
tags: {},
|
||||
streams: [
|
||||
{
|
||||
index: 0,
|
||||
type: 'video',
|
||||
codecName: 'h264',
|
||||
disposition: { default: true },
|
||||
tags: {},
|
||||
},
|
||||
],
|
||||
chapters: [],
|
||||
warnings: [],
|
||||
},
|
||||
...overrides,
|
||||
};
|
||||
}
|
||||
|
||||
export function populatedProject(): AvProjectV1 {
|
||||
const project = createEmptyProject({
|
||||
id: 'project-1',
|
||||
name: 'Demo project',
|
||||
timestamp: CREATED_AT,
|
||||
});
|
||||
return {
|
||||
...project,
|
||||
assets: [mediaAsset()],
|
||||
timeline: [
|
||||
{
|
||||
id: 'clip-1',
|
||||
assetId: 'asset-1',
|
||||
sourceInSeconds: 1,
|
||||
sourceOutSeconds: 4.5,
|
||||
audio: { enabled: true, fadeInSeconds: 0.2 },
|
||||
video: { enabled: true },
|
||||
},
|
||||
],
|
||||
ui: {
|
||||
selectedAssetId: 'asset-1',
|
||||
selectedClipId: 'clip-1',
|
||||
inspectorPanel: 'clip',
|
||||
timelineZoom: 1,
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user