parent
e0b31dbfef
commit
d3d3f7191a
|
@ -98,6 +98,8 @@ describe('compiler specification', () => {
|
|||
r3.e();
|
||||
r3.T(3, '!');
|
||||
}
|
||||
ChildComponent.ngComponentDef.h(1, 0);
|
||||
SomeDirective.ngDirectiveDef.h(2, 0);
|
||||
r3.r(1, 0);
|
||||
r3.r(2, 0);
|
||||
}
|
||||
|
@ -266,6 +268,78 @@ describe('compiler specification', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('lifecycle hooks', () => {
|
||||
let events: string[] = [];
|
||||
|
||||
beforeEach(() => { events = []; });
|
||||
|
||||
@Component({selector: 'lifecycle-comp', template: ``})
|
||||
class LifecycleComp {
|
||||
@Input() nameMin: string;
|
||||
|
||||
ngOnInit() { events.push('init' + this.nameMin); }
|
||||
ngDoCheck() { events.push('check' + this.nameMin); }
|
||||
|
||||
ngAfterContentInit() { events.push('content init' + this.nameMin); }
|
||||
ngAfterContentChecked() { events.push('content check' + this.nameMin); }
|
||||
|
||||
ngAfterViewInit() { events.push('view init' + this.nameMin); }
|
||||
ngAfterViewChecked() { events.push('view check' + this.nameMin); }
|
||||
|
||||
ngOnDestroy() { events.push(this.nameMin); }
|
||||
|
||||
static ngComponentDef = r3.defineComponent({
|
||||
type: LifecycleComp,
|
||||
tag: 'lifecycle-comp',
|
||||
factory: () => new LifecycleComp(),
|
||||
template: function(ctx: any, cm: boolean) {},
|
||||
inputs: {nameMin: 'name'}
|
||||
});
|
||||
}
|
||||
|
||||
@Component({
|
||||
selector: 'simple-layout',
|
||||
template: `
|
||||
<lifecycle-comp [name]="name1"></lifecycle-comp>
|
||||
<lifecycle-comp [name]="name2"></lifecycle-comp>
|
||||
`
|
||||
})
|
||||
class SimpleLayout {
|
||||
name1 = '1';
|
||||
name2 = '2';
|
||||
|
||||
static ngComponentDef = r3.defineComponent({
|
||||
type: SimpleLayout,
|
||||
tag: 'simple-layout',
|
||||
factory: () => new SimpleLayout(),
|
||||
template: function(ctx: any, cm: boolean) {
|
||||
if (cm) {
|
||||
r3.E(0, LifecycleComp);
|
||||
r3.e();
|
||||
r3.E(2, LifecycleComp);
|
||||
r3.e();
|
||||
}
|
||||
r3.p(0, 'name', r3.b(ctx.name1));
|
||||
r3.p(2, 'name', r3.b(ctx.name2));
|
||||
LifecycleComp.ngComponentDef.h(1, 0);
|
||||
LifecycleComp.ngComponentDef.h(3, 2);
|
||||
r3.r(1, 0);
|
||||
r3.r(3, 2);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
it('should gen hooks with a few simple components', () => {
|
||||
expect(renderComp(SimpleLayout))
|
||||
.toEqual(`<lifecycle-comp></lifecycle-comp><lifecycle-comp></lifecycle-comp>`);
|
||||
expect(events).toEqual([
|
||||
'init1', 'check1', 'init2', 'check2', 'content init1', 'content check1', 'content init2',
|
||||
'content check2', 'view init1', 'view check1', 'view init2', 'view check2'
|
||||
]);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('template variables', () => {
|
||||
|
||||
interface ForOfContext {
|
||||
|
|
|
@ -175,8 +175,8 @@ describe('lifecycles', () => {
|
|||
}
|
||||
Comp.ngComponentDef.h(1, 0);
|
||||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(3, 2);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -209,10 +209,10 @@ describe('lifecycles', () => {
|
|||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
Comp.ngComponentDef.h(5, 4);
|
||||
ProjectedComp.ngComponentDef.h(7, 6);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(7, 6);
|
||||
r(3, 2);
|
||||
r(5, 4);
|
||||
r(7, 6);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -628,8 +628,8 @@ describe('lifecycles', () => {
|
|||
}
|
||||
Parent.ngComponentDef.h(1, 0);
|
||||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(3, 2);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -675,10 +675,10 @@ describe('lifecycles', () => {
|
|||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
Parent.ngComponentDef.h(6, 5);
|
||||
ProjectedComp.ngComponentDef.h(8, 7);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(8, 7);
|
||||
r(3, 2);
|
||||
r(6, 5);
|
||||
r(8, 7);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -963,8 +963,8 @@ describe('lifecycles', () => {
|
|||
}
|
||||
Comp.ngComponentDef.h(1, 0);
|
||||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(3, 2);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -1003,10 +1003,10 @@ describe('lifecycles', () => {
|
|||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
Comp.ngComponentDef.h(5, 4);
|
||||
ProjectedComp.ngComponentDef.h(7, 6);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(7, 6);
|
||||
r(3, 2);
|
||||
r(5, 4);
|
||||
r(7, 6);
|
||||
}
|
||||
|
||||
renderToHtml(Template, {});
|
||||
|
@ -1032,8 +1032,8 @@ describe('lifecycles', () => {
|
|||
p(2, 'val', b(ctx.val));
|
||||
Comp.ngComponentDef.h(1, 0);
|
||||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(3, 2);
|
||||
});
|
||||
|
||||
/**
|
||||
|
@ -1452,10 +1452,10 @@ describe('lifecycles', () => {
|
|||
ProjectedComp.ngComponentDef.h(3, 2);
|
||||
Comp.ngComponentDef.h(5, 4);
|
||||
ProjectedComp.ngComponentDef.h(7, 6);
|
||||
r(3, 2);
|
||||
r(1, 0);
|
||||
r(7, 6);
|
||||
r(3, 2);
|
||||
r(5, 4);
|
||||
r(7, 6);
|
||||
v();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue