Skip to content

Commit 2dd89ca

Browse files
author
Ben Lichtman
committed
Use deepEqual in tests for clarity
1 parent e479a9f commit 2dd89ca

File tree

1 file changed

+76
-27
lines changed

1 file changed

+76
-27
lines changed

src/testRunner/unittests/tsserver/projects.ts

Lines changed: 76 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)