@@ -209,13 +209,15 @@ describe('renderer factory lifecycle', () => {
209209 } )
210210 class AnimComp { }
211211
212- const rendererFactory = new MockRendererFactory ( [ 'setProperty' ] ) ;
213-
212+ let rendererFactory ! : MockRendererFactory ;
214213 TestBed . configureTestingModule ( {
215214 providers : [
216215 {
217216 provide : RendererFactory2 ,
218- useValue : rendererFactory ,
217+ useFactory : ( doc : Document ) => {
218+ rendererFactory = new MockRendererFactory ( doc , [ 'setProperty' ] ) ;
219+ return rendererFactory ;
220+ } ,
219221 deps : [ DOCUMENT ] ,
220222 } ,
221223 ] ,
@@ -245,12 +247,15 @@ describe('renderer factory lifecycle', () => {
245247 visible = true ;
246248 }
247249
248- const rendererFactory = new MockRendererFactory ( [ 'destroy' , 'createElement' ] ) ;
250+ let rendererFactory ! : MockRendererFactory ;
249251 TestBed . configureTestingModule ( {
250252 providers : [
251253 {
252254 provide : RendererFactory2 ,
253- useValue : rendererFactory ,
255+ useFactory : ( doc : Document ) => {
256+ rendererFactory = new MockRendererFactory ( doc , [ 'destroy' , 'createElement' ] ) ;
257+ return rendererFactory ;
258+ } ,
254259 deps : [ DOCUMENT ] ,
255260 } ,
256261 ] ,
@@ -545,12 +550,15 @@ export class MockRendererFactory implements RendererFactory2 {
545550 lastRenderer : any ;
546551 private _spyOnMethods : string [ ] ;
547552
548- constructor ( spyOnMethods ?: string [ ] ) {
553+ constructor (
554+ private document : Document ,
555+ spyOnMethods ?: string [ ] ,
556+ ) {
549557 this . _spyOnMethods = spyOnMethods || [ ] ;
550558 }
551559
552560 createRenderer ( hostElement : RElement | null , rendererType : RendererType2 | null ) : Renderer2 {
553- const renderer = ( this . lastRenderer = new MockRenderer ( this . _spyOnMethods ) ) ;
561+ const renderer = ( this . lastRenderer = new MockRenderer ( this . _spyOnMethods , this . document ) ) ;
554562 return renderer ;
555563 }
556564}
@@ -561,21 +569,26 @@ class MockRenderer implements Renderer2 {
561569
562570 destroyNode : ( ( node : any ) => void ) | null = null ;
563571
564- constructor ( spyOnMethods : string [ ] ) {
572+ constructor (
573+ spyOnMethods : string [ ] ,
574+ private document : Document ,
575+ ) {
565576 spyOnMethods . forEach ( ( methodName ) => {
566577 this . spies [ methodName ] = spyOn ( this as any , methodName ) . and . callThrough ( ) ;
567578 } ) ;
568579 }
569580
570581 destroy ( ) : void { }
571582 createComment ( value : string ) : Comment {
572- return document . createComment ( value ) ;
583+ return this . document . createComment ( value ) ;
573584 }
574585 createElement ( name : string , namespace ?: string | null ) : Element {
575- return namespace ? document . createElementNS ( namespace , name ) : document . createElement ( name ) ;
586+ return namespace
587+ ? this . document . createElementNS ( namespace , name )
588+ : this . document . createElement ( name ) ;
576589 }
577590 createText ( value : string ) : Text {
578- return document . createTextNode ( value ) ;
591+ return this . document . createTextNode ( value ) ;
579592 }
580593 appendChild ( parent : RElement , newChild : Node ) : void {
581594 parent . appendChild ( newChild ) ;
@@ -588,7 +601,7 @@ class MockRenderer implements Renderer2 {
588601 }
589602 selectRootElement ( selectorOrNode : string | any ) : RElement {
590603 return typeof selectorOrNode === 'string'
591- ? document . querySelector < HTMLElement > ( selectorOrNode ) !
604+ ? this . document . querySelector < HTMLElement > ( selectorOrNode ) !
592605 : selectorOrNode ;
593606 }
594607 parentNode ( node : Node ) : Element | null {
0 commit comments