Skip to content

Commit 7b136cb

Browse files
committed
parallelize awaits, add comment
1 parent ecc6d38 commit 7b136cb

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

src/material/tree/testing/shared.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,15 @@ export function runHarnessTests(
100100
it ('should correctly get tree structure', async () => {
101101
const trees = await loader.getAllHarnesses(treeHarness);
102102
const flatTree = trees[0];
103-
expect(await flatTree.getTreeStructure()).toEqual(
103+
expect(await flatTree.getStructureText()).toEqual(
104104
`Flat Group 1
105105
Flat Group 2`);
106106
});
107107

108108
it('should correctly get tree structure', async () => {
109109
const trees = await loader.getAllHarnesses(treeHarness);
110110
const nestedTree = trees[1];
111-
expect(await nestedTree.getTreeStructure()).toEqual(
111+
expect(await nestedTree.getStructureText()).toEqual(
112112
`Nested Group 1
113113
\tNested Leaf 1.1
114114
\tNested Leaf 1.2

src/material/tree/testing/tree-harness.ts

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,45 @@ export class MatTreeHarness extends ComponentHarness {
2929
return this.locatorForAll(MatTreeNodeHarness.with(filter))();
3030
}
3131

32-
async getTreeStructure(): Promise<string> {
32+
/**
33+
* String representation of the tree structure.
34+
* Eg.
35+
* Tree:
36+
* `
37+
* <mat-tree>
38+
* <mat-tree-node>Node 1<mat-tree-node>
39+
* <mat-nested-tree-node>
40+
* Node 2
41+
* <mat-nested-tree-node>
42+
* Node 2.1
43+
* <mat-tree-node>
44+
* Node 2.1.1
45+
* <mat-tree-node>
46+
* <mat-nested-tree-node>
47+
* <mat-tree-node>
48+
* Node 2.2
49+
* <mat-tree-node>
50+
* <mat-nested-tree-node>
51+
* </mat-tree>`
52+
*
53+
* Structured text:
54+
* Node 1
55+
* Node 2
56+
* Node 2.1
57+
* Node 2.1.1
58+
* Node 2.2
59+
*/
60+
async getStructureText(): Promise<string> {
3361
let treeString = '';
3462
const nodes = await this.getNodes();
63+
const levelsAndText = await Promise.all(nodes.map(node => {
64+
return Promise.all([node.getLevel(), node.getText()]);
65+
}));
3566
for (let i = 0; i < nodes.length; i++) {
67+
const [level, text] = levelsAndText[i];
3668
treeString += i === 0 ? '' : '\n';
37-
const node = nodes[i];
38-
const level = await node.getLevel();
3969
treeString += '\t'.repeat(level - 1);
40-
treeString += await node.getText();
70+
treeString += text;
4171
}
4272
return treeString;
4373
}

0 commit comments

Comments
 (0)