mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-30 11:24:49 -05:00
Move smoke test package script into scripts (#53245)
This commit is contained in:
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
@@ -107,13 +107,14 @@ jobs:
|
||||
- run: |
|
||||
npm pack
|
||||
mv typescript*.tgz typescript.tgz
|
||||
echo "PACKAGE=$PWD/typescript.tgz" >> $GITHUB_ENV
|
||||
echo "package=$PWD/typescript.tgz" >> "$GITHUB_OUTPUT"
|
||||
id: pack
|
||||
|
||||
- name: Smoke test
|
||||
run: |
|
||||
cd "$(mktemp -d)"
|
||||
npm init --yes
|
||||
npm install $PACKAGE tslib
|
||||
npm install ${{ steps.pack.outputs.package }}
|
||||
|
||||
echo "Testing tsc..."
|
||||
npx tsc --version
|
||||
@@ -121,41 +122,8 @@ jobs:
|
||||
echo "Testing tsserver..."
|
||||
echo '{"seq": 1, "command": "status"}' | npx tsserver
|
||||
|
||||
cat > smoke.js << 'EOF'
|
||||
console.log(`Testing ${process.argv[2]}...`);
|
||||
const { __importDefault, __importStar } = require("tslib");
|
||||
const ts = require(process.argv[2]);
|
||||
|
||||
// See: https://github.com/microsoft/TypeScript/pull/51474#issuecomment-1310871623
|
||||
const fns = [
|
||||
[() => ts.version, true],
|
||||
[() => ts.default.version, false],
|
||||
[() => __importDefault(ts).version, false],
|
||||
[() => __importDefault(ts).default.version, true],
|
||||
[() => __importStar(ts).version, true],
|
||||
[() => __importStar(ts).default.version, true],
|
||||
];
|
||||
|
||||
for (const [fn, shouldSucceed] of fns) {
|
||||
let success = false;
|
||||
try {
|
||||
success = !!fn();
|
||||
}
|
||||
catch {}
|
||||
const status = success ? "succeeded" : "failed";
|
||||
if (success === shouldSucceed) {
|
||||
console.log(`${fn.toString()} ${status} as expected.`);
|
||||
}
|
||||
else {
|
||||
console.log(`${fn.toString()} unexpectedly ${status}.`);
|
||||
process.exitCode = 1;
|
||||
}
|
||||
}
|
||||
console.log("ok");
|
||||
EOF
|
||||
|
||||
node ./smoke.js typescript
|
||||
node ./smoke.js typescript/lib/tsserverlibrary
|
||||
node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript
|
||||
node $GITHUB_WORKSPACE/scripts/checkModuleFormat.mjs typescript/lib/tsserverlibrary
|
||||
|
||||
package-size:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
1
package-lock.json
generated
1
package-lock.json
generated
@@ -52,6 +52,7 @@
|
||||
"ms": "^2.1.3",
|
||||
"node-fetch": "^3.2.10",
|
||||
"source-map-support": "^0.5.21",
|
||||
"tslib": "^2.5.0",
|
||||
"typescript": "5.0.1-rc",
|
||||
"which": "^2.0.2"
|
||||
},
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
"ms": "^2.1.3",
|
||||
"node-fetch": "^3.2.10",
|
||||
"source-map-support": "^0.5.21",
|
||||
"tslib": "^2.5.0",
|
||||
"typescript": "5.0.1-rc",
|
||||
"which": "^2.0.2"
|
||||
},
|
||||
|
||||
41
scripts/checkModuleFormat.mjs
Normal file
41
scripts/checkModuleFormat.mjs
Normal file
@@ -0,0 +1,41 @@
|
||||
import { createRequire } from "module";
|
||||
import { __importDefault, __importStar } from "tslib";
|
||||
|
||||
// This script tests that TypeScript's CJS API is structured
|
||||
// as expected. It calls "require" as though it were in CWD,
|
||||
// so it can be tested on a separate install of TypeScript.
|
||||
|
||||
const require = createRequire(process.cwd() + "/index.js");
|
||||
|
||||
console.log(`Testing ${process.argv[2]}...`);
|
||||
const ts = require(process.argv[2]);
|
||||
|
||||
// See: https://github.com/microsoft/TypeScript/pull/51474#issuecomment-1310871623
|
||||
/** @type {[fn: (() => any), shouldSucceed: boolean][]} */
|
||||
const fns = [
|
||||
[() => ts.version, true],
|
||||
[() => ts.default.version, false],
|
||||
[() => __importDefault(ts).version, false],
|
||||
[() => __importDefault(ts).default.version, true],
|
||||
[() => __importStar(ts).version, true],
|
||||
[() => __importStar(ts).default.version, true],
|
||||
];
|
||||
|
||||
for (const [fn, shouldSucceed] of fns) {
|
||||
let success = false;
|
||||
try {
|
||||
success = !!fn();
|
||||
}
|
||||
catch {
|
||||
// Ignore
|
||||
}
|
||||
const status = success ? "succeeded" : "failed";
|
||||
if (success === shouldSucceed) {
|
||||
console.log(`${fn.toString()} ${status} as expected.`);
|
||||
}
|
||||
else {
|
||||
console.log(`${fn.toString()} unexpectedly ${status}.`);
|
||||
process.exitCode = 1;
|
||||
}
|
||||
}
|
||||
console.log("ok");
|
||||
Reference in New Issue
Block a user