Skip to content

Commit e1b7f84

Browse files
Factor out TestingNode and TestingXMLNode.
1 parent ef054bd commit e1b7f84

File tree

2 files changed

+48
-51
lines changed

2 files changed

+48
-51
lines changed

src/client/testing/common/types.ts

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export type TestsToRun = {
6868
//*****************
6969
// test results
7070

71-
export enum TestType {
71+
export enum TestingType {
7272
folder = 'testFolder',
7373
file = 'testFile',
7474
suite = 'testSuite',
@@ -99,39 +99,36 @@ export type TestResult = {
9999
functionsDidNotRun?: number;
100100
};
101101

102-
export type TestFolder = TestResult & {
103-
resource: Uri;
102+
export type TestingNode = TestResult & {
104103
name: string;
105-
testFiles: TestFile[];
106104
nameToRun: string;
105+
resource: Uri;
106+
};
107+
108+
export type TestFolder = TestingNode & {
107109
folders: TestFolder[];
110+
testFiles: TestFile[];
108111
};
109-
export type TestFile = TestResult & {
110-
resource: Uri;
111-
name: string;
112+
113+
export type TestingXMLNode = TestingNode & {
114+
xmlName: string;
115+
};
116+
117+
export type TestFile = TestingXMLNode & {
112118
fullPath: string;
113119
functions: TestFunction[];
114120
suites: TestSuite[];
115-
nameToRun: string;
116-
xmlName: string;
117121
errorsWhenDiscovering?: string;
118122
};
119123

120-
export type TestSuite = TestResult & {
121-
resource: Uri;
122-
name: string;
124+
export type TestSuite = TestingXMLNode & {
123125
functions: TestFunction[];
124126
suites: TestSuite[];
125127
isUnitTest: Boolean;
126128
isInstance: Boolean;
127-
nameToRun: string;
128-
xmlName: string;
129129
};
130130

131-
export type TestFunction = TestResult & {
132-
resource: Uri;
133-
name: string;
134-
nameToRun: string;
131+
export type TestFunction = TestingNode & {
135132
subtestParent?: SubtestParent;
136133
};
137134

src/test/testing/results.ts

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import * as path from 'path';
77
import { Uri } from 'vscode';
88
import {
99
FlattenedTestFunction, FlattenedTestSuite,
10-
SubtestParent, TestFile, TestFolder, TestFunction, TestProvider,
11-
TestResult, Tests, TestStatus, TestSuite, TestSummary, TestType
10+
SubtestParent, TestFile, TestFolder, TestFunction, TestingType,
11+
TestProvider, TestResult, Tests, TestStatus, TestSuite, TestSummary
1212
} from '../../client/testing/common/types';
1313
import { fixPath, getDedentedLines, getIndent, RESOURCE } from './helper';
1414

@@ -19,7 +19,7 @@ type SuperTest = TestFunction & {
1919
export type TestItem = TestFolder | TestFile | TestSuite | SuperTest | TestFunction;
2020

2121
export type TestNode = TestItem & {
22-
testType: TestType;
22+
testType: TestingType;
2323
};
2424

2525
// Return an initialized test results.
@@ -69,7 +69,7 @@ export function findParentFile(parents: TestNode[]): TestFile | undefined {
6969
// Iterate in reverse order.
7070
for (let i = parents.length; i > 0; i -= 1) {
7171
const parent = parents[i - 1];
72-
if (parent.testType === TestType.file) {
72+
if (parent.testType === TestingType.file) {
7373
return parent as TestFile;
7474
}
7575
}
@@ -81,7 +81,7 @@ export function findParentSuite(parents: TestNode[]): TestSuite | undefined {
8181
// Iterate in reverse order.
8282
for (let i = parents.length; i > 0; i -= 1) {
8383
const parent = parents[i - 1];
84-
if (parent.testType === TestType.suite) {
84+
if (parent.testType === TestingType.suite) {
8585
return parent as TestSuite;
8686
}
8787
}
@@ -147,7 +147,7 @@ export namespace nodes {
147147
nameToRun: nameToRun || dirname,
148148
folders: [],
149149
testFiles: [],
150-
testType: TestType.folder,
150+
testType: TestingType.folder,
151151
// result
152152
time: 0,
153153
status: TestStatus.Unknown
@@ -175,7 +175,7 @@ export namespace nodes {
175175
xmlName: xmlName!,
176176
suites: [],
177177
functions: [],
178-
testType: TestType.file,
178+
testType: TestingType.file,
179179
// result
180180
time: 0,
181181
status: TestStatus.Unknown
@@ -199,7 +199,7 @@ export namespace nodes {
199199
isInstance: isInstance,
200200
suites: [],
201201
functions: [],
202-
testType: TestType.suite,
202+
testType: TestingType.suite,
203203
// result
204204
time: 0,
205205
status: TestStatus.Unknown
@@ -217,7 +217,7 @@ export namespace nodes {
217217
name: name,
218218
nameToRun: nameToRun || name,
219219
subtestParent: subtestParent,
220-
testType: TestType.function,
220+
testType: TestingType.function,
221221
// result
222222
time: 0,
223223
status: TestStatus.Unknown
@@ -346,7 +346,7 @@ namespace declarative {
346346
type ParsedTestNode = {
347347
indent: string;
348348
name: string;
349-
testType: TestType;
349+
testType: TestingType;
350350
result: TestResult;
351351
};
352352

@@ -390,18 +390,18 @@ namespace declarative {
390390
resource
391391
);
392392
switch (parsed.testType) {
393-
case TestType.folder:
393+
case TestingType.folder:
394394
tests.testFolders.push(node as TestFolder);
395395
break;
396-
case TestType.file:
396+
case TestingType.file:
397397
tests.testFiles.push(node as TestFile);
398398
break;
399-
case TestType.suite:
399+
case TestingType.suite:
400400
tests.testSuites.push(
401401
flattenSuite(node as TestSuite, parents)
402402
);
403403
break;
404-
case TestType.function:
404+
case TestingType.function:
405405
// This does not deal with subtests?
406406
tests.testFunctions.push(
407407
flattenFunction(node as TestFunction, parents)
@@ -438,10 +438,10 @@ namespace declarative {
438438
}
439439

440440
// Determine the type from the name.
441-
let testType: TestType;
441+
let testType: TestingType;
442442
if (name.endsWith('/')) {
443443
// folder
444-
testType = TestType.folder;
444+
testType = TestingType.folder;
445445
while (name.endsWith('/')) {
446446
name = name.slice(0, -1);
447447
}
@@ -450,24 +450,24 @@ namespace declarative {
450450
if (name.includes('/')) {
451451
throw Error('filename must not include directories');
452452
}
453-
testType = TestType.file;
453+
testType = TestingType.file;
454454
} else if (name.startsWith('<')) {
455455
// suite
456456
if (!name.endsWith('>')) {
457457
throw Error('suite missing closing bracket');
458458
}
459-
testType = TestType.suite;
459+
testType = TestingType.suite;
460460
name = name.slice(1, -1);
461461
} else {
462462
// test
463-
testType = TestType.function;
463+
testType = TestingType.function;
464464
}
465465

466466
// Parse the results.
467467
const result: TestResult = {
468468
time: 0
469469
};
470-
if (parts.length !== 0 && testType !== TestType.function) {
470+
if (parts.length !== 0 && testType !== TestingType.function) {
471471
throw Error('non-test nodes do not have results');
472472
}
473473
switch (parts.length) {
@@ -519,7 +519,7 @@ namespace declarative {
519519
parsed: ParsedTestNode
520520
): boolean {
521521
if (parsed.indent === '') {
522-
if (parsed.testType !== TestType.folder) {
522+
if (parsed.testType !== TestingType.folder) {
523523
throw Error('a top-level node must be a folder');
524524
}
525525
return true;
@@ -555,13 +555,13 @@ namespace declarative {
555555
function buildDiscoveredChildNode(
556556
parent: TestParent,
557557
name: string,
558-
testType: TestType,
558+
testType: TestingType,
559559
provider: TestProvider,
560560
resource?: Uri
561561
): TestNode {
562562
switch (testType) {
563-
case TestType.folder:
564-
if (parent.testType !== TestType.folder) {
563+
case TestingType.folder:
564+
if (parent.testType !== TestingType.folder) {
565565
throw Error('parent must be a folder');
566566
}
567567
return nodes.addDiscoveredSubFolder(
@@ -570,8 +570,8 @@ namespace declarative {
570570
undefined,
571571
resource
572572
);
573-
case TestType.file:
574-
if (parent.testType !== TestType.folder) {
573+
case TestingType.file:
574+
if (parent.testType !== TestingType.folder) {
575575
throw Error('parent must be a folder');
576576
}
577577
return nodes.addDiscoveredFile(
@@ -581,11 +581,11 @@ namespace declarative {
581581
undefined,
582582
resource
583583
);
584-
case TestType.suite:
584+
case TestingType.suite:
585585
let suiteParent: TestFile | TestSuite;
586-
if (parent.testType === TestType.file) {
586+
if (parent.testType === TestingType.file) {
587587
suiteParent = parent as TestFile;
588-
} else if (parent.testType === TestType.suite) {
588+
} else if (parent.testType === TestingType.suite) {
589589
suiteParent = parent as TestSuite;
590590
} else {
591591
throw Error('parent must be a file or suite');
@@ -599,13 +599,13 @@ namespace declarative {
599599
undefined,
600600
resource
601601
);
602-
case TestType.function:
602+
case TestingType.function:
603603
let funcParent: TestFile | TestSuite;
604-
if (parent.testType === TestType.file) {
604+
if (parent.testType === TestingType.file) {
605605
funcParent = parent as TestFile;
606-
} else if (parent.testType === TestType.suite) {
606+
} else if (parent.testType === TestingType.suite) {
607607
funcParent = parent as TestSuite;
608-
} else if (parent.testType === TestType.function) {
608+
} else if (parent.testType === TestingType.function) {
609609
throw Error('not finished: use addDiscoveredSubTest()');
610610
} else {
611611
throw Error('parent must be a file, suite, or function');

0 commit comments

Comments
 (0)