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:
		
							parent
							
								
									7fb3cc07de
								
							
						
					
					
						commit
						b48dd52494
					
				| @ -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 {} | ||||||
| @ -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 {} | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user