test: add integration test for missing-injectable migration (#32349)

Adds a new test to the `ng_update_migrations` that ensures
that the `missing-injectable` migration works properly in a
real CLI project. Additionally this ensures that the
`missing-injectable` and `undecorated-classes-with-di` migrations
play nicely together.

PR Close #32349
This commit is contained in:
Paul Gschwendtner 2019-08-27 17:40:55 +02:00 committed by Miško Hevery
parent 7fb3cc07de
commit b48dd52494
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,31 @@
import {Directive, NgModule, NgZone} from '@angular/core';
export class TypeCase {}
// undecorated-classes-with-di migration will add "@Injectable" here
// because the constructor is inherited in "ProvideCase".
class BaseProviderCase {
constructor(zone: NgZone) {}
}
export class ProvideCase extends BaseProviderCase {}
export class ProviderClass {}
export class DontNeedCase {}
@Directive()
export class DirectiveCase {}
@NgModule({
providers: [
TypeCase,
{provide: ProvideCase},
{provide: DontNeedCase, useValue: 0},
{provide: DontNeedCase, useFactory: () => null},
{provide: DontNeedCase, useExisting: TypeCase},
{provide: DontNeedCase, useClass: ProviderClass},
DirectiveCase,
]
})
export class ProvidersTestModule {}

View File

@ -0,0 +1,35 @@
import { Directive, NgModule, NgZone, Injectable } from '@angular/core';
@Injectable()
export class TypeCase {}
// undecorated-classes-with-di migration will add "@Injectable" here
// because the constructor is inherited in "ProvideCase".
@Injectable()
class BaseProviderCase {
constructor(zone: NgZone) {}
}
@Injectable()
export class ProvideCase extends BaseProviderCase {}
@Injectable()
export class ProviderClass {}
export class DontNeedCase {}
@Directive()
export class DirectiveCase {}
@NgModule({
providers: [
TypeCase,
{provide: ProvideCase},
{provide: DontNeedCase, useValue: 0},
{provide: DontNeedCase, useFactory: () => null},
{provide: DontNeedCase, useExisting: TypeCase},
{provide: DontNeedCase, useClass: ProviderClass},
DirectiveCase,
]
})
export class ProvidersTestModule {}