mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
chore: improve TS automated type tests (#6860)
This PR: 1. Makes sure we remove and freshly install Puppeteer before testing our type defs, to avoid running on stale files. 2. Makes the tests run off `puppeteer.tgz` to avoid having version numbers in the file name and therefore having to update it when we bump versions.
This commit is contained in:
parent
bdaba7829d
commit
641ffc2a20
3
.gitignore
vendored
3
.gitignore
vendored
@ -18,6 +18,5 @@ yarn.lock
|
|||||||
/lib
|
/lib
|
||||||
test/coverage.json
|
test/coverage.json
|
||||||
temp/
|
temp/
|
||||||
puppeteer-core-*.tgz
|
|
||||||
new-docs/
|
new-docs/
|
||||||
puppeteer-*.tgz
|
puppeteer.tgz
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { spawnSync } from 'child_process';
|
import { spawnSync } from 'child_process';
|
||||||
import { version } from '../package.json';
|
import { version } from '../package.json';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
const PROJECT_FOLDERS_ROOT = 'test-ts-types';
|
const PROJECT_FOLDERS_ROOT = 'test-ts-types';
|
||||||
const EXPECTED_ERRORS = new Map<string, string[]>([
|
const EXPECTED_ERRORS = new Map<string, string[]>([
|
||||||
[
|
[
|
||||||
@ -71,13 +72,23 @@ function packPuppeteer() {
|
|||||||
const result = spawnSync('npm', ['pack'], {
|
const result = spawnSync('npm', ['pack'], {
|
||||||
encoding: 'utf-8',
|
encoding: 'utf-8',
|
||||||
});
|
});
|
||||||
|
|
||||||
if (result.status !== 0) {
|
if (result.status !== 0) {
|
||||||
console.log('Failed to pack Puppeteer', result.stderr);
|
console.log('Failed to pack Puppeteer', result.stderr);
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return `puppeteer-${version}.tgz`;
|
// Move from puppeteer-X.Y.Z.tgz to puppeteer.tgz so we don't have to update
|
||||||
|
// it when versions change.
|
||||||
|
const moveResult = spawnSync('mv', [
|
||||||
|
`puppeteer-${version}.tgz`,
|
||||||
|
'puppeteer.tgz',
|
||||||
|
]);
|
||||||
|
if (moveResult.status !== 0) {
|
||||||
|
console.log('Failed to rename Puppeteer tar', moveResult.stderr);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return `puppeteer.tgz`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const tar = packPuppeteer();
|
const tar = packPuppeteer();
|
||||||
@ -112,12 +123,22 @@ function testProject(folder: string) {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const tarLocation = path.relative(projectLocation, tarPath);
|
const tarLocation = path.relative(projectLocation, tarPath);
|
||||||
console.log('===> Installing Puppeteer from tar file');
|
console.log('===> Clearing left over node_modules to ensure clean slate');
|
||||||
|
try {
|
||||||
|
fs.rmdirSync(path.join(projectLocation, 'node_modules'), {
|
||||||
|
recursive: true,
|
||||||
|
});
|
||||||
|
} catch (_error) {
|
||||||
|
// We don't care if this errors because if it did it's most likely because
|
||||||
|
// there was no node_modules folder, which is fine.
|
||||||
|
}
|
||||||
|
console.log('===> Installing Puppeteer from tar file', tarLocation);
|
||||||
const { status, stderr, stdout } = spawnSync(
|
const { status, stderr, stdout } = spawnSync(
|
||||||
'npm',
|
'npm',
|
||||||
['install', '--no-package-lock', tarLocation],
|
['install', tarLocation],
|
||||||
{
|
{
|
||||||
env: {
|
env: {
|
||||||
|
...process.env,
|
||||||
PUPPETEER_SKIP_DOWNLOAD: '1',
|
PUPPETEER_SKIP_DOWNLOAD: '1',
|
||||||
},
|
},
|
||||||
cwd: projectLocation,
|
cwd: projectLocation,
|
||||||
|
@ -7,6 +7,6 @@
|
|||||||
"compile": "../../node_modules/.bin/tsc"
|
"compile": "../../node_modules/.bin/tsc"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,6 @@
|
|||||||
"typescript": "^4.1.3"
|
"typescript": "^4.1.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"puppeteer": "file:../../puppeteer-7.0.4-post.tgz"
|
"puppeteer": "file:../../puppeteer.tgz"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user