MCPcopy Create free account
hub / github.com/angular/components / expectFlatTreeToMatch

Function expectFlatTreeToMatch

src/cdk/tree/tree.spec.ts:1639–1678  ·  view source on GitHub ↗
(
  treeElement: Element,
  expectedPaddingIndent = 28,
  expectedPaddingUnits = 'px',
  ...expectedTree: any[]
)

Source from the content-addressed store, hash-verified

1637}
1638
1639function expectFlatTreeToMatch(
1640 treeElement: Element,
1641 expectedPaddingIndent = 28,
1642 expectedPaddingUnits = 'px',
1643 ...expectedTree: any[]
1644) {
1645 const missedExpectations: string[] = [];
1646
1647 function checkNode(node: Element, expectedNode: any[]) {
1648 const actualTextContent = node.textContent!.trim();
1649 const expectedTextContent = expectedNode[expectedNode.length - 1];
1650 if (actualTextContent !== expectedTextContent) {
1651 missedExpectations.push(
1652 `Expected node contents to be ${expectedTextContent} but was ${actualTextContent}`,
1653 );
1654 }
1655 }
1656
1657 function checkLevel(node: Element, expectedNode: any[]) {
1658 const rawLevel = (node as HTMLElement).style.paddingLeft;
1659
1660 // Some browsers return 0, while others return 0px.
1661 const actualLevel = rawLevel === '0' ? '0px' : rawLevel;
1662 const expectedLevel = `${expectedNode.length * expectedPaddingIndent}${expectedPaddingUnits}`;
1663 if (actualLevel != expectedLevel) {
1664 missedExpectations.push(`Expected node level to be ${expectedLevel} but was ${actualLevel}`);
1665 }
1666 }
1667
1668 getNodes(treeElement).forEach((node, index) => {
1669 const expected = expectedTree ? expectedTree[index] : null;
1670
1671 checkLevel(node, expected);
1672 checkNode(node, expected);
1673 });
1674
1675 if (missedExpectations.length) {
1676 fail(missedExpectations.join('\n'));
1677 }
1678}
1679
1680function expectNestedTreeToMatch(treeElement: Element, ...expectedTree: any[]) {
1681 const missedExpectations: string[] = [];

Callers 1

tree.spec.tsFile · 0.70

Calls 3

getNodesFunction · 0.70
checkLevelFunction · 0.70
checkNodeFunction · 0.70

Tested by

no test coverage detected