Skip to content

Commit

Permalink
test(compiler): update examples and compiler tests (#30626) (#30641)
Browse files Browse the repository at this point in the history
PR Close #30626

PR Close #30641
  • Loading branch information
kara authored and jasonaden committed May 23, 2019
1 parent 7323072 commit 04196ec
Show file tree
Hide file tree
Showing 10 changed files with 49 additions and 43 deletions.
Expand Up @@ -1713,7 +1713,7 @@ describe('compiler compliance', () => {
\`
})
export class ContentQueryComponent {
@ContentChild(SomeDirective) someDir: SomeDirective;
@ContentChild(SomeDirective, {static: false}) someDir: SomeDirective;
@ContentChildren(SomeDirective) someDirList !: QueryList<SomeDirective>;
}
Expand Down Expand Up @@ -1785,7 +1785,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]})
Expand Down Expand Up @@ -1910,9 +1910,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]})
Expand Down Expand Up @@ -1965,7 +1965,7 @@ describe('compiler compliance', () => {
\`
})
export class ContentQueryComponent {
@Input() @ContentChild('foo') foo: any;
@Input() @ContentChild('foo', {static: false}) foo: any;
}
@Component({
Expand Down Expand Up @@ -3138,7 +3138,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({
Expand Down
12 changes: 6 additions & 6 deletions packages/compiler-cli/test/ngtsc/ngtsc_spec.ts
Expand Up @@ -1537,10 +1537,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) {}
}
`);

Expand Down Expand Up @@ -1569,7 +1569,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) {}
Expand Down Expand Up @@ -1601,11 +1601,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;
}
`);

Expand Down
14 changes: 8 additions & 6 deletions packages/compiler/test/core_spec.ts
Expand Up @@ -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'));
Expand All @@ -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(
Expand Down
34 changes: 19 additions & 15 deletions packages/compiler/test/directive_resolver_spec.ts
Expand Up @@ -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;
}

Expand Down Expand Up @@ -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})
});
});
});
Expand Down
6 changes: 3 additions & 3 deletions packages/core/test/render3/ivy/jit_spec.ts
Expand Up @@ -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();
Expand All @@ -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();
Expand All @@ -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();
Expand Down
2 changes: 1 addition & 1 deletion packages/examples/common/ngIf/ts/module.ts
Expand Up @@ -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() {
Expand Down
Expand Up @@ -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({
Expand Down
Expand Up @@ -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
Expand Up @@ -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);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/examples/core/di/ts/viewChild/view_child_howto.ts
Expand Up @@ -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

0 comments on commit 04196ec

Please sign in to comment.