build(aio): fix matchUpDirectiveDecorators processor
This commit is contained in:
parent
df7b875f6c
commit
d52ab8e2c9
|
@ -66,7 +66,7 @@ function getBindingInfo(directiveBindings, members, bindingType) {
|
|||
}
|
||||
|
||||
function stripQuotes(value) {
|
||||
return (typeof(value) === 'string') ? value.replace(/^(['"])(.*)\1/, '$2') : value;
|
||||
return (typeof(value) === 'string') ? value.trim().replace(/^(['"])(.*)\1$/, '$2') : value;
|
||||
}
|
||||
|
||||
function parseBinding(option) {
|
||||
|
|
|
@ -34,37 +34,59 @@ describe('matchUpDirectiveDecorators processor', () => {
|
|||
expect(docs[0].exportAs).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should strip quotes off directive properties', () => {
|
||||
const docs = [{
|
||||
docType: 'directive',
|
||||
directiveOptions: { selector: '"a,b,c"', exportAs: '\'someExport\'' }
|
||||
}];
|
||||
it('should strip whitespace and quotes off directive properties', () => {
|
||||
const docs = [
|
||||
{
|
||||
docType: 'directive',
|
||||
directiveOptions: { selector: '"a,b,c"', exportAs: '\'someExport\'' }
|
||||
},
|
||||
{
|
||||
docType: 'directive',
|
||||
directiveOptions: { selector: ' a,b,c ', exportAs: ' someExport ' }
|
||||
},
|
||||
{
|
||||
docType: 'directive',
|
||||
directiveOptions: { selector: ' "a,b,c" ', exportAs: ' \'someExport\' ' }
|
||||
}
|
||||
];
|
||||
processorFactory().$process(docs);
|
||||
expect(docs[0].selector).toEqual('a,b,c');
|
||||
expect(docs[0].exportAs).toEqual('someExport');
|
||||
expect(docs[1].selector).toEqual('a,b,c');
|
||||
expect(docs[1].exportAs).toEqual('someExport');
|
||||
expect(docs[2].selector).toEqual('a,b,c');
|
||||
expect(docs[2].exportAs).toEqual('someExport');
|
||||
});
|
||||
|
||||
it('should extract inputs and outputs from the directive decorator', () => {
|
||||
const docs = [{
|
||||
docType: 'directive',
|
||||
directiveOptions: {
|
||||
inputs: ['a:b', 'x'],
|
||||
outputs: ['foo:foo']
|
||||
inputs: ['in1:in2', 'in3', ' in4:in5 ', ' in6 '],
|
||||
outputs: ['out1:out1', ' out2:out3 ', ' out4 ']
|
||||
},
|
||||
members: [
|
||||
{ name: 'a' },
|
||||
{ name: 'x' },
|
||||
{ name: 'foo' }
|
||||
{ name: 'in1' },
|
||||
{ name: 'in3' },
|
||||
{ name: 'in4' },
|
||||
{ name: 'in6' },
|
||||
{ name: 'out1' },
|
||||
{ name: 'out2' },
|
||||
{ name: 'out4' }
|
||||
]
|
||||
}];
|
||||
processorFactory().$process(docs);
|
||||
expect(docs[0].inputs).toEqual([
|
||||
{ propertyName: 'a', bindingName: 'b', memberDoc: docs[0].members[0] },
|
||||
{ propertyName: 'x', bindingName: 'x', memberDoc: docs[0].members[1] }
|
||||
{ propertyName: 'in1', bindingName: 'in2', memberDoc: docs[0].members[0] },
|
||||
{ propertyName: 'in3', bindingName: 'in3', memberDoc: docs[0].members[1] },
|
||||
{ propertyName: 'in4', bindingName: 'in5', memberDoc: docs[0].members[2] },
|
||||
{ propertyName: 'in6', bindingName: 'in6', memberDoc: docs[0].members[3] }
|
||||
]);
|
||||
|
||||
expect(docs[0].outputs).toEqual([
|
||||
{ propertyName: 'foo', bindingName: 'foo', memberDoc: docs[0].members[2] }
|
||||
{ propertyName: 'out1', bindingName: 'out1', memberDoc: docs[0].members[4] },
|
||||
{ propertyName: 'out2', bindingName: 'out3', memberDoc: docs[0].members[5] },
|
||||
{ propertyName: 'out4', bindingName: 'out4', memberDoc: docs[0].members[6] }
|
||||
]);
|
||||
});
|
||||
|
||||
|
@ -90,4 +112,30 @@ describe('matchUpDirectiveDecorators processor', () => {
|
|||
{ propertyName: 'd1', bindingName: 'd1', memberDoc: docs[0].members[3] }
|
||||
]);
|
||||
});
|
||||
|
||||
it('should merge directive inputs/outputs with decorator property inputs/outputs', () => {
|
||||
const docs = [{
|
||||
docType: 'directive',
|
||||
directiveOptions: {
|
||||
inputs: ['a1:a2'],
|
||||
outputs: ['b1:b2']
|
||||
},
|
||||
members: [
|
||||
{ name: 'a1' },
|
||||
{ name: 'a3', decorators: [{ name: 'Input', arguments: ['a4'] }] },
|
||||
{ name: 'b1' },
|
||||
{ name: 'b3', decorators: [{ name: 'Output', arguments: ['b4'] }] },
|
||||
]
|
||||
}];
|
||||
processorFactory().$process(docs);
|
||||
expect(docs[0].inputs).toEqual([
|
||||
{ propertyName: 'a1', bindingName: 'a2', memberDoc: docs[0].members[0] },
|
||||
{ propertyName: 'a3', bindingName: 'a4', memberDoc: docs[0].members[1] }
|
||||
]);
|
||||
|
||||
expect(docs[0].outputs).toEqual([
|
||||
{ propertyName: 'b1', bindingName: 'b2', memberDoc: docs[0].members[2] },
|
||||
{ propertyName: 'b3', bindingName: 'b4', memberDoc: docs[0].members[3] }
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue