test: add integration test for undecorated-classes-with-di migration (#32349)

Adds tests for the `undecorated-classes-with-di` migration to the
`ng_update_migrations` integration test.

PR Close #32349
This commit is contained in:
Paul Gschwendtner 2019-08-27 17:41:05 +02:00 committed by Miško Hevery
parent b48dd52494
commit 288e5d894d
6 changed files with 204 additions and 0 deletions

View File

@ -0,0 +1,24 @@
import {Component, NgModule} from '@angular/core';
import {NG_ASYNC_VALIDATORS} from '@angular/forms';
export const hostBindings = {
class: 'test-base-comp',
};
const nonExportedStyleUrlsVar = ['./base-component.css'];
@Component({
selector: 'base-comp',
template: `
<span>This is the template.</span>
`,
host: hostBindings,
styleUrls: nonExportedStyleUrlsVar,
providers: [
{provide: NG_ASYNC_VALIDATORS, useValue: null},
]
})
export class BaseComponentFromOtherFile {}
@NgModule({declarations: [BaseComponentFromOtherFile]})
export class BaseComponentModule {}

View File

@ -0,0 +1,42 @@
import {Directive, NgModule, NgZone} from '@angular/core';
export class BaseClass1 {
constructor(zone: NgZone) {}
}
@Directive({selector: 'sel'})
export class DirectiveWithInheritedCtor extends BaseClass1 {}
export class BaseClass2 {
constructor(zone: NgZone) {}
}
@Directive({selector: 'sel'})
export class DirectiveWithExplicitCtor extends BaseClass2 {
constructor(zone: NgZone) {
super(zone);
}
}
export class BaseClassWithoutCtor {}
@Directive({selector: 'sel'})
export class DirectiveWithoutInheritedCtor extends BaseClassWithoutCtor {}
export class BaseClass3 {
constructor(zone: NgZone) {}
}
export class PassThroughClass extends BaseClass3 {}
@Directive({selector: 'sel'})
export class DirectiveWithInheritedCtorAndClassesInBetween extends PassThroughClass {}
@NgModule({
declarations: [
DirectiveWithInheritedCtor,
DirectiveWithoutInheritedCtor,
DirectiveWithExplicitCtor,
DirectiveWithInheritedCtorAndClassesInBetween,
]
})
export class TestModule {}

View File

@ -0,0 +1,45 @@
import {Directive, NgModule, NgZone} from '@angular/core';
@Directive()
export class BaseClass1 {
constructor(zone: NgZone) {}
}
@Directive({selector: 'sel'})
export class DirectiveWithInheritedCtor extends BaseClass1 {}
export class BaseClass2 {
constructor(zone: NgZone) {}
}
@Directive({selector: 'sel'})
export class DirectiveWithExplicitCtor extends BaseClass2 {
constructor(zone: NgZone) {
super(zone);
}
}
export class BaseClassWithoutCtor {}
@Directive({selector: 'sel'})
export class DirectiveWithoutInheritedCtor extends BaseClassWithoutCtor {}
@Directive()
export class BaseClass3 {
constructor(zone: NgZone) {}
}
@Directive()
export class PassThroughClass extends BaseClass3 {}
@Directive({selector: 'sel'})
export class DirectiveWithInheritedCtorAndClassesInBetween extends PassThroughClass {}
@NgModule({
declarations: [
DirectiveWithInheritedCtor,
DirectiveWithoutInheritedCtor,
DirectiveWithExplicitCtor,
DirectiveWithInheritedCtorAndClassesInBetween,
]
})
export class TestModule {}

View File

@ -0,0 +1,31 @@
import {Directive, NgModule, NgZone} from '@angular/core';
import {CheckboxControlValueAccessor} from '@angular/forms';
import {BaseComponentFromOtherFile} from './base-component';
@Directive({
selector: 'my-base-dir',
providers: [{provide: NgZone, useValue: null}]
})
export class BaseDirective {}
export class DerivedDirective extends BaseDirective {}
export class DerivedDirectiveFromNodeModules extends CheckboxControlValueAccessor {}
export class DerivedComponentFromOtherSourceFile extends BaseComponentFromOtherFile {}
@NgModule({
declarations: [
DerivedDirective,
DerivedDirectiveFromNodeModules,
DerivedComponentFromOtherSourceFile,
],
})
export class TestModule {}
@NgModule({
declarations: [BaseDirective],
})
export class BaseClassesModule {}

View File

@ -0,0 +1,62 @@
import { Directive, NgModule, NgZone, Component } from '@angular/core';
import { CheckboxControlValueAccessor, NG_VALUE_ACCESSOR, NG_ASYNC_VALIDATORS } from '@angular/forms';
import { BaseComponentFromOtherFile, hostBindings } from './base-component';
@Directive({
selector: 'my-base-dir',
providers: [{provide: NgZone, useValue: null}]
})
export class BaseDirective {}
@Directive({
selector: 'my-base-dir',
providers: [{ provide: NgZone, useValue: null }]
})
export class DerivedDirective extends BaseDirective {}
@Directive({
selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",
host: {
"(change)": "onChange($event.target.checked)",
"(blur)": "onTouched()"
},
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: CheckboxControlValueAccessor,
multi: true
}]
})
export class DerivedDirectiveFromNodeModules extends CheckboxControlValueAccessor {}
@Component({
selector: 'base-comp',
template: `
<span>This is the template.</span>
`,
host: hostBindings,
providers: [
{ provide: NG_ASYNC_VALIDATORS, useValue: null },
],
// The following fields were copied from the base class,
// but could not be updated automatically to work in the
// new file location. Please add any required imports for
// the properties below:
styleUrls: nonExportedStyleUrlsVar
})
export class DerivedComponentFromOtherSourceFile extends BaseComponentFromOtherFile {}
@NgModule({
declarations: [
DerivedDirective,
DerivedDirectiveFromNodeModules,
DerivedComponentFromOtherSourceFile,
],
})
export class TestModule {}
@NgModule({
declarations: [BaseDirective],
})
export class BaseClassesModule {}