mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-16 03:18:11 +00:00
71 lines
2.4 KiB
TypeScript
71 lines
2.4 KiB
TypeScript
import set from 'lodash/set';
|
|
import cloneDeep from 'lodash/cloneDeep';
|
|
import '../fixtures/window';
|
|
import { Node } from '../../src/document/node/node';
|
|
import { Designer } from '../../src/designer/designer';
|
|
import divMeta from '../fixtures/component-metadata/div';
|
|
import { ComponentMeta, isComponentMeta, removeBuiltinComponentAction, addBuiltinComponentAction } from '../../src/component-meta';
|
|
|
|
const mockCreateSettingEntry = jest.fn();
|
|
jest.mock('../../src/designer/designer', () => {
|
|
return {
|
|
Designer: jest.fn().mockImplementation(() => {
|
|
return {
|
|
getGlobalComponentActions: () => [],
|
|
};
|
|
}),
|
|
};
|
|
});
|
|
|
|
let designer = null;
|
|
beforeAll(() => {
|
|
designer = new Designer({});
|
|
});
|
|
|
|
describe('组件元数据处理', () => {
|
|
it('构造函数', () => {
|
|
const meta = new ComponentMeta(designer, divMeta);
|
|
expect(meta.isContainer).toBeTruthy;
|
|
expect(isComponentMeta(meta)).toBeTruthy;
|
|
expect(meta.acceptable).toBeTruthy;
|
|
expect(meta.isRootComponent()).toBeTruthy;
|
|
expect(meta.isModal).toBeFalsy;
|
|
expect(meta.rootSelector).toBeUndefined;
|
|
expect(meta.liveTextEditing).toBeUndefined;
|
|
expect(meta.descriptor).toBeUndefined;
|
|
expect(meta.icon).toBeUndefined;
|
|
expect(meta.getMetadata().title).toBe('容器');
|
|
expect(meta.title).toEqual({ type: 'i18n', 'en-US': 'Div', 'zh-CN': '容器' });
|
|
|
|
meta.setNpm({ package: '@ali/vc-div', componentName: 'Div' });
|
|
expect(meta.npm).toEqual({ package: '@ali/vc-div', componentName: 'Div' });
|
|
|
|
meta.setMetadata(divMeta);
|
|
});
|
|
|
|
it('availableActions', () => {
|
|
const meta = new ComponentMeta(designer, divMeta);
|
|
expect(meta.availableActions).toHaveLength(3);
|
|
expect(meta.availableActions[0].name).toBe('remove');
|
|
expect(meta.availableActions[1].name).toBe('hide');
|
|
expect(meta.availableActions[2].name).toBe('copy');
|
|
|
|
removeBuiltinComponentAction('remove');
|
|
// availableActions 有 computed 缓存
|
|
expect(meta.availableActions[0].name).toBe('remove');
|
|
expect(meta.availableActions[1].name).toBe('hide');
|
|
expect(meta.availableActions[2].name).toBe('copy');
|
|
|
|
addBuiltinComponentAction({
|
|
name: 'new',
|
|
content: {
|
|
action() {}
|
|
}
|
|
});
|
|
// availableActions 有 computed 缓存
|
|
expect(meta.availableActions).toHaveLength(3);
|
|
expect(meta.availableActions[0].name).toBe('remove');
|
|
expect(meta.availableActions[1].name).toBe('hide');
|
|
expect(meta.availableActions[2].name).toBe('copy');
|
|
});
|
|
}); |