@@ -1202,7 +1202,7 @@ describe('"to satisfy" assertion', () => {
1202
1202
} ) ;
1203
1203
1204
1204
describe ( 'when used in a real world example' , ( ) => {
1205
- it ( 'should produce a good satisfy diff' , ( ) => {
1205
+ it ( 'should produce a good satisfy diff (text) ' , ( ) => {
1206
1206
const element = parseHtml (
1207
1207
'<ul class="knockout-autocomplete menu scrollable floating-menu" style="left: 0px; top: 0px; bottom: auto; display: block">' +
1208
1208
'<li class="selected" data-index="0">' +
@@ -1286,5 +1286,61 @@ describe('"to satisfy" assertion', () => {
1286
1286
`
1287
1287
) ;
1288
1288
} ) ;
1289
+
1290
+ it ( 'should produce a good satisfy diff (html)' , ( ) => {
1291
+ const element = parseHtml (
1292
+ '<ul class="knockout-autocomplete menu scrollable floating-menu" style="left: 0px; top: 0px; bottom: auto; display: block">' +
1293
+ '<li class="selected" data-index="0">' +
1294
+ '<span class="before"></span>' +
1295
+ '<strong class="match">pr</strong>' +
1296
+ '<span class="after">ivate</span>' +
1297
+ '</li>' +
1298
+ '<li data-index="1">' +
1299
+ '<span class="before"></span>' +
1300
+ '<strong class="match">pr</strong>' +
1301
+ '<span class="after">otected</span>' +
1302
+ '</li>' +
1303
+ '</ul>'
1304
+ ) ;
1305
+
1306
+ expect (
1307
+ ( ) => {
1308
+ expect ( element , 'to satisfy' , {
1309
+ attributes : {
1310
+ style : { display : 'block' } ,
1311
+ class : [ 'knockout-autocomplete' , 'floating-menu' ]
1312
+ } ,
1313
+ children : [
1314
+ {
1315
+ attributes : { 'data-index' : '0' , class : 'selected' } ,
1316
+ children : [
1317
+ { attributes : { class : 'before' } , children : [ ] } ,
1318
+ { attributes : { class : 'match' } , children : [ 'pr' ] } ,
1319
+ { attributes : { class : 'after' } , children : [ 'ivate' ] }
1320
+ ]
1321
+ } ,
1322
+ {
1323
+ attributes : { 'data-index' : '1' , class : undefined } ,
1324
+ children : [
1325
+ { attributes : { class : 'before' } , children : [ ] } ,
1326
+ { attributes : { class : 'match' } , children : [ 'pr' ] } ,
1327
+ { attributes : { class : 'after' } , children : [ 'odtected' ] }
1328
+ ]
1329
+ }
1330
+ ]
1331
+ } ) ;
1332
+ } ,
1333
+ 'to throw' ,
1334
+ expect . it ( error => {
1335
+ const message = error . getErrorMessage ( 'html' ) . toString ( ) ;
1336
+
1337
+ expect (
1338
+ message ,
1339
+ 'to equal snapshot' ,
1340
+ '<div style="font-family: monospace; white-space: nowrap"><div><span style="color: red; font-weight: bold">expected</span></div><div><span style="color: #999"><</span><span style="color: #905">ul </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">knockout-autocomplete menu scrollable floating-menu</span><span style="color: #999">"</span><span style="color: #690"> style</span><span style="color: #999">="</span><span style="color: #905">left</span><span style="color: #999">:</span><span style="color: #07a"> 0px</span><span style="color: #999">;</span><span style="color: #07a"> </span><span style="color: #905">top</span><span style="color: #999">:</span><span style="color: #07a"> 0px</span><span style="color: #999">;</span><span style="color: #07a"> </span><span style="color: #905">bottom</span><span style="color: #999">:</span><span style="color: #07a"> auto</span><span style="color: #999">;</span><span style="color: #07a"> </span><span style="color: #905">display</span><span style="color: #999">:</span><span style="color: #07a"> block</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">li </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">selected</span><span style="color: #999">"</span><span style="color: #905"> </span><span style="color: #690">data-index</span><span style="color: #999">="</span><span style="color: #07a">0</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">before</span><span style="color: #999">"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">strong </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">match</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">strong</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">after</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div><span style="color: #999"></</span><span style="color: #905">li</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">li </span><span style="color: #690">data-index</span><span style="color: #999">="</span><span style="color: #07a">1</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">before</span><span style="color: #999">"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">strong </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">match</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">strong</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">after</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div><span style="color: #999"></</span><span style="color: #905">li</span><span style="color: #999">></span></div></div></div><div><span style="color: #999"></</span><span style="color: #905">ul</span><span style="color: #999">></span></div><div><span style="color: red; font-weight: bold">to satisfy</span></div><div>{</div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #555">attributes</span>: { <span style="color: #555">style</span>: { <span style="color: #555">display</span>: <span style="color: #df5000">\'block\'</span> }, <span style="color: #555">class</span>: [ <span style="color: #df5000">\'knockout-autocomplete\'</span>, <span style="color: #df5000">\'floating-menu\'</span> ] },</div><div><span style="color: #555">children</span>: [ { <span style="color: #555">attributes</span>: ..., <span style="color: #555">children</span>: ... }, { <span style="color: #555">attributes</span>: ..., <span style="color: #555">children</span>: ... } ]</div></div></div><div>}</div><div> </div><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">ul</span> <span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">knockout-autocomplete menu scrollable floating-menu</span><span style="color: #999">"</span> <span style="color: #690">style</span><span style="color: #999">="</span><span style="color: #07a">left: 0px; top: 0px; bottom: auto; display: block</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">li </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">selected</span><span style="color: #999">"</span><span style="color: #905"> </span><span style="color: #690">data-index</span><span style="color: #999">="</span><span style="color: #07a">0</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">before</span><span style="color: #999">"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">strong </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">match</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">strong</span><span style="color: #999">></span></div></div></div><div> <div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">after</span><span style="color: #999">"></span>...<span style="color: #999"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div><div><span style="color: #999"></</span><span style="color: #905">li</span><span style="color: #999">></span></div></div></div></div></div><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">li</span> <span style="color: #690">data-index</span><span style="color: #999">="</span><span style="color: #07a">1</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">before</span><span style="color: #999">"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div></div></div><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">strong </span><span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">match</span><span style="color: #999">"></span>pr<span style="color: #999"></</span><span style="color: #905">strong</span><span style="color: #999">></span></div></div></div></div></div><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><span style="color: #999"><</span><span style="color: #905">span</span> <span style="color: #690">class</span><span style="color: #999">="</span><span style="color: #07a">after</span><span style="color: #999">"></span></div><div> <div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div><div style="display: inline-block; vertical-align: top"><div>otected <div style="display: inline-block; vertical-align: top"><div><span style="color: red; font-weight: bold">//</span></div><div><span style="color: red; font-weight: bold">//</span></div><div><span style="color: red; font-weight: bold">//</span></div><div><span style="color: red; font-weight: bold">//</span></div></div> <div style="display: inline-block; vertical-align: top"><div><span style="color: red; font-weight: bold">should equal</span> <div style="display: inline-block; vertical-align: top"><div><span style="color: #df5000">\'odtected\'</span></div></div></div><div> </div><div><span style="background-color: red; color: white">otected</span></div><div><span style="background-color: green; color: white">odtected</span></div></div></div></div></div></div></div></div></div></div></div><div><span style="color: #999"></</span><span style="color: #905">span</span><span style="color: #999">></span></div></div></div></div></div></div></div></div></div></div></div><div><span style="color: #999"></</span><span style="color: #905">li</span><span style="color: #999">></span></div></div></div></div></div></div></div></div></div></div></div><div><span style="color: #999"></</span><span style="color: #905">ul</span><span style="color: #999">></span></div></div></div></div>'
1341
+ ) ;
1342
+ } )
1343
+ ) ;
1344
+ } ) ;
1289
1345
} ) ;
1290
1346
} ) ;
0 commit comments