Skip to content

Commit b3dd3f2

Browse files
authored
Fix tests (#1775)
* Remove ts rc from test matrix * upgrade typescript version to 4.7 * skip NodeNext tests on incompatible node versions
1 parent 78d103f commit b3dd3f2

File tree

5 files changed

+27
-30
lines changed

5 files changed

+27
-30
lines changed

.github/workflows/continuous-integration.yml

+8-25
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
matrix:
5252
os: [ubuntu, windows]
5353
# Don't forget to add all new flavors to this list!
54-
flavor: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
54+
flavor: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
5555
include:
5656
# Node 12.15
5757
- flavor: 1
@@ -95,64 +95,47 @@ jobs:
9595
nodeFlag: 14
9696
typescript: next
9797
typescriptFlag: next
98-
- flavor: 8
99-
node: 14
100-
nodeFlag: 14
101-
typescript: rc
102-
typescriptFlag: rc
10398
# Node 16
10499
# Node 16.11.1
105100
# Earliest version that supports old ESM Loader Hooks API: https://github.com/TypeStrong/ts-node/pull/1522
106-
- flavor: 9
101+
- flavor: 8
107102
node: 16.11.1
108103
nodeFlag: 16_11_1
109104
typescript: latest
110105
typescriptFlag: latest
111-
- flavor: 10
106+
- flavor: 9
112107
node: 16
113108
nodeFlag: 16
114109
typescript: latest
115110
typescriptFlag: latest
116111
downgradeNpm: true
117-
- flavor: 11
112+
- flavor: 10
118113
node: 16
119114
nodeFlag: 16
120115
typescript: 2.7
121116
typescriptFlag: 2_7
122117
downgradeNpm: true
123-
- flavor: 12
118+
- flavor: 11
124119
node: 16
125120
nodeFlag: 16
126121
typescript: next
127122
typescriptFlag: next
128123
downgradeNpm: true
129-
- flavor: 13
130-
node: 16
131-
nodeFlag: 16
132-
typescript: rc
133-
typescriptFlag: rc
134-
downgradeNpm: true
135124
# Node 18
136-
- flavor: 14
125+
- flavor: 12
137126
node: 18
138127
nodeFlag: 18
139128
typescript: latest
140129
typescriptFlag: latest
141130
downgradeNpm: true
142-
- flavor: 15
131+
- flavor: 13
143132
node: 18
144133
nodeFlag: 18
145134
typescript: next
146135
typescriptFlag: next
147136
downgradeNpm: true
148-
- flavor: 16
149-
node: 18
150-
nodeFlag: 18
151-
typescript: rc
152-
typescriptFlag: rc
153-
downgradeNpm: true
154137
# Node nightly
155-
- flavor: 17
138+
- flavor: 14
156139
node: nightly
157140
nodeFlag: nightly
158141
typescript: latest

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@
138138
"semver": "^7.1.3",
139139
"throat": "^6.0.1",
140140
"typedoc": "^0.22.10",
141-
"typescript": "4.6.4",
141+
"typescript": "4.7.2",
142142
"typescript-json-schema": "^0.53.0",
143143
"util.promisify": "^1.0.1"
144144
},

src/test/helpers.ts

+8
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,14 @@ export const nodeSupportsImportAssertions = semver.gte(
6868
process.version,
6969
'17.1.0'
7070
);
71+
// Node 14.13.0 has a bug where it tries to lex CJS files to discover named exports *before*
72+
// we transform the code.
73+
// In other words, it tries to parse raw TS as CJS and balks at `export const foo =`, expecting to see `exports.foo =`
74+
// This lexing only happens when CJS TS is imported from the ESM loader.
75+
export const nodeSupportsImportingTransformedCjsFromEsm = semver.gte(
76+
process.version,
77+
'14.13.1'
78+
);
7179
/** Supports tsconfig "extends" >= v3.2.0 */
7280
export const tsSupportsTsconfigInheritanceViaNodePackages = semver.gte(
7381
ts.version,

src/test/module-node.spec.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { expect, context } from './testlib';
22
import {
33
CMD_TS_NODE_WITHOUT_PROJECT_FLAG,
44
isOneOf,
5+
nodeSupportsImportingTransformedCjsFromEsm,
56
resetNodeEnvironment,
67
tsSupportsStableNodeNextNode16,
78
} from './helpers';
@@ -18,7 +19,9 @@ type Test = typeof test;
1819

1920
// Declare one test case for each permutations of project configuration
2021
test.suite('TypeScript module=NodeNext and Node16', (test) => {
21-
test.runIf(tsSupportsStableNodeNextNode16);
22+
test.runIf(
23+
tsSupportsStableNodeNextNode16 && nodeSupportsImportingTransformedCjsFromEsm
24+
);
2225

2326
for (const allowJs of [true, false]) {
2427
for (const typecheckMode of [
@@ -63,6 +66,7 @@ function declareTest(test: Test, testParams: TestParams) {
6366
t.log(stdout);
6467
t.log(stderr);
6568
expect(err).toBe(null);
69+
expect(stdout).toMatch(/done\n$/);
6670
});
6771
}
6872

@@ -216,6 +220,8 @@ function writeFixturesToFilesystem(name: string, testParams: TestParams) {
216220
}
217221
}
218222

223+
indexFile.content += `console.log('done');\n`;
224+
219225
proj.rm();
220226
proj.write();
221227
return proj;

0 commit comments

Comments
 (0)