99import { ComponentFactoryResolver } from '../../src/render3/component_ref' ;
1010import { Renderer } from '../../src/render3/interfaces/renderer' ;
1111import { RElement } from '../../src/render3/interfaces/renderer_dom' ;
12+ import { SHARED_STYLES_HOST } from '../../src/render3/interfaces/shared_styles_host' ;
13+ import { DOCUMENT } from '@angular/common' ;
1214import { TestBed } from '../../testing' ;
1315
1416import {
@@ -41,7 +43,26 @@ const THROWING_RENDERER_FACTOR2_PROVIDER = {
4143 } ,
4244} ;
4345
46+ const MOCK_SHARED_STYLES_HOST_PROVIDER = {
47+ provide : SHARED_STYLES_HOST ,
48+ useValue : {
49+ addHost : ( ) => { } ,
50+ removeHost : ( ) => { } ,
51+ } ,
52+ } ;
53+
54+ const COMMON_PROVIDERS = [
55+ MOCK_SHARED_STYLES_HOST_PROVIDER ,
56+ { provide : DOCUMENT , useValue : document } ,
57+ ] ;
58+
4459describe ( 'ComponentFactory' , ( ) => {
60+ beforeEach ( ( ) => {
61+ TestBed . configureTestingModule ( {
62+ providers : [ COMMON_PROVIDERS ] ,
63+ } ) ;
64+ } ) ;
65+
4566 const cfr = new ComponentFactoryResolver ( ) ;
4667
4768 describe ( 'constructor()' , ( ) => {
@@ -124,7 +145,7 @@ describe('ComponentFactory', () => {
124145 describe ( '(when `ngModuleRef` is not provided)' , ( ) => {
125146 it ( 'should retrieve `RendererFactory2` from the specified injector' , ( ) => {
126147 const injector = Injector . create ( {
127- providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } ] ,
148+ providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } , COMMON_PROVIDERS ] ,
128149 } ) ;
129150
130151 cf . create ( injector ) ;
@@ -138,6 +159,7 @@ describe('ComponentFactory', () => {
138159 providers : [
139160 { provide : RendererFactory2 , useValue : rendererFactorySpy } ,
140161 { provide : Sanitizer , useFactory : sanitizerFactorySpy , deps : [ ] } ,
162+ COMMON_PROVIDERS ,
141163 ] ,
142164 } ) ;
143165
@@ -150,7 +172,7 @@ describe('ComponentFactory', () => {
150172 describe ( '(when `ngModuleRef` is provided)' , ( ) => {
151173 it ( 'should retrieve `RendererFactory2` from the specified injector first' , ( ) => {
152174 const injector = Injector . create ( {
153- providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } ] ,
175+ providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } , COMMON_PROVIDERS ] ,
154176 } ) ;
155177 const mInjector = Injector . create ( { providers : [ THROWING_RENDERER_FACTOR2_PROVIDER ] } ) ;
156178
@@ -160,7 +182,7 @@ describe('ComponentFactory', () => {
160182 } ) ;
161183
162184 it ( 'should retrieve `RendererFactory2` from the `ngModuleRef` if not provided by the injector' , ( ) => {
163- const injector = Injector . create ( { providers : [ ] } ) ;
185+ const injector = Injector . create ( { providers : [ COMMON_PROVIDERS ] } ) ;
164186 const mInjector = Injector . create ( {
165187 providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } ] ,
166188 } ) ;
@@ -175,7 +197,10 @@ describe('ComponentFactory', () => {
175197 . createSpy ( 'Injector#sanitizerFactory' )
176198 . and . returnValue ( { } ) ;
177199 const injector = Injector . create ( {
178- providers : [ { provide : Sanitizer , useFactory : iSanitizerFactorySpy , deps : [ ] } ] ,
200+ providers : [
201+ { provide : Sanitizer , useFactory : iSanitizerFactorySpy , deps : [ ] } ,
202+ COMMON_PROVIDERS ,
203+ ] ,
179204 } ) ;
180205
181206 const mSanitizerFactorySpy = jasmine
@@ -195,7 +220,7 @@ describe('ComponentFactory', () => {
195220 } ) ;
196221
197222 it ( 'should retrieve `Sanitizer` from the `ngModuleRef` if not provided by the injector' , ( ) => {
198- const injector = Injector . create ( { providers : [ ] } ) ;
223+ const injector = Injector . create ( { providers : [ COMMON_PROVIDERS ] } ) ;
199224
200225 const mSanitizerFactorySpy = jasmine
201226 . createSpy ( 'NgModuleRef#sanitizerFactory' )
@@ -216,7 +241,7 @@ describe('ComponentFactory', () => {
216241 describe ( '(when the factory is bound to a `ngModuleRef`)' , ( ) => {
217242 it ( 'should retrieve `RendererFactory2` from the specified injector first' , ( ) => {
218243 const injector = Injector . create ( {
219- providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } ] ,
244+ providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } , COMMON_PROVIDERS ] ,
220245 } ) ;
221246 ( cf as any ) . ngModule = {
222247 injector : Injector . create ( { providers : [ THROWING_RENDERER_FACTOR2_PROVIDER ] } ) ,
@@ -228,7 +253,7 @@ describe('ComponentFactory', () => {
228253 } ) ;
229254
230255 it ( 'should retrieve `RendererFactory2` from the `ngModuleRef` if not provided by the injector' , ( ) => {
231- const injector = Injector . create ( { providers : [ ] } ) ;
256+ const injector = Injector . create ( { providers : [ COMMON_PROVIDERS ] } ) ;
232257 ( cf as any ) . ngModule = {
233258 injector : Injector . create ( {
234259 providers : [ { provide : RendererFactory2 , useValue : rendererFactorySpy } ] ,
@@ -248,6 +273,7 @@ describe('ComponentFactory', () => {
248273 providers : [
249274 { provide : RendererFactory2 , useValue : rendererFactorySpy } ,
250275 { provide : Sanitizer , useFactory : iSanitizerFactorySpy , deps : [ ] } ,
276+ COMMON_PROVIDERS ,
251277 ] ,
252278 } ) ;
253279
@@ -267,7 +293,7 @@ describe('ComponentFactory', () => {
267293 } ) ;
268294
269295 it ( 'should retrieve `Sanitizer` from the `ngModuleRef` if not provided by the injector' , ( ) => {
270- const injector = Injector . create ( { providers : [ ] } ) ;
296+ const injector = Injector . create ( { providers : [ COMMON_PROVIDERS ] } ) ;
271297
272298 const mSanitizerFactorySpy = jasmine
273299 . createSpy ( 'NgModuleRef#sanitizerFactory' )
@@ -303,6 +329,7 @@ describe('ComponentFactory', () => {
303329 const injector = Injector . create ( {
304330 providers : [
305331 { provide : RendererFactory2 , useFactory : ( ) => new TestMockRendererFactory ( ) , deps : [ ] } ,
332+ COMMON_PROVIDERS ,
306333 ] ,
307334 } ) ;
308335
0 commit comments