test(compiler): update examples and compiler tests (#30626)
PR Close #30626
This commit is contained in:
parent
dcdecfa9a8
commit
214ae0ea4c
|
@ -1714,7 +1714,7 @@ describe('compiler compliance', () => {
|
|||
\`
|
||||
})
|
||||
export class ContentQueryComponent {
|
||||
@ContentChild(SomeDirective) someDir: SomeDirective;
|
||||
@ContentChild(SomeDirective, {static: false}) someDir: SomeDirective;
|
||||
@ContentChildren(SomeDirective) someDirList !: QueryList<SomeDirective>;
|
||||
}
|
||||
|
||||
|
@ -1786,7 +1786,7 @@ describe('compiler compliance', () => {
|
|||
\`
|
||||
})
|
||||
export class ContentQueryComponent {
|
||||
@ContentChild('myRef') myRef: any;
|
||||
@ContentChild('myRef', {static: false}) myRef: any;
|
||||
@ContentChildren('myRef1, myRef2, myRef3') myRefs: QueryList<any>;
|
||||
}
|
||||
@NgModule({declarations: [ContentQueryComponent]})
|
||||
|
@ -1911,9 +1911,9 @@ describe('compiler compliance', () => {
|
|||
\`
|
||||
})
|
||||
export class ContentQueryComponent {
|
||||
@ContentChild('myRef', {read: TemplateRef}) myRef: TemplateRef;
|
||||
@ContentChild('myRef', {read: TemplateRef, static: false}) myRef: TemplateRef;
|
||||
@ContentChildren('myRef1, myRef2, myRef3', {read: ElementRef}) myRefs: QueryList<ElementRef>;
|
||||
@ContentChild(SomeDirective, {read: ElementRef}) someDir: ElementRef;
|
||||
@ContentChild(SomeDirective, {read: ElementRef, static: false}) someDir: ElementRef;
|
||||
@ContentChildren(SomeDirective, {read: TemplateRef}) someDirs: QueryList<TemplateRef>;
|
||||
}
|
||||
@NgModule({declarations: [ContentQueryComponent]})
|
||||
|
@ -1966,7 +1966,7 @@ describe('compiler compliance', () => {
|
|||
\`
|
||||
})
|
||||
export class ContentQueryComponent {
|
||||
@Input() @ContentChild('foo') foo: any;
|
||||
@Input() @ContentChild('foo', {static: false}) foo: any;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
@ -3139,7 +3139,7 @@ describe('compiler compliance', () => {
|
|||
'spec.ts': `
|
||||
import {Component, NgModule, ContentChild} from '@angular/core';
|
||||
export class BaseClass {
|
||||
@ContentChild('something') something: any;
|
||||
@ContentChild('something', {static: false}) something: any;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -1536,10 +1536,10 @@ describe('ngtsc behavioral tests', () => {
|
|||
}
|
||||
})
|
||||
class FooCmp {
|
||||
@ContentChild('bar', {read: TemplateRef}) child: any;
|
||||
@ContentChild('bar', {read: TemplateRef, static: false}) child: any;
|
||||
@ContentChildren(TemplateRef) children: any;
|
||||
get aview(): any { return null; }
|
||||
@ViewChild('accessor') set aview(value: any) {}
|
||||
@ViewChild('accessor', {static: false}) set aview(value: any) {}
|
||||
}
|
||||
`);
|
||||
|
||||
|
@ -1568,7 +1568,7 @@ describe('ngtsc behavioral tests', () => {
|
|||
}
|
||||
})
|
||||
class FooCmp {
|
||||
@ContentChild('bar', {read: TemplateRef}) child: any;
|
||||
@ContentChild('bar', {read: TemplateRef, static: false}) child: any;
|
||||
@ContentChildren(TemplateRef) children: any;
|
||||
get aview(): any { return null; }
|
||||
@ViewChild('accessor') set aview(value: any) {}
|
||||
|
@ -1600,11 +1600,11 @@ describe('ngtsc behavioral tests', () => {
|
|||
template: '<div #foo></div>',
|
||||
})
|
||||
class FooCmp {
|
||||
@ContentChild(forwardRef(() => TemplateRef)) child: any;
|
||||
@ContentChild(forwardRef(() => TemplateRef), {static: false}) child: any;
|
||||
|
||||
@ContentChild(forwardRef(function() { return ViewContainerRef; })) child2: any;
|
||||
@ContentChild(forwardRef(function() { return ViewContainerRef; }), {static: false}) child2: any;
|
||||
|
||||
@ContentChild((forwardRef((function() { return 'parens'; }) as any))) childInParens: any;
|
||||
@ContentChild((forwardRef((function() { return 'parens'; }) as any)), {static: false}) childInParens: any;
|
||||
}
|
||||
`);
|
||||
|
||||
|
|
|
@ -27,10 +27,11 @@ import * as core from '@angular/core';
|
|||
typeExtends<compilerCore.Query, core.Query>();
|
||||
typeExtends<core.Query, compilerCore.Query>();
|
||||
compareRuntimeShape(
|
||||
new core.ContentChild('someSelector'), compilerCore.createContentChild('someSelector'));
|
||||
new core.ContentChild('someSelector', {static: false}),
|
||||
compilerCore.createContentChild('someSelector', {static: false}));
|
||||
compareRuntimeShape(
|
||||
new core.ContentChild('someSelector', {read: 'someRead'}),
|
||||
compilerCore.createContentChild('someSelector', {read: 'someRead'}));
|
||||
new core.ContentChild('someSelector', {read: 'someRead', static: false}),
|
||||
compilerCore.createContentChild('someSelector', {read: 'someRead', static: false}));
|
||||
compareRuntimeShape(
|
||||
new core.ContentChildren('someSelector'),
|
||||
compilerCore.createContentChildren('someSelector'));
|
||||
|
@ -39,10 +40,11 @@ import * as core from '@angular/core';
|
|||
compilerCore.createContentChildren(
|
||||
'someSelector', {read: 'someRead', descendants: false}));
|
||||
compareRuntimeShape(
|
||||
new core.ViewChild('someSelector'), compilerCore.createViewChild('someSelector'));
|
||||
new core.ViewChild('someSelector', {static: false}),
|
||||
compilerCore.createViewChild('someSelector', {static: false}));
|
||||
compareRuntimeShape(
|
||||
new core.ViewChild('someSelector', {read: 'someRead'}),
|
||||
compilerCore.createViewChild('someSelector', {read: 'someRead'}));
|
||||
new core.ViewChild('someSelector', {read: 'someRead', static: false}),
|
||||
compilerCore.createViewChild('someSelector', {read: 'someRead', static: false}));
|
||||
compareRuntimeShape(
|
||||
new core.ViewChildren('someSelector'), compilerCore.createViewChildren('someSelector'));
|
||||
compareRuntimeShape(
|
||||
|
|
|
@ -68,15 +68,15 @@ class SomeDirectiveWithViewChildren {
|
|||
c: any;
|
||||
}
|
||||
|
||||
@Directive({selector: 'someDirective', queries: {'c': new ContentChild('c')}})
|
||||
@Directive({selector: 'someDirective', queries: {'c': new ContentChild('c', {static: false})}})
|
||||
class SomeDirectiveWithContentChild {
|
||||
@ContentChild('a') a: any;
|
||||
@ContentChild('a', {static: false}) a: any;
|
||||
c: any;
|
||||
}
|
||||
|
||||
@Directive({selector: 'someDirective', queries: {'c': new ViewChild('c')}})
|
||||
@Directive({selector: 'someDirective', queries: {'c': new ViewChild('c', {static: false})}})
|
||||
class SomeDirectiveWithViewChild {
|
||||
@ViewChild('a') a: any;
|
||||
@ViewChild('a', {static: false}) a: any;
|
||||
c: any;
|
||||
}
|
||||
|
||||
|
@ -408,37 +408,41 @@ class SomeDirectiveWithoutMetadata {}
|
|||
|
||||
it('should append ContentChild', () => {
|
||||
const directiveMetadata = resolver.resolve(SomeDirectiveWithContentChild);
|
||||
expect(directiveMetadata.queries)
|
||||
.toEqual({'c': new ContentChild('c'), 'a': new ContentChild('a')});
|
||||
expect(directiveMetadata.queries).toEqual({
|
||||
'c': new ContentChild('c', {static: false}),
|
||||
'a': new ContentChild('a', {static: false})
|
||||
});
|
||||
});
|
||||
|
||||
it('should append ViewChild', () => {
|
||||
const directiveMetadata = resolver.resolve(SomeDirectiveWithViewChild);
|
||||
expect(directiveMetadata.queries)
|
||||
.toEqual({'c': new ViewChild('c'), 'a': new ViewChild('a')});
|
||||
expect(directiveMetadata.queries).toEqual({
|
||||
'c': new ViewChild('c', {static: false}),
|
||||
'a': new ViewChild('a', {static: false})
|
||||
});
|
||||
});
|
||||
|
||||
it('should support inheriting queries', () => {
|
||||
@Directive({selector: 'p'})
|
||||
class Parent {
|
||||
@ContentChild('p1')
|
||||
@ContentChild('p1', {static: false})
|
||||
p1: any;
|
||||
@ContentChild('p21')
|
||||
@ContentChild('p21', {static: false})
|
||||
p2: any;
|
||||
}
|
||||
|
||||
class Child extends Parent {
|
||||
@ContentChild('p22')
|
||||
@ContentChild('p22', {static: false})
|
||||
p2: any;
|
||||
@ContentChild('p3')
|
||||
@ContentChild('p3', {static: false})
|
||||
p3: any;
|
||||
}
|
||||
|
||||
const directiveMetadata = resolver.resolve(Child);
|
||||
expect(directiveMetadata.queries).toEqual({
|
||||
'p1': new ContentChild('p1'),
|
||||
'p2': new ContentChild('p22'),
|
||||
'p3': new ContentChild('p3')
|
||||
'p1': new ContentChild('p1', {static: false}),
|
||||
'p2': new ContentChild('p22', {static: false}),
|
||||
'p3': new ContentChild('p3', {static: false})
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -295,7 +295,7 @@ ivyEnabled && describe('render3 jit', () => {
|
|||
it('should compile ContentChild query with string predicate on a directive', () => {
|
||||
@Directive({selector: '[test]'})
|
||||
class TestDirective {
|
||||
@ContentChild('foo') foo: ElementRef|undefined;
|
||||
@ContentChild('foo', {static: false}) foo: ElementRef|undefined;
|
||||
}
|
||||
|
||||
expect((TestDirective as any).ngDirectiveDef.contentQueries).not.toBeNull();
|
||||
|
@ -317,7 +317,7 @@ ivyEnabled && describe('render3 jit', () => {
|
|||
|
||||
@Directive({selector: '[test]'})
|
||||
class TestDirective {
|
||||
@ContentChild(SomeDir) dir: SomeDir|undefined;
|
||||
@ContentChild(SomeDir, {static: false}) dir: SomeDir|undefined;
|
||||
}
|
||||
|
||||
expect((TestDirective as any).ngDirectiveDef.contentQueries).not.toBeNull();
|
||||
|
@ -326,7 +326,7 @@ ivyEnabled && describe('render3 jit', () => {
|
|||
it('should compile ViewChild query on a component', () => {
|
||||
@Component({selector: 'test', template: ''})
|
||||
class TestComponent {
|
||||
@ViewChild('foo') foo: ElementRef|undefined;
|
||||
@ViewChild('foo', {static: false}) foo: ElementRef|undefined;
|
||||
}
|
||||
|
||||
expect((TestComponent as any).ngComponentDef.foo).not.toBeNull();
|
||||
|
|
|
@ -62,7 +62,7 @@ export class NgIfThenElse implements OnInit {
|
|||
|
||||
@ViewChild('primaryBlock', {static: true})
|
||||
primaryBlock: TemplateRef<any>|null = null;
|
||||
@ViewChild('secondaryBlock')
|
||||
@ViewChild('secondaryBlock', {static: true})
|
||||
secondaryBlock: TemplateRef<any>|null = null;
|
||||
|
||||
switchPrimary() {
|
||||
|
|
|
@ -23,7 +23,7 @@ export class Pane {
|
|||
})
|
||||
export class Tab {
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@ContentChild(Pane) pane !: Pane;
|
||||
@ContentChild(Pane, {static: false}) pane !: Pane;
|
||||
}
|
||||
|
||||
@Component({
|
||||
|
|
|
@ -15,10 +15,10 @@ class ChildDirective {
|
|||
|
||||
@Directive({selector: 'someDir'})
|
||||
class SomeDir implements AfterContentInit {
|
||||
@ContentChild(ChildDirective) contentChild !: ChildDirective;
|
||||
@ContentChild(ChildDirective, {static: false}) contentChild !: ChildDirective;
|
||||
|
||||
ngAfterContentInit() {
|
||||
// contentChild is set
|
||||
}
|
||||
}
|
||||
// #enddocregion
|
||||
// #enddocregion
|
||||
|
|
|
@ -27,7 +27,7 @@ export class Pane {
|
|||
`,
|
||||
})
|
||||
export class ViewChildComp {
|
||||
@ViewChild(Pane)
|
||||
@ViewChild(Pane, {static: false})
|
||||
set pane(v: Pane) {
|
||||
setTimeout(() => { this.selectedPane = v.id; }, 0);
|
||||
}
|
||||
|
|
|
@ -16,10 +16,10 @@ class ChildDirective {
|
|||
@Component({selector: 'someCmp', templateUrl: 'someCmp.html'})
|
||||
class SomeCmp implements AfterViewInit {
|
||||
// TODO(issue/24571): remove '!'.
|
||||
@ViewChild(ChildDirective) child !: ChildDirective;
|
||||
@ViewChild(ChildDirective, {static: false}) child !: ChildDirective;
|
||||
|
||||
ngAfterViewInit() {
|
||||
// child is set
|
||||
}
|
||||
}
|
||||
// #enddocregion
|
||||
// #enddocregion
|
||||
|
|
Loading…
Reference in New Issue