107 lines
3.4 KiB
TypeScript
107 lines
3.4 KiB
TypeScript
import { $ } from "zx";
|
|
import { Entry } from "./entry";
|
|
import Project from "./kdenlive";
|
|
|
|
describe("Kdenlive", () => {
|
|
describe("example", () => {
|
|
it("should equal 'example'", async () => {
|
|
const project = new Project(30);
|
|
|
|
project.addProducer("/home/kuba/Videos/5min.mp4");
|
|
project.addProducer("/home/kuba/Videos/5min.wav");
|
|
|
|
await $`echo ${await project.toXML()} > project-generated.kdenlive`;
|
|
});
|
|
});
|
|
|
|
describe("tracks", () => {
|
|
it("should generate a project with three audio tracks", async () => {
|
|
const project = new Project(30);
|
|
for (let i = 1; i <= 3; i++) {
|
|
project.addAudioTractor();
|
|
}
|
|
|
|
await $`echo ${await project.toXML()} > three-audio-tracks.kdenlive`;
|
|
});
|
|
|
|
it("should generate a project with one video track", async () => {
|
|
const project = new Project(30);
|
|
project.addVideoTractor();
|
|
|
|
await $`echo ${await project.toXML()} > 1v-tracks.kdenlive`;
|
|
});
|
|
|
|
it("should generate a project with one video track and one audio track", async () => {
|
|
const project = new Project(30);
|
|
project.addVideoTractor();
|
|
project.addAudioTractor();
|
|
|
|
await $`echo ${await project.toXML()} > 1a1v-tracks.kdenlive`;
|
|
});
|
|
|
|
it("should generate a project with three audio and video tracks", async () => {
|
|
const project = new Project(30);
|
|
for (let i = 1; i <= 3; i++) {
|
|
project.addVideoTractor();
|
|
project.addAudioTractor();
|
|
}
|
|
|
|
await $`echo ${await project.toXML()} > 3a3v-tracks.kdenlive`;
|
|
});
|
|
|
|
it("should generate a project with 20 audio and video tracks", async () => {
|
|
const project = new Project(30);
|
|
for (let i = 1; i <= 20; i++) {
|
|
project.addVideoTractor();
|
|
project.addAudioTractor();
|
|
}
|
|
|
|
await $`echo ${await project.toXML()} > 20a20v-tracks.kdenlive`;
|
|
});
|
|
});
|
|
|
|
describe("clips", () => {
|
|
it("should generate a 1a1v project with one clip", async () => {
|
|
const project = new Project(30);
|
|
const producer = project.addProducer("/home/kuba/Videos/5min.mp4");
|
|
const video_track = project.addVideoTractor();
|
|
const audio_track = project.addAudioTractor();
|
|
const entry = new Entry(producer, "00:00:00.000", "00:00:01.000");
|
|
video_track.addEntry(entry);
|
|
audio_track.addEntry(entry);
|
|
await $`echo ${await project.toXML()} > 1s-clip.kdenlive`;
|
|
});
|
|
|
|
it("should generate a 1a1v project with two contingent clips", async () => {
|
|
const project = new Project(30);
|
|
const producer = project.addProducer("/home/kuba/Videos/5min.mp4");
|
|
const video_track = project.addVideoTractor();
|
|
const audio_track = project.addAudioTractor();
|
|
const entry = new Entry(producer, "00:00:00.000", "00:00:01.000");
|
|
video_track.addEntry(entry);
|
|
audio_track.addEntry(entry);
|
|
const entry2 = new Entry(producer, "00:00:01.000", "00:00:02.000");
|
|
video_track.addEntry(entry2);
|
|
audio_track.addEntry(entry2);
|
|
await $`echo ${await project.toXML()} > 2x1s-clip.kdenlive`;
|
|
});
|
|
|
|
it("should generate a 1a1v project with 20 contingent clips", async () => {
|
|
const project = new Project(30);
|
|
const producer = project.addProducer("/home/kuba/Videos/5min.mp4");
|
|
const video_track = project.addVideoTractor();
|
|
const audio_track = project.addAudioTractor();
|
|
for (let i = 0; i <= 20; i++) {
|
|
let entry = new Entry(
|
|
producer,
|
|
`00:00:${i.toString().padStart(2, "0")}.000`,
|
|
`00:00:${(i + 1).toString().padStart(2, "0")}.000`
|
|
);
|
|
video_track.addEntry(entry);
|
|
audio_track.addEntry(entry);
|
|
}
|
|
await $`echo ${await project.toXML()} > 20x1s-clip.kdenlive`;
|
|
});
|
|
});
|
|
});
|