mirror of
https://github.com/facebook/react.git
synced 2026-02-26 00:25:12 +00:00
* Work around jest toEqual bug in ReactTreeTraversal  * Track passing/failing tests in fiber Run scripts/fiber/record-tests to re-record, then check git diff to see what you changed.
74 lines
2.0 KiB
JavaScript
Executable File
74 lines
2.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const fs = require('fs');
|
|
const os = require('os');
|
|
const path = require('path');
|
|
|
|
const SearchSource = require('jest').SearchSource;
|
|
const TestRunner = require('jest').TestRunner;
|
|
|
|
const createHasteContext = require('jest-runtime').createHasteContext;
|
|
const readConfig = require('jest-config').readConfig;
|
|
|
|
const argv = {};
|
|
const root = path.normalize(path.join(__dirname, '..', '..'));
|
|
const testPathPattern = '';
|
|
|
|
function runJest() {
|
|
return readConfig(argv, root)
|
|
.then((config) => {
|
|
return createHasteContext(config, {}).then((hasteMap) => {
|
|
const source = new SearchSource(hasteMap, config);
|
|
return source.getTestPaths({testPathPattern})
|
|
.then((data) => {
|
|
const runner = new TestRunner(
|
|
hasteMap,
|
|
config,
|
|
{
|
|
maxWorkers: Math.max(os.cpus().length - 1, 1),
|
|
getTestSummary: () => 'You did it!'
|
|
}
|
|
);
|
|
return runner.runTests(data.paths);
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
function formatResults(runResults, predicate) {
|
|
const formatted = [];
|
|
runResults.testResults.forEach((fileResult) => {
|
|
const file = path.relative(root, fileResult.testFilePath);
|
|
const tests = fileResult.testResults.filter(
|
|
(test) => predicate(fileResult, test)
|
|
);
|
|
if (tests.length) {
|
|
const lines = [file].concat(tests.map((test) => '* ' + test.title));
|
|
formatted.push(lines.join('\n'));
|
|
}
|
|
});
|
|
formatted.sort();
|
|
return formatted.join('\n\n');
|
|
}
|
|
|
|
process.env.REACT_DOM_JEST_USE_FIBER = true;
|
|
runJest()
|
|
.then((runResults) => {
|
|
const passing = formatResults(
|
|
runResults,
|
|
(file, test) => test.status === 'passed'
|
|
);
|
|
const failing = formatResults(
|
|
runResults,
|
|
(file, test) => test.status === 'failed'
|
|
);
|
|
fs.writeFileSync(
|
|
path.join(__dirname, 'tests-passing.txt'),
|
|
passing + '\n'
|
|
);
|
|
fs.writeFileSync(
|
|
path.join(__dirname, 'tests-failing.txt'),
|
|
failing + '\n'
|
|
);
|
|
});
|