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); const v = prop.export(stage);
if (v != null) { if (v != null) {
maps = maps || {}; 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) { if (!this._items) {
return this._value; return this._value;
} }
return this.items!.map((prop) => { const values = this.items!.map((prop) => {
return prop.export(stage); 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 rootContentMetadata from '../../fixtures/component-metadata/root-content';
import rootFooterMetadata from '../../fixtures/component-metadata/root-footer'; import rootFooterMetadata from '../../fixtures/component-metadata/root-footer';
describe.skip('Node 方法测试', () => { describe('Node 方法测试', () => {
let editor: Editor; let editor: Editor;
let designer: Designer; let designer: Designer;
let project: Project; let project: Project;
@ -474,15 +474,16 @@ describe.skip('Node 方法测试', () => {
it('didDropIn / didDropOut', () => { it('didDropIn / didDropOut', () => {
const form = doc.getNode('node_k1ow3cbo'); const form = doc.getNode('node_k1ow3cbo');
designer.createComponentMeta(divMetadata); designer.createComponentMeta(divMetadata);
designer.createComponentMeta(formMetadata);
const callbacks = form.componentMeta.getMetadata().configure.advanced?.callbacks; const callbacks = form.componentMeta.getMetadata().configure.advanced?.callbacks;
const fn1 = callbacks.onNodeAdd = jest.fn(); const fn1 = callbacks.onNodeAdd = jest.fn();
const fn2 = callbacks.onNodeRemove = jest.fn(); const fn2 = callbacks.onNodeRemove = jest.fn();
const textField = doc.getNode('node_k1ow3cc9'); const textField = doc.getNode('node_k1ow3cc9');
form.didDropIn(textField); form.didDropIn(textField);
expect(fn1).toHaveBeenCalledWith(textField, form); expect(fn1).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
form.didDropOut(textField); form.didDropOut(textField);
expect(fn2).toHaveBeenCalledWith(textField, form); expect(fn2).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
}); });
it('hover', () => { it('hover', () => {

View File

@ -430,6 +430,11 @@ describe('Prop 类测试', () => {
// illegal // illegal
// expect(prop.set(5, 1)).toBeNull(); // 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();
});
}); });
}); });