ngMocks.formatHtml
ngMocks.formatHtml
, testlerde daha basit HTML beklentileri sağlamak için HTML'yi normalize etmeyi amaçlamaktadır.
const element = document.createElement('div');
// varsayılan mod
ngMocks.formatHtml(element); // boş
// dış mod
ngMocks.formatHtml(element, true); // <div></div>
ngMocks.formatHtml
, aşağıdakileri kaldırır:
- tüm HTML yorumları
- boşluk, yeni satır, sekme dizileri tek bir boşluk sembolü ile değiştirilir
- kardeşler arasındaki boşluklar kaldırılır, yani
ipucu
ngMocks.formatHtml
, aşağıdaki türlerden birini kabul eder: bir dize, HTMLElement
, Text
, Comment
, DebugElement
, DebugNode
, ComponentFixture
veya bunların bir dizisi.
kirli html
şu şekilde bir HTML
<div>
<!-- binding1 -->
<strong>header</strong>
<!-- binding2 -->
<ul>
<li>1</li>
<li>2</li>
</ul>
<!-- binding3 -->
</div>
şuna dönüşür
<div><strong>header</strong><ul><li>1</li><li>2</li></ul></div>
ng-container
Güzel bir şey, ngMocks.formatHtml
'nin arka planda ngMocks.crawl
kullanmasıdır ve ng-container
'a saygı göstermesidir.
bilgi
Bu yüzden ng-container
'a bir gösterimimiz varsa, içeriğini belirleme yapabiliriz.
<div>
header
<ng-container block1>1</ng-container>
body
<ng-container block2>2</ng-container>
footer
</div>
const div = ngMocks.find('div');
const block1 = ngMocks.reveal(div, ['block1']);
const block2 = ngMocks.reveal(div, ['block2']);
ngMocks.formatHtml(div, true);
// döner
// <div> headaer 1 body 2 footer </div>
ngMocks.formatHtml(block1);
// döner
// 1
ngMocks.formatHtml(block2);
// döner
// 2