Skip to content

Commit 214c9bc

Browse files
committed
User test runner improvements
1 parent 7726464 commit 214c9bc

File tree

4 files changed

+17
-27
lines changed

4 files changed

+17
-27
lines changed

src/testRunner/externalCompileRunner.ts

+8-6
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,13 @@ namespace Harness {
5656
ts.Debug.assert(!!config.cloneUrl, "Bad format from test.json: cloneUrl field must be present.");
5757
const submoduleDir = path.join(cwd, directoryName);
5858
if (!fs.existsSync(submoduleDir)) {
59-
exec("git", ["clone", config.cloneUrl, directoryName], { cwd });
59+
exec("git", ["--work-tree", submoduleDir, "clone", config.cloneUrl, path.join(submoduleDir, ".git")], { cwd });
60+
}
61+
else {
62+
exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "checkout", ":/"], { cwd: submoduleDir });
63+
exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "clean", "--force"], { cwd: submoduleDir });
64+
exec("git", ["--git-dir", path.join(submoduleDir, ".git"), "--work-tree", submoduleDir, "pull"], { cwd: submoduleDir });
6065
}
61-
exec("git", ["reset", "HEAD", "--hard"], { cwd: submoduleDir });
62-
exec("git", ["clean", "-f"], { cwd: submoduleDir });
63-
exec("git", ["pull", "-f"], { cwd: submoduleDir });
6466

6567
types = config.types;
6668

@@ -76,7 +78,7 @@ namespace Harness {
7678
exec("npm", ["i", "--ignore-scripts"], { cwd, timeout: timeout / 2 }); // NPM shouldn't take the entire timeout - if it takes a long time, it should be terminated and we should log the failure
7779
}
7880
const args = [path.join(IO.getWorkspaceRoot(), "built/local/tsc.js")];
79-
if (types) {
81+
if (types?.length) {
8082
args.push("--types", types.join(","));
8183
// Also actually install those types (for, eg, the js projects which need node)
8284
exec("npm", ["i", ...types.map(t => `@types/${t}`), "--no-save", "--ignore-scripts"], { cwd: originalCwd, timeout: timeout / 2 }); // NPM shouldn't take the entire timeout - if it takes a long time, it should be terminated and we should log the failure
@@ -337,4 +339,4 @@ ${stderr.replace(/\r\n/g, "\n")}`;
337339
}
338340
return result;
339341
}
340-
}
342+
}

tests/baselines/reference/user/TypeScript-Vue-Starter.log

-9
This file was deleted.

tests/baselines/reference/user/TypeScript-WeChat-Starter.log

+7-11
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
Exit Code: 1
22
Standard output:
3-
src/App.test.tsx(5,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
4-
src/components/Hello.test.tsx(5,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
5-
src/components/Hello.test.tsx(7,3): error TS2304: Cannot find name 'expect'.
6-
src/components/Hello.test.tsx(10,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
7-
src/components/Hello.test.tsx(12,3): error TS2304: Cannot find name 'expect'.
8-
src/components/Hello.test.tsx(15,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
9-
src/components/Hello.test.tsx(17,3): error TS2304: Cannot find name 'expect'.
10-
src/components/Hello.test.tsx(20,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
11-
src/components/Hello.test.tsx(21,3): error TS2304: Cannot find name 'expect'.
12-
src/components/Hello.test.tsx(26,1): error TS2593: Cannot find name 'it'. Do you need to install type definitions for a test runner? Try `npm i @types/jest` or `npm i @types/mocha` and then add `jest` or `mocha` to the types field in your tsconfig.
13-
src/components/Hello.test.tsx(27,3): error TS2304: Cannot find name 'expect'.
3+
../../../../../node_modules/@types/mocha/index.d.ts(2720,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'beforeEach' must be of type 'Lifecycle', but here has type 'HookFunction'.
4+
../../../../../node_modules/@types/mocha/index.d.ts(2738,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'afterEach' must be of type 'Lifecycle', but here has type 'HookFunction'.
5+
../../../../../node_modules/@types/mocha/index.d.ts(2754,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'describe' must be of type 'Describe', but here has type 'SuiteFunction'.
6+
../../../../../node_modules/@types/mocha/index.d.ts(2775,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'xdescribe' must be of type 'Describe', but here has type 'PendingSuiteFunction'.
7+
../../../../../node_modules/@types/mocha/index.d.ts(2789,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'it' must be of type 'It', but here has type 'TestFunction'.
8+
../../../../../node_modules/@types/mocha/index.d.ts(2803,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'test' must be of type 'It', but here has type 'TestFunction'.
9+
../../../../../node_modules/@types/mocha/index.d.ts(2810,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'xit' must be of type 'It', but here has type 'PendingTestFunction'.
1410

1511

1612

tests/baselines/reference/user/puppeteer.log

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
Exit Code: 1
22
Standard output:
3+
../../../../../node_modules/@types/gulp/index.d.ts(9,27): error TS2307: Cannot find module 'chokidar'.
34
lib/Accessibility.js(134,15): error TS2503: Cannot find namespace 'Protocol'.
45
lib/Accessibility.js(344,7): error TS2322: Type 'string | number | boolean' is not assignable to type 'never'.
56
Type 'string' is not assignable to type 'never'.
@@ -56,7 +57,7 @@ lib/Page.js(93,33): error TS2345: Argument of type 'CDPSession' is not assignabl
5657
lib/Page.js(142,15): error TS2503: Cannot find namespace 'Protocol'.
5758
lib/Page.js(217,15): error TS2503: Cannot find namespace 'Protocol'.
5859
lib/Page.js(385,20): error TS2503: Cannot find namespace 'Protocol'.
59-
lib/Page.js(448,7): error TS2740: Type '(...args: any[]) => Promise<any>' is missing the following properties from type 'Window': applicationCache, clientInformation, closed, customElements, and 222 more.
60+
lib/Page.js(448,7): error TS2740: Type '(...args: any[]) => Promise<any>' is missing the following properties from type 'Window': applicationCache, clientInformation, closed, customElements, and 241 more.
6061
lib/Page.js(458,9): error TS2349: This expression is not callable.
6162
Type 'Window' has no call signatures.
6263
lib/Page.js(494,15): error TS2503: Cannot find namespace 'Protocol'.

0 commit comments

Comments
 (0)