@@ -1468,18 +1468,38 @@ var x = 10;`
14681468 projectService . openClientFile ( fileA . path ) ;
14691469 projectService . openClientFile ( fileB . path ) ;
14701470 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+ ] ) ;
14831503 } ) ;
14841504
14851505 it ( "synchronizeProjectList provides updates to redirect info when requested" , ( ) => {
@@ -1523,19 +1543,38 @@ var x = 10;`
15231543 projectService . openClientFile ( fileA . path ) ;
15241544 projectService . openClientFile ( fileB . path ) ;
15251545 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+ ] ) ;
15391578
15401579 host . modifyFile ( configA . path , `{
15411580 "compilerOptions": {
@@ -1548,8 +1587,18 @@ var x = 10;`
15481587 ]
15491588}` ) ;
15501589 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+ ] ) ;
15531602 } ) ;
15541603
15551604 it ( "handles delayed directory watch invoke on file creation" , ( ) => {
0 commit comments