facilmap/frontend/src/lib/components/edit-type-dialog/__tests__/edit-type-utils.test.ts

54 wiersze
2.0 KiB
TypeScript

import { expect, test } from "vitest";
import { mergeTypeObject } from "../edit-type-utils";
function merge(oldType: any, newType: any, targetType: any): any {
mergeTypeObject(oldType, newType, targetType);
return targetType;
}
test('mergeTypeObjects', () => {
expect(merge(
{ fields: [
{ name: "field1", test: "string" },
{ name: "field2", test: "string" },
{ name: "field3", test: "string" },
{ name: "field4", test: "string" },
{ name: "field5", test: "string" },
{ name: "field6", test: "string" },
{ name: "field7", test: "string" }
] },
{ fields: [
{ name: "field1", test: "string1" }, // Update test
// Delete field2
// Delete field3
{ name: "field4" }, // Delete test
{ name: "field4a", test: "string4a" }, // New field
{ name: "field5", test: "string", test2: "bla" }, // Add test2
{ name: "field6", test: "string6" }, // Update test
{ name: "field7a", test: "string" }, // Rename
{ name: "field8", test: "string" } // New field
] },
{ fields: [
{ oldName: "field1", name: "field1", test: "string" }, // Unchanged
{ oldName: "field4", name: "field4a", test: "string" }, // Rename and reorder
{ oldName: "field2", name: "field2", test: "string" }, // Unchanged
{ oldName: "field3", name: "field3b", test: "string2" }, // Rename and update test
{ name: "newField", test: "string3a" }, // New field
{ oldName: "field5", name: "field5", test: "string5" }, // Update test
// Delete field6
{ oldName: "field7", name: "field7", test: "string" }, // Unchanged
{ name: "field8", test: "string8" } // New field (name conflict)
] }
)).toEqual(
{ fields: [
{ oldName: "field1", name: "field1", test: "string1" },
{ oldName: "field4", name: "field4a" },
{ oldName: "field4a", name: "field4a", test: "string4a" },
{ name: "newField", test: "string3a" },
{ oldName: "field5", name: "field5", test: "string5", test2: "bla" },
{ oldName: "field7a", name: "field7a", test: "string" },
{ oldName: "field8", name: "field8", test: "string" },
{ name: "field8", test: "string8" }
] }
);
});