test(core): update query-specific tests in core (#30626)

PR Close #30626
This commit is contained in:
Kara Erickson 2019-05-22 21:05:26 -07:00 committed by Jason Aden
parent 214ae0ea4c
commit faac51fd2e
3 changed files with 44 additions and 41 deletions

View File

@ -177,7 +177,7 @@ describe('query logic', () => {
it('should support ViewChild query inherited from undecorated superclasses', () => { it('should support ViewChild query inherited from undecorated superclasses', () => {
class MyComp { class MyComp {
@ViewChild('foo') foo: any; @ViewChild('foo', {static: false}) foo: any;
} }
@Component({selector: 'sub-comp', template: '<div #foo></div>'}) @Component({selector: 'sub-comp', template: '<div #foo></div>'})
@ -193,7 +193,7 @@ describe('query logic', () => {
it('should support ViewChild query inherited from undecorated grand superclasses', () => { it('should support ViewChild query inherited from undecorated grand superclasses', () => {
class MySuperComp { class MySuperComp {
@ViewChild('foo') foo: any; @ViewChild('foo', {static: false}) foo: any;
} }
class MyComp extends MySuperComp {} class MyComp extends MySuperComp {}
@ -493,7 +493,7 @@ describe('query logic', () => {
it('should support ContentChild query inherited from undecorated superclasses', () => { it('should support ContentChild query inherited from undecorated superclasses', () => {
class MyComp { class MyComp {
@ContentChild('foo') foo: any; @ContentChild('foo', {static: false}) foo: any;
} }
@Component({selector: 'sub-comp', template: '<ng-content></ng-content>'}) @Component({selector: 'sub-comp', template: '<ng-content></ng-content>'})
@ -502,7 +502,7 @@ describe('query logic', () => {
@Component({template: '<sub-comp><div #foo></div></sub-comp>'}) @Component({template: '<sub-comp><div #foo></div></sub-comp>'})
class App { class App {
@ViewChild(SubComp) subComp !: SubComp; @ViewChild(SubComp, {static: false}) subComp !: SubComp;
} }
TestBed.configureTestingModule({declarations: [App, SubComp]}); TestBed.configureTestingModule({declarations: [App, SubComp]});
@ -514,7 +514,7 @@ describe('query logic', () => {
it('should support ContentChild query inherited from undecorated grand superclasses', () => { it('should support ContentChild query inherited from undecorated grand superclasses', () => {
class MySuperComp { class MySuperComp {
@ContentChild('foo') foo: any; @ContentChild('foo', {static: false}) foo: any;
} }
class MyComp extends MySuperComp {} class MyComp extends MySuperComp {}
@ -525,7 +525,7 @@ describe('query logic', () => {
@Component({template: '<sub-comp><div #foo></div></sub-comp>'}) @Component({template: '<sub-comp><div #foo></div></sub-comp>'})
class App { class App {
@ViewChild(SubComp) subComp !: SubComp; @ViewChild(SubComp, {static: false}) subComp !: SubComp;
} }
TestBed.configureTestingModule({declarations: [App, SubComp]}); TestBed.configureTestingModule({declarations: [App, SubComp]});
@ -557,7 +557,7 @@ describe('query logic', () => {
` `
}) })
class App { class App {
@ViewChild(SubComp) subComp !: SubComp; @ViewChild(SubComp, {static: false}) subComp !: SubComp;
} }
TestBed.configureTestingModule({declarations: [App, SubComp, SomeDir]}); TestBed.configureTestingModule({declarations: [App, SubComp, SomeDir]});
@ -592,7 +592,7 @@ describe('query logic', () => {
` `
}) })
class App { class App {
@ViewChild(SubComp) subComp !: SubComp; @ViewChild(SubComp, {static: false}) subComp !: SubComp;
} }
TestBed.configureTestingModule({declarations: [App, SubComp, SomeDir]}); TestBed.configureTestingModule({declarations: [App, SubComp, SomeDir]});
@ -806,9 +806,10 @@ describe('query logic', () => {
`, `,
}) })
class TestComponent { class TestComponent {
@ViewChild(ViewContainerManipulatorDirective) vc !: ViewContainerManipulatorDirective; @ViewChild(ViewContainerManipulatorDirective, {static: false})
@ViewChild('tpl1') tpl1 !: TemplateRef<any>; vc !: ViewContainerManipulatorDirective;
@ViewChild('tpl2') tpl2 !: TemplateRef<any>; @ViewChild('tpl1', {static: false}) tpl1 !: TemplateRef<any>;
@ViewChild('tpl2', {static: false}) tpl2 !: TemplateRef<any>;
@ViewChildren('foo') query !: QueryList<any>; @ViewChildren('foo') query !: QueryList<any>;
} }
@ -878,9 +879,9 @@ describe('query logic', () => {
`, `,
}) })
class TestComponent { class TestComponent {
@ViewChild('tpl') tpl !: TemplateRef<any>; @ViewChild('tpl', {static: false}) tpl !: TemplateRef<any>;
@ViewChild('vi0') vi0 !: ViewContainerManipulatorDirective; @ViewChild('vi0', {static: false}) vi0 !: ViewContainerManipulatorDirective;
@ViewChild('vi1') vi1 !: ViewContainerManipulatorDirective; @ViewChild('vi1', {static: false}) vi1 !: ViewContainerManipulatorDirective;
@ViewChildren('foo') query !: QueryList<any>; @ViewChildren('foo') query !: QueryList<any>;
} }
@ -963,8 +964,8 @@ function initWithTemplate(compType: Type<any>, template: string) {
@Component({selector: 'local-ref-query-component', template: '<ng-content></ng-content>'}) @Component({selector: 'local-ref-query-component', template: '<ng-content></ng-content>'})
class QueryComp { class QueryComp {
@ViewChild('viewQuery') viewChild !: any; @ViewChild('viewQuery', {static: false}) viewChild !: any;
@ContentChild('contentQuery') contentChild !: any; @ContentChild('contentQuery', {static: false}) contentChild !: any;
@ViewChildren('viewQuery') viewChildren !: QueryList<any>; @ViewChildren('viewQuery') viewChildren !: QueryList<any>;
@ContentChildren('contentQuery') contentChildren !: QueryList<any>; @ContentChildren('contentQuery') contentChildren !: QueryList<any>;

View File

@ -752,7 +752,7 @@ describe('Query API', () => {
class AutoProjecting { class AutoProjecting {
// TODO(issue/24571): // TODO(issue/24571):
// remove '!'. // remove '!'.
@ContentChild(TemplateRef) @ContentChild(TemplateRef, {static: false})
content !: TemplateRef<any>; content !: TemplateRef<any>;
// TODO(issue/24571): // TODO(issue/24571):
@ -784,7 +784,7 @@ describe('Query API', () => {
class AutoProjecting { class AutoProjecting {
// TODO(issue/24571): // TODO(issue/24571):
// remove '!'. // remove '!'.
@ContentChild(TemplateRef) @ContentChild(TemplateRef, {static: false})
content !: TemplateRef<any>; content !: TemplateRef<any>;
// TODO(issue/24571): // TODO(issue/24571):
@ -839,7 +839,7 @@ class NeedsContentChild implements AfterContentInit, AfterContentChecked {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
_child !: TextDirective; _child !: TextDirective;
@ContentChild(TextDirective) @ContentChild(TextDirective, {static: false})
set child(value) { set child(value) {
this._child = value; this._child = value;
this.logs.push(['setter', value ? value.text : null]); this.logs.push(['setter', value ? value.text : null]);
@ -856,7 +856,7 @@ class NeedsContentChild implements AfterContentInit, AfterContentChecked {
@Directive({selector: '[directive-needs-content-child]'}) @Directive({selector: '[directive-needs-content-child]'})
class DirectiveNeedsContentChild { class DirectiveNeedsContentChild {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) child !: TextDirective; @ContentChild(TextDirective, {static: false}) child !: TextDirective;
} }
@Component({selector: 'needs-view-child', template: `<div *ngIf="shouldShow" text="foo"></div>`}) @Component({selector: 'needs-view-child', template: `<div *ngIf="shouldShow" text="foo"></div>`})
@ -867,7 +867,7 @@ class NeedsViewChild implements AfterViewInit, AfterViewChecked {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
_child !: TextDirective; _child !: TextDirective;
@ViewChild(TextDirective) @ViewChild(TextDirective, {static: false})
set child(value) { set child(value) {
this._child = value; this._child = value;
this.logs.push(['setter', value ? value.text : null]); this.logs.push(['setter', value ? value.text : null]);
@ -896,9 +896,9 @@ function createTestCmpAndDetectChanges<T>(type: Type<T>, template: string): Comp
@Component({selector: 'needs-static-content-view-child', template: `<div text="viewFoo"></div>`}) @Component({selector: 'needs-static-content-view-child', template: `<div text="viewFoo"></div>`})
class NeedsStaticContentAndViewChild { class NeedsStaticContentAndViewChild {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) contentChild !: TextDirective; @ContentChild(TextDirective, {static: true}) contentChild !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild(TextDirective) viewChild !: TextDirective; @ViewChild(TextDirective, {static: true}) viewChild !: TextDirective;
} }
@Directive({selector: '[dir]'}) @Directive({selector: '[dir]'})
@ -917,13 +917,13 @@ class NeedsQuery {
@Component({selector: 'needs-four-queries', template: ''}) @Component({selector: 'needs-four-queries', template: ''})
class NeedsFourQueries { class NeedsFourQueries {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) query1 !: TextDirective; @ContentChild(TextDirective, {static: false}) query1 !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) query2 !: TextDirective; @ContentChild(TextDirective, {static: false}) query2 !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) query3 !: TextDirective; @ContentChild(TextDirective, {static: false}) query3 !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TextDirective) query4 !: TextDirective; @ContentChild(TextDirective, {static: false}) query4 !: TextDirective;
} }
@Component({ @Component({
@ -1025,9 +1025,9 @@ class NeedsTpl {
{selector: 'needs-named-tpl', template: '<ng-template #tpl><div>shadow</div></ng-template>'}) {selector: 'needs-named-tpl', template: '<ng-template #tpl><div>shadow</div></ng-template>'})
class NeedsNamedTpl { class NeedsNamedTpl {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('tpl') viewTpl !: TemplateRef<Object>; @ViewChild('tpl', {static: true}) viewTpl !: TemplateRef<Object>;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild('tpl') contentTpl !: TemplateRef<Object>; @ContentChild('tpl', {static: true}) contentTpl !: TemplateRef<Object>;
constructor(public vc: ViewContainerRef) {} constructor(public vc: ViewContainerRef) {}
} }
@ -1042,9 +1042,10 @@ class NeedsContentChildrenWithRead {
@Component({selector: 'needs-content-child-read', template: ''}) @Component({selector: 'needs-content-child-read', template: ''})
class NeedsContentChildWithRead { class NeedsContentChildWithRead {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild('q', {read: TextDirective}) textDirChild !: TextDirective; @ContentChild('q', {read: TextDirective, static: false}) textDirChild !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild('nonExisting', {read: TextDirective}) nonExistingVar !: TextDirective; @ContentChild('nonExisting', {read: TextDirective, static: false})
nonExistingVar !: TextDirective;
} }
@Component({selector: 'needs-content-children-shallow', template: ''}) @Component({selector: 'needs-content-children-shallow', template: ''})
@ -1059,7 +1060,7 @@ class NeedsContentChildrenShallow {
}) })
class NeedsContentChildTemplateRef { class NeedsContentChildTemplateRef {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TemplateRef) templateRef !: TemplateRef<any>; @ContentChild(TemplateRef, {static: true}) templateRef !: TemplateRef<any>;
} }
@Component({ @Component({
@ -1088,19 +1089,20 @@ class NeedsViewChildrenWithRead {
}) })
class NeedsViewChildWithRead { class NeedsViewChildWithRead {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('q', {read: TextDirective}) textDirChild !: TextDirective; @ViewChild('q', {read: TextDirective, static: false}) textDirChild !: TextDirective;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('nonExisting', {read: TextDirective}) nonExistingVar !: TextDirective; @ViewChild('nonExisting', {read: TextDirective, static: false}) nonExistingVar !: TextDirective;
} }
@Component({selector: 'needs-viewcontainer-read', template: '<div #q></div>'}) @Component({selector: 'needs-viewcontainer-read', template: '<div #q></div>'})
class NeedsViewContainerWithRead { class NeedsViewContainerWithRead {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('q', {read: ViewContainerRef}) vc !: ViewContainerRef; @ViewChild('q', {read: ViewContainerRef, static: false}) vc !: ViewContainerRef;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('nonExisting', {read: ViewContainerRef}) nonExistingVar !: ViewContainerRef; @ViewChild('nonExisting', {read: ViewContainerRef, static: false})
nonExistingVar !: ViewContainerRef;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TemplateRef) template !: TemplateRef<Object>; @ContentChild(TemplateRef, {static: true}) template !: TemplateRef<Object>;
createView() { this.vc.createEmbeddedView(this.template); } createView() { this.vc.createEmbeddedView(this.template); }
} }
@ -1123,10 +1125,10 @@ class MyCompBroken0 {
@Component({selector: 'manual-projecting', template: '<div #vc></div>'}) @Component({selector: 'manual-projecting', template: '<div #vc></div>'})
class ManualProjecting { class ManualProjecting {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ContentChild(TemplateRef) template !: TemplateRef<any>; @ContentChild(TemplateRef, {static: true}) template !: TemplateRef<any>;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('vc', {read: ViewContainerRef}) @ViewChild('vc', {read: ViewContainerRef, static: false})
vc !: ViewContainerRef; vc !: ViewContainerRef;
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.

View File

@ -83,13 +83,13 @@ class Simple {
@Component({selector: 'view-child-type-selector', template: ''}) @Component({selector: 'view-child-type-selector', template: ''})
class ViewChildTypeSelectorComponent { class ViewChildTypeSelectorComponent {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild(Simple) child !: Simple; @ViewChild(Simple, {static: false}) child !: Simple;
} }
@Component({selector: 'view-child-string-selector', template: ''}) @Component({selector: 'view-child-string-selector', template: ''})
class ViewChildStringSelectorComponent { class ViewChildStringSelectorComponent {
// TODO(issue/24571): remove '!'. // TODO(issue/24571): remove '!'.
@ViewChild('child') child !: ElementRef; @ViewChild('child', {static: false}) child !: ElementRef;
} }
@Component({selector: 'view-children-type-selector', template: ''}) @Component({selector: 'view-children-type-selector', template: ''})