Skip to content

Commit b9d8485

Browse files
fix: transform root suite to non-root when non-root id matches root id
1 parent 09900ba commit b9d8485

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

lib/tests-tree-builder/base.ts

+8
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,14 @@ export class BaseTestsTreeBuilder {
160160
const suite: TreeSuite = {id, parentId, name, suitePath, root: isRoot};
161161

162162
this._addSuite(suite);
163+
} else if (!isRoot && suites.byId[id].root) {
164+
const newParentId = this._buildId(suitePath.slice(0, -1));
165+
166+
suites.byId[id].root = false;
167+
suites.byId[id].parentId = newParentId;
168+
suites.byId[id].suitePath = suitePath;
169+
suites.byId[id].name = suites.byId[id].name.slice(newParentId.length + 1);
170+
suites.allRootIds.splice(suites.allRootIds.indexOf(id), 1);
163171
}
164172

165173
if (ind !== arr.length - 1) {

test/unit/lib/tests-tree-builder/base.js

+32
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,38 @@ describe('ResultsTreeBuilder', () => {
108108
}
109109
);
110110
});
111+
112+
it('should transform root suite into child suite', () => {
113+
builder.addTestResult(mkFormattedResult_({testPath: ['s1 s2', 's3']}));
114+
115+
assert.deepEqual(
116+
builder.tree.suites.byId['s1 s2'],
117+
{
118+
id: 's1 s2',
119+
name: 's1 s2',
120+
parentId: null,
121+
root: true,
122+
suitePath: ['s1 s2'],
123+
status: SUCCESS,
124+
suiteIds: ['s1 s2 s3']
125+
}
126+
);
127+
128+
builder.addTestResult(mkFormattedResult_({testPath: ['s1', 's2', 's4']}));
129+
130+
assert.deepEqual(
131+
builder.tree.suites.byId['s1 s2'],
132+
{
133+
id: 's1 s2',
134+
name: 's2',
135+
parentId: 's1',
136+
root: false,
137+
suitePath: ['s1', 's2'],
138+
status: SUCCESS,
139+
suiteIds: ['s1 s2 s3', 's1 s2 s4']
140+
}
141+
);
142+
});
111143
});
112144

113145
describe('"browsers" field in the tree', () => {

0 commit comments

Comments
 (0)