@@ -1468,18 +1468,38 @@ var x = 10;`
1468
1468
projectService . openClientFile ( fileA . path ) ;
1469
1469
projectService . openClientFile ( fileB . path ) ;
1470
1470
const knownProjects = projectService . synchronizeProjectList ( [ ] , /*includeProjectReferenceRedirectInfo*/ true ) ;
1471
- assert ( knownProjects . length === 2 , `Expected 2 projects but received ${ knownProjects . length } ` ) ;
1472
- assert ( knownProjects [ 0 ] . files ?. length === 3 , `Expected project A to have 3 files but received ${ knownProjects [ 0 ] . files ?. length } ` ) ;
1473
- assert ( knownProjects [ 0 ] . files ?. every (
1474
- ( file : string | protocol . FileWithProjectReferenceRedirectInfo ) =>
1475
- typeof file === "object" && ! file . isSourceOfProjectReferenceRedirect ) ,
1476
- `Expected every file in project A to not be redirected.`
1477
- ) ;
1478
- assert ( knownProjects [ 1 ] . files ?. length === 4 , `Expected project B to have 4 files but received ${ knownProjects [ 1 ] . files ?. length } ` ) ;
1479
- knownProjects [ 1 ] . files ?. forEach (
1480
- ( file : string | protocol . FileWithProjectReferenceRedirectInfo ) =>
1481
- assert ( typeof file === "object" && ( ! file . isSourceOfProjectReferenceRedirect || file . fileName === fileA . path ) )
1482
- ) ;
1471
+ assert . deepEqual ( knownProjects [ 0 ] . files , [
1472
+ {
1473
+ fileName : libFile . path ,
1474
+ isSourceOfProjectReferenceRedirect : false
1475
+ } ,
1476
+ {
1477
+ fileName : fileA . path ,
1478
+ isSourceOfProjectReferenceRedirect : false
1479
+ } ,
1480
+ {
1481
+ fileName : configA . path ,
1482
+ isSourceOfProjectReferenceRedirect : false
1483
+ }
1484
+ ] ) ;
1485
+ assert . deepEqual ( knownProjects [ 1 ] . files , [
1486
+ {
1487
+ fileName : libFile . path ,
1488
+ isSourceOfProjectReferenceRedirect : false
1489
+ } ,
1490
+ {
1491
+ fileName : fileA . path ,
1492
+ isSourceOfProjectReferenceRedirect : true ,
1493
+ } ,
1494
+ {
1495
+ fileName : fileB . path ,
1496
+ isSourceOfProjectReferenceRedirect : false ,
1497
+ } ,
1498
+ {
1499
+ fileName : configB . path ,
1500
+ isSourceOfProjectReferenceRedirect : false
1501
+ }
1502
+ ] ) ;
1483
1503
} ) ;
1484
1504
1485
1505
it ( "synchronizeProjectList provides updates to redirect info when requested" , ( ) => {
@@ -1523,19 +1543,38 @@ var x = 10;`
1523
1543
projectService . openClientFile ( fileA . path ) ;
1524
1544
projectService . openClientFile ( fileB . path ) ;
1525
1545
const knownProjects = projectService . synchronizeProjectList ( [ ] , /*includeProjectReferenceRedirectInfo*/ true ) ;
1526
- assert ( knownProjects . length === 2 , `Expected 2 projects but received ${ knownProjects . length } ` ) ;
1527
- assert ( knownProjects [ 0 ] . files ?. length === 3 , `Expected project A to have 3 files but received ${ knownProjects [ 0 ] . files ?. length } ` ) ;
1528
- assert ( knownProjects [ 0 ] . files ?. every (
1529
- ( file : string | protocol . FileWithProjectReferenceRedirectInfo ) =>
1530
- typeof file === "object" && ! file . isSourceOfProjectReferenceRedirect ) ,
1531
- `Expected every file in project A to not be redirected.`
1532
- ) ;
1533
- assert ( knownProjects [ 1 ] . files ?. length === 4 , `Expected project B to have 4 files but received ${ knownProjects [ 1 ] . files ?. length } ` ) ;
1534
- assert ( knownProjects [ 1 ] . files ?. every (
1535
- ( file : string | protocol . FileWithProjectReferenceRedirectInfo ) =>
1536
- typeof file === "object" && ! file . isSourceOfProjectReferenceRedirect ) ,
1537
- `Expected every file in project B to not be redirected.`
1538
- ) ;
1546
+ assert . deepEqual ( knownProjects [ 0 ] . files , [
1547
+ {
1548
+ fileName : libFile . path ,
1549
+ isSourceOfProjectReferenceRedirect : false
1550
+ } ,
1551
+ {
1552
+ fileName : fileA . path ,
1553
+ isSourceOfProjectReferenceRedirect : false
1554
+ } ,
1555
+ {
1556
+ fileName : configA . path ,
1557
+ isSourceOfProjectReferenceRedirect : false
1558
+ }
1559
+ ] ) ;
1560
+ assert . deepEqual ( knownProjects [ 1 ] . files , [
1561
+ {
1562
+ fileName : libFile . path ,
1563
+ isSourceOfProjectReferenceRedirect : false
1564
+ } ,
1565
+ {
1566
+ fileName : fileB2 . path ,
1567
+ isSourceOfProjectReferenceRedirect : false ,
1568
+ } ,
1569
+ {
1570
+ fileName : fileB . path ,
1571
+ isSourceOfProjectReferenceRedirect : false ,
1572
+ } ,
1573
+ {
1574
+ fileName : configB . path ,
1575
+ isSourceOfProjectReferenceRedirect : false
1576
+ }
1577
+ ] ) ;
1539
1578
1540
1579
host . modifyFile ( configA . path , `{
1541
1580
"compilerOptions": {
@@ -1548,8 +1587,18 @@ var x = 10;`
1548
1587
]
1549
1588
}` ) ;
1550
1589
const newKnownProjects = projectService . synchronizeProjectList ( knownProjects . map ( proj => proj . info ! ) , /*includeProjectReferenceRedirectInfo*/ true ) ;
1551
- assert ( newKnownProjects [ 0 ] . changes ?. added . length === 1 , `Expected b2.ts to be added to project A` ) ;
1552
- assert ( newKnownProjects [ 1 ] . changes ?. updatedRedirects ?. length === 1 , `Expected b2.ts to be updated in project B` ) ;
1590
+ assert . deepEqual ( newKnownProjects [ 0 ] . changes ?. added , [
1591
+ {
1592
+ fileName : fileB2 . path ,
1593
+ isSourceOfProjectReferenceRedirect : false
1594
+ }
1595
+ ] ) ;
1596
+ assert . deepEqual ( newKnownProjects [ 1 ] . changes ?. updatedRedirects , [
1597
+ {
1598
+ fileName : fileB2 . path ,
1599
+ isSourceOfProjectReferenceRedirect : true
1600
+ }
1601
+ ] ) ;
1553
1602
} ) ;
1554
1603
1555
1604
it ( "handles delayed directory watch invoke on file creation" , ( ) => {
0 commit comments