mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-12 19:52:51 +00:00
56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import set from 'lodash/set';
|
|
import cloneDeep from 'lodash/cloneDeep';
|
|
import '../fixtures/window';
|
|
import { Project } from '../../src/project/project';
|
|
// import { Node } from '../../../src/document/node/node';
|
|
import { Designer } from '../../src/designer/designer';
|
|
import formSchema from '../fixtures/schema/form';
|
|
import { getIdsFromSchema, getNodeFromSchemaById } from '../utils';
|
|
|
|
const mockCreateSettingEntry = jest.fn();
|
|
jest.mock('../../src/designer/designer', () => {
|
|
return {
|
|
Designer: jest.fn().mockImplementation(() => {
|
|
return {
|
|
getComponentMeta() {
|
|
return {
|
|
getMetadata() {
|
|
return { configure: { advanced: null } };
|
|
},
|
|
};
|
|
},
|
|
transformProps(props) { return props; },
|
|
createSettingEntry: mockCreateSettingEntry,
|
|
postEvent() {},
|
|
};
|
|
}),
|
|
};
|
|
});
|
|
|
|
let designer = null;
|
|
beforeAll(() => {
|
|
designer = new Designer({});
|
|
});
|
|
|
|
it.todo('在同一个节点下,相同名称的 slot 只能有一个', () => {
|
|
const project = new Project(designer, {
|
|
componentsTree: [
|
|
formSchema,
|
|
],
|
|
});
|
|
project.open();
|
|
expect(project).toBeTruthy();
|
|
const { currentDocument } = project;
|
|
const { nodesMap } = currentDocument;
|
|
const ids = getIdsFromSchema(formSchema);
|
|
const expectedNodeCnt = ids.length;
|
|
expect(nodesMap.size).toBe(expectedNodeCnt);
|
|
ids.forEach(id => {
|
|
expect(nodesMap.get(id).componentName).toBe(getNodeFromSchemaById(formSchema, id).componentName);
|
|
});
|
|
|
|
const exportSchema = currentDocument?.export(1);
|
|
expect(getIdsFromSchema(exportSchema).length).toBe(expectedNodeCnt);
|
|
expect(mockCreateSettingEntry).toBeCalledTimes(expectedNodeCnt);
|
|
});
|