@@ -1471,7 +1471,55 @@ public function asString(): Document {
1471
1471
$ exp ->loadXML ('<root property="test"><div> sub document </div></root> ' );
1472
1472
1473
1473
$ this ->assertResultMatches ($ exp ->documentElement , $ dom ->documentElement );
1474
+ }
1475
+
1476
+ public function testRemoveSignalIsProcessedBeforeTypeOfAttribute (): void {
1477
+ $ dom = new DOMDocument ();
1478
+ $ dom ->loadXML ('<root><node property="test" typeof="foo" /></root> ' );
1479
+
1480
+ $ model = new class () {
1481
+ public function test (): Signal {
1482
+ return Signal::remove ();
1483
+ }
1484
+ };
1485
+
1486
+ $ renderer = new ViewModelRenderer ();
1487
+ $ renderer ->render ($ dom ->documentElement , $ model );
1474
1488
1489
+ $ renderer = new ViewModelRenderer ();
1490
+ $ renderer ->render ($ dom ->documentElement , $ model );
1491
+
1492
+ $ exp = new DOMDocument ();
1493
+ $ exp ->loadXML ('<root /> ' );
1494
+
1495
+ $ this ->assertResultMatches ($ exp ->documentElement , $ dom ->documentElement );
1496
+ }
1497
+
1498
+ public function testIgnoreSignalIsProcessedBeforeTypeOfAttribute (): void {
1499
+ $ dom = new DOMDocument ();
1500
+ $ dom ->loadXML ('<root><node property="test" typeof="foo"><child property="text" /></node></root> ' );
1501
+
1502
+ $ model = new class () {
1503
+ public function test (): Signal {
1504
+ return Signal::ignore ();
1505
+ }
1506
+
1507
+ public function text ():string {
1508
+ return 'works ' ;
1509
+ }
1510
+
1511
+ };
1512
+
1513
+ $ renderer = new ViewModelRenderer ();
1514
+ $ renderer ->render ($ dom ->documentElement , $ model );
1515
+
1516
+ $ renderer = new ViewModelRenderer ();
1517
+ $ renderer ->render ($ dom ->documentElement , $ model );
1518
+
1519
+ $ exp = new DOMDocument ();
1520
+ $ exp ->loadXML ('<root><node property="test" typeof="foo"><child property="text">works</child></node></root> ' );
1521
+
1522
+ $ this ->assertResultMatches ($ exp ->documentElement , $ dom ->documentElement );
1475
1523
}
1476
1524
1477
1525
}
0 commit comments