summaryrefslogtreecommitdiff
path: root/apps/web/src/services/storage/migrations
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-04-29 01:59:46 +0200
committerMaze Winther <mazewinther@gmail.com>2026-05-02 03:27:23 +0200
commitb8d08df244b97b1d3131cb2d076166838189eeb0 (patch)
tree01f8ea0ce75c5a8b73e4b8d64c5456f40a2ff142 /apps/web/src/services/storage/migrations
parent2ee0a44735d2b930348e9774909638b2c1909738 (diff)
downloadopencut-b8d08df244b97b1d3131cb2d076166838189eeb0.tar.gz
chore: cleanup
Diffstat (limited to 'apps/web/src/services/storage/migrations')
-rw-r--r--apps/web/src/services/storage/migrations/__tests__/v28-to-v29.test.ts24
-rw-r--r--apps/web/src/services/storage/migrations/transformers/v28-to-v29.ts17
2 files changed, 17 insertions, 24 deletions
diff --git a/apps/web/src/services/storage/migrations/__tests__/v28-to-v29.test.ts b/apps/web/src/services/storage/migrations/__tests__/v28-to-v29.test.ts
index dc76b6fd..38a806e1 100644
--- a/apps/web/src/services/storage/migrations/__tests__/v28-to-v29.test.ts
+++ b/apps/web/src/services/storage/migrations/__tests__/v28-to-v29.test.ts
@@ -3,7 +3,7 @@ import { transformProjectV28ToV29 } from "../transformers/v28-to-v29";
import { asRecord, asRecordArray } from "./helpers";
describe("V28 to V29 Migration", () => {
- test("moves built-in element fields into params", () => {
+ test("copies built-in element fields into params without deleting source fields", () => {
const result = transformProjectV28ToV29({
project: {
id: "project-v28-builtins",
@@ -83,10 +83,15 @@ describe("V28 to V29 Migration", () => {
const tracks = asRecord(scene.tracks);
const main = asRecord(tracks.main);
const video = asRecordArray(main.elements)[0];
- expect(video.transform).toBeUndefined();
- expect(video.opacity).toBeUndefined();
- expect(video.volume).toBeUndefined();
- expect(video.muted).toBeUndefined();
+ expect(video.transform).toEqual({
+ position: { x: 12, y: -4 },
+ scaleX: 1.25,
+ scaleY: 0.75,
+ rotate: 9,
+ });
+ expect(video.opacity).toBe(0.5);
+ expect(video.volume).toBe(-6);
+ expect(video.muted).toBe(true);
expect(video.params).toEqual({
"transform.positionX": 12,
"transform.positionY": -4,
@@ -101,8 +106,13 @@ describe("V28 to V29 Migration", () => {
const overlay = asRecordArray(tracks.overlay)[0];
const text = asRecordArray(asRecord(overlay).elements)[0];
- expect(text.content).toBeUndefined();
- expect(text.background).toBeUndefined();
+ expect(text.content).toBe("Hello");
+ expect(text.background).toEqual({
+ enabled: true,
+ color: "#111111",
+ paddingX: 10,
+ paddingY: 12,
+ });
expect(text.params).toMatchObject({
content: "Hello",
fontSize: 20,
diff --git a/apps/web/src/services/storage/migrations/transformers/v28-to-v29.ts b/apps/web/src/services/storage/migrations/transformers/v28-to-v29.ts
index c7f68a34..4ce048f6 100644
--- a/apps/web/src/services/storage/migrations/transformers/v28-to-v29.ts
+++ b/apps/web/src/services/storage/migrations/transformers/v28-to-v29.ts
@@ -114,23 +114,6 @@ function migrateElement({ element }: { element: unknown }): unknown {
}
nextElement.params = params;
- delete nextElement.transform;
- delete nextElement.opacity;
- delete nextElement.blendMode;
- delete nextElement.volume;
- delete nextElement.muted;
- delete nextElement.content;
- delete nextElement.fontSize;
- delete nextElement.fontFamily;
- delete nextElement.color;
- delete nextElement.background;
- delete nextElement.textAlign;
- delete nextElement.fontWeight;
- delete nextElement.fontStyle;
- delete nextElement.textDecoration;
- delete nextElement.letterSpacing;
- delete nextElement.lineHeight;
-
return nextElement;
}