Merge pull request #141 from alibaba/fix/loopArgs

Fix/loop args
This commit is contained in:
林熠 2022-03-17 18:40:29 +08:00 committed by GitHub
commit d4de1cc7cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 5 deletions

View File

@ -159,7 +159,7 @@ export class Prop implements IPropParent {
const v = prop.export(stage);
if (v != null) {
maps = maps || {};
maps[prop.key || key] = prop.export(stage);
maps[prop.key || key] = v;
}
}
});
@ -170,9 +170,13 @@ export class Prop implements IPropParent {
if (!this._items) {
return this._value;
}
return this.items!.map((prop) => {
const values = this.items!.map((prop) => {
return prop.export(stage);
});
if (values.every(val => val === undefined)) {
return undefined;
}
return values;
}
}

View File

@ -26,7 +26,7 @@ import rootHeaderMetadata from '../../fixtures/component-metadata/root-header';
import rootContentMetadata from '../../fixtures/component-metadata/root-content';
import rootFooterMetadata from '../../fixtures/component-metadata/root-footer';
describe.skip('Node 方法测试', () => {
describe('Node 方法测试', () => {
let editor: Editor;
let designer: Designer;
let project: Project;
@ -474,15 +474,16 @@ describe.skip('Node 方法测试', () => {
it('didDropIn / didDropOut', () => {
const form = doc.getNode('node_k1ow3cbo');
designer.createComponentMeta(divMetadata);
designer.createComponentMeta(formMetadata);
const callbacks = form.componentMeta.getMetadata().configure.advanced?.callbacks;
const fn1 = callbacks.onNodeAdd = jest.fn();
const fn2 = callbacks.onNodeRemove = jest.fn();
const textField = doc.getNode('node_k1ow3cc9');
form.didDropIn(textField);
expect(fn1).toHaveBeenCalledWith(textField, form);
expect(fn1).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
form.didDropOut(textField);
expect(fn2).toHaveBeenCalledWith(textField, form);
expect(fn2).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
});
it('hover', () => {

View File

@ -430,6 +430,11 @@ describe('Prop 类测试', () => {
// illegal
// expect(prop.set(5, 1)).toBeNull();
});
it('should return undefined when all items are undefined', () => {
prop = new Prop(mockedPropsInst, [undefined, undefined], '___loopArgs___');
expect(prop.getValue()).toBeUndefined();
});
});
});