Add command line options to new node-based gentest (#1499)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1499 This uses the minimist library to parse the command line easily for flags and options. I added over the same ones in the ruby script (-f and -s). Reviewed By: yungsters, NickGerleman Differential Revision: D51877810 fbshipit-source-id: 643606cad25609ed2567bb63470818b81ebef531
This commit is contained in:
committed by
Facebook GitHub Bot
parent
98552078b1
commit
fba32ebf14
@@ -14,6 +14,29 @@ import * as process from 'node:process';
|
|||||||
import {Builder, logging} from 'selenium-webdriver';
|
import {Builder, logging} from 'selenium-webdriver';
|
||||||
import {Options} from 'selenium-webdriver/chrome.js';
|
import {Options} from 'selenium-webdriver/chrome.js';
|
||||||
import {fileURLToPath} from 'url';
|
import {fileURLToPath} from 'url';
|
||||||
|
import {stdin, stdout} from 'node:process';
|
||||||
|
import minimist from 'minimist';
|
||||||
|
import readline from 'node:readline/promises';
|
||||||
|
|
||||||
|
const argv = minimist(process.argv.slice(2));
|
||||||
|
const specificFixture = argv.f || argv.fixture;
|
||||||
|
const suspend = argv.s || argv.suspend;
|
||||||
|
|
||||||
|
const gentestDir = dirname(fileURLToPath(import.meta.url));
|
||||||
|
const yogaDir = dirname(gentestDir);
|
||||||
|
|
||||||
|
let fixtures = await fs.readdir(`${gentestDir}/fixtures`);
|
||||||
|
try {
|
||||||
|
if (specificFixture != null) {
|
||||||
|
await fs.access(`fixtures/${specificFixture}.html`, fs.constants.F_OK);
|
||||||
|
fixtures = [specificFixture + '.html'];
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
const errorMessage = e instanceof Error ? e.message : '';
|
||||||
|
console.log(
|
||||||
|
`Trying to access ${specificFixture}.html threw an exception. Executing against all fixtures. ${errorMessage}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
const options = new Options();
|
const options = new Options();
|
||||||
options.addArguments(
|
options.addArguments(
|
||||||
@@ -30,10 +53,6 @@ const driver = await new Builder()
|
|||||||
.setChromeOptions(options)
|
.setChromeOptions(options)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
const gentestDir = dirname(fileURLToPath(import.meta.url));
|
|
||||||
const yogaDir = dirname(gentestDir);
|
|
||||||
|
|
||||||
const fixtures = await fs.readdir(`${gentestDir}/fixtures`);
|
|
||||||
for (const fileName of fixtures) {
|
for (const fileName of fixtures) {
|
||||||
const fixture = await fs.readFile(
|
const fixture = await fs.readFile(
|
||||||
`${gentestDir}/fixtures/${fileName}`,
|
`${gentestDir}/fixtures/${fileName}`,
|
||||||
@@ -89,6 +108,12 @@ for (const fileName of fixtures) {
|
|||||||
fileNameNoExtension,
|
fileNameNoExtension,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (suspend) {
|
||||||
|
const rl = readline.createInterface({input: stdin, output: stdout});
|
||||||
|
await rl.question('');
|
||||||
|
rl.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await fs.unlink(`${gentestDir}/test.html`);
|
await fs.unlink(`${gentestDir}/test.html`);
|
||||||
await driver.quit();
|
await driver.quit();
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
"babel-register-esm": "^1.2.5",
|
"babel-register-esm": "^1.2.5",
|
||||||
"@babel/core": "^7.23.0",
|
"@babel/core": "^7.23.0",
|
||||||
"@babel/preset-typescript": "^7.23.0",
|
"@babel/preset-typescript": "^7.23.0",
|
||||||
"@tsconfig/node18": "^18.2.2"
|
"@tsconfig/node18": "^18.2.2",
|
||||||
|
"@types/minimist": "^1.2.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2522,6 +2522,11 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
|
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
|
||||||
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
|
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
|
||||||
|
|
||||||
|
"@types/minimist@^1.2.5":
|
||||||
|
version "1.2.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e"
|
||||||
|
integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==
|
||||||
|
|
||||||
"@types/ms@*":
|
"@types/ms@*":
|
||||||
version "0.7.33"
|
version "0.7.33"
|
||||||
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.33.tgz#80bf1da64b15f21fd8c1dc387c31929317d99ee9"
|
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.33.tgz#80bf1da64b15f21fd8c1dc387c31929317d99ee9"
|
||||||
|
Reference in New Issue
Block a user