51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google LLC All Rights Reserved. | ||
|  |  * | ||
|  |  * Use of this source code is governed by an MIT-style license that can be | ||
|  |  * found in the LICENSE file at https://angular.io/license
 | ||
|  |  */ | ||
|  | 
 | ||
|  | import {ɵgetDOM as getDOM} from '@angular/common'; | ||
|  | import {ServerStylesHost} from '@angular/platform-server/src/styles_host'; | ||
|  | 
 | ||
|  | 
 | ||
|  | (function() { | ||
|  | if (getDOM().supportsDOMEvents()) return;  // NODE only
 | ||
|  | 
 | ||
|  | describe('ServerStylesHost', () => { | ||
|  |   let ssh: ServerStylesHost; | ||
|  |   let documentHead: Element; | ||
|  |   beforeEach(() => { | ||
|  |     const doc = getDOM().createHtmlDocument(); | ||
|  |     ssh = new ServerStylesHost(doc, ''); | ||
|  |     documentHead = doc.head; | ||
|  |     doc.querySelector('title')?.remove(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should add existing styles', () => { | ||
|  |     ssh.addStyles(['a {};']); | ||
|  |     expect(documentHead.innerHTML).toEqual('<style>a {};</style>'); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should add new styles to hosts', () => { | ||
|  |     ssh.addStyles(['a {};']); | ||
|  |     expect(documentHead.innerHTML).toEqual('<style>a {};</style>'); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should add styles only once to hosts', () => { | ||
|  |     ssh.addStyles(['a {};']); | ||
|  |     ssh.addStyles(['a {};']); | ||
|  |     expect(documentHead.innerHTML).toEqual('<style>a {};</style>'); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should remove style nodes on destroy', () => { | ||
|  |     ssh.addStyles(['a {};']); | ||
|  |     expect(documentHead.innerHTML).toEqual('<style>a {};</style>'); | ||
|  | 
 | ||
|  |     ssh.ngOnDestroy(); | ||
|  |     expect(documentHead.innerHTML).toEqual(''); | ||
|  |   }); | ||
|  | }); | ||
|  | })(); |