Revert "test(ivy): enable more docs examples e2e tests (#28688)" (#28712)

This reverts commit 1cc74eaece6c2fdbd77a92062cceecf23460b2db.
This commit is contained in:
Miško Hevery 2019-02-13 15:43:16 -08:00 committed by GitHub
parent 1cc74eaece
commit ecef0dd65e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,29 +15,11 @@ const PROTRACTOR_CONFIG_FILENAME = path.join(__dirname, './shared/protractor.con
const SJS_SPEC_FILENAME = 'e2e-spec.ts';
const CLI_SPEC_FILENAME = 'e2e/src/app.e2e-spec.ts';
const EXAMPLE_CONFIG_FILENAME = 'example-config.json';
const IGNORED_EXAMPLES = [
// temporary ignores
const IGNORED_EXAMPLES = [ // temporary ignores
'quickstart',
'setup',
];
const fixmeIvyExamples = [
// fixmeIvy('unknown') version value goes undefined when clicking Major button after clicking
// Minor button twice
'component-interaction',
// fixmeIvy('unknown') failed content projection and applied styles
'component-styles',
// fixmeIvy('unknown') ERROR Error: Unable to find context associated with [object
// HTMLInputElement]
'http',
// fixmeIvy('unknown') app fails at runtime due to missing external service (goog is undefined)
'i18n'
];
if (argv.ivy) {
IGNORED_EXAMPLES.push(...fixmeIvyExamples);
}
/**
* Run Protractor End-to-End Tests for Doc Samples
*
@ -76,8 +58,7 @@ function runE2e() {
if (status.failed.length > 0) {
return Promise.reject('Some test suites failed');
}
})
.catch(function(e) {
}).catch(function (e) {
console.log(e);
process.exitCode = 1;
});
@ -86,6 +67,7 @@ function runE2e() {
// Finds all of the *e2e-spec.tests under the examples folder along with the corresponding apps
// that they should run under. Then run each app/spec collection sequentially.
function findAndRunE2eTests(filter, outputFile, shard) {
const shardParts = shard ? shard.split('/') : [0, 1];
const shardModulo = parseInt(shardParts[0], 10);
const shardDivider = parseInt(shardParts[1], 10);
@ -111,9 +93,7 @@ function findAndRunE2eTests(filter, outputFile, shard) {
console.log(`E2e specs for shard ${shardParts.join('/')}:`);
logSpecs(e2eSpecPaths);
return e2eSpecPaths.systemjs
.reduce(
(promise, specPath) => {
return e2eSpecPaths.systemjs.reduce((promise, specPath) => {
return promise.then(() => {
const examplePath = path.dirname(specPath);
return runE2eTestsSystemJS(examplePath, outputFile).then(ok => {
@ -121,8 +101,7 @@ function findAndRunE2eTests(filter, outputFile, shard) {
arr.push(examplePath);
});
});
},
Promise.resolve())
}, Promise.resolve())
.then(() => {
return e2eSpecPaths.cli.reduce((promise, specPath) => {
return promise.then(() => {
@ -173,13 +152,12 @@ function runProtractorSystemJS(prepPromise, appDir, appRunSpawnInfo, outputFile)
// Start protractor.
console.log(`\n\n=========== Running aio example tests for: ${appDir}`);
const spawnInfo = spawnExt(
'yarn',
[
'protractor', PROTRACTOR_CONFIG_FILENAME, `--specs=${specFilename}`,
'--params.appDir=' + appDir, '--params.outputFile=' + outputFile
],
{cwd: SHARED_PATH});
const spawnInfo = spawnExt('yarn', ['protractor',
PROTRACTOR_CONFIG_FILENAME,
`--specs=${specFilename}`,
'--params.appDir=' + appDir,
'--params.outputFile=' + outputFile
], { cwd: SHARED_PATH });
spawnInfo.proc.stderr.on('data', function (data) {
transpileError = transpileError || /npm ERR! Exit status 100/.test(data.toString());
@ -195,7 +173,8 @@ function runProtractorSystemJS(prepPromise, appDir, appRunSpawnInfo, outputFile)
})
.then(
function () { return finish(appRunSpawnInfo.proc.pid, true); },
function() { return finish(appRunSpawnInfo.proc.pid, false); });
function () { return finish(appRunSpawnInfo.proc.pid, false); }
);
}
function finish(spawnProcId, ok) {
@ -227,7 +206,7 @@ function runE2eTestsCLI(appDir, outputFile) {
console.log(`\n\n=========== Running aio example tests for: ${appDir}`);
// `--no-webdriver-update` is needed to preserve the ChromeDriver version already installed.
const config = loadExampleConfig(appDir);
const commands = config.e2e || [{cmd: 'yarn', args: ['e2e', '--prod', '--no-webdriver-update']}];
const commands = config.e2e || [{ cmd: 'yarn', args: ['e2e', '--no-webdriver-update'] }];
const e2eSpawnPromise = commands.reduce((prevSpawnPromise, { cmd, args }) => {
return prevSpawnPromise.then(() => {
@ -239,27 +218,25 @@ function runE2eTestsCLI(appDir, outputFile) {
}, Promise.resolve());
return e2eSpawnPromise.then(
() => {
fs.appendFileSync(outputFile, `Passed: ${appDir}\n\n`);
return true;
},
() => {
fs.appendFileSync(outputFile, `Failed: ${appDir}\n\n`);
return false;
});
() => { fs.appendFileSync(outputFile, `Passed: ${appDir}\n\n`); return true; },
() => { fs.appendFileSync(outputFile, `Failed: ${appDir}\n\n`); return false; });
}
// Report final status.
function reportStatus(status, outputFile) {
let log = [''];
log.push('Suites passed:');
status.passed.forEach(function(val) { log.push(' ' + val); });
status.passed.forEach(function (val) {
log.push(' ' + val);
});
if (status.failed.length == 0) {
log.push('All tests passed');
} else {
log.push('Suites failed:');
status.failed.forEach(function(val) { log.push(' ' + val); });
status.failed.forEach(function (val) {
log.push(' ' + val);
});
}
log.push('\nElapsed time: ' + status.elapsedTime + ' seconds');
log = log.join('\n');
@ -280,8 +257,12 @@ function spawnExt(command, args, options, ignoreClose = false) {
reject(e);
return { proc: null, promise };
}
proc.stdout.on('data', function(data) { process.stdout.write(data.toString()); });
proc.stderr.on('data', function(data) { process.stdout.write(data.toString()); });
proc.stdout.on('data', function (data) {
process.stdout.write(data.toString());
});
proc.stderr.on('data', function (data) {
process.stdout.write(data.toString());
});
proc.on('close', function (returnCode) {
console.log(`completed: ${descr} \n`);
// Many tasks (e.g., tsc) complete but are actually errors;
@ -300,37 +281,42 @@ function spawnExt(command, args, options, ignoreClose = false) {
function getE2eSpecs(basePath, filter) {
let specs = {};
return getE2eSpecsFor(basePath, SJS_SPEC_FILENAME, filter)
.then(sjsPaths => { specs.systemjs = sjsPaths; })
.then(() => {
return getE2eSpecsFor(basePath, SJS_SPEC_FILENAME, filter).then(sjsPaths => {
specs.systemjs = sjsPaths;
}).then(() => {
return getE2eSpecsFor(basePath, CLI_SPEC_FILENAME, filter).then(cliPaths => {
return cliPaths.map(p => { return p.replace(`${CLI_SPEC_FILENAME}`, ''); });
return cliPaths.map(p => {
return p.replace(`${CLI_SPEC_FILENAME}`, '');
});
})
.then(cliPaths => { specs.cli = cliPaths; })
.then(() => specs);
});
}).then(cliPaths => {
specs.cli = cliPaths;
}).then(() => specs);
}
// Find all e2e specs in a given example folder.
function getE2eSpecsFor(basePath, specFile, filter) {
// Only get spec file at the example root.
const e2eSpecGlob = `${filter ? '*' + filter + '*' : '*'}/${specFile}`;
const e2eSpecGlob = `${filter ? `*${filter}*` : '*'}/${specFile}`;
return globby(e2eSpecGlob, { cwd: basePath, nodir: true })
.then(
paths => paths.filter(file => !IGNORED_EXAMPLES.some(ignored => file.startsWith(ignored)))
.map(file => path.join(basePath, file)));
.then(paths => paths
.filter(file => !IGNORED_EXAMPLES.some(ignored => file.startsWith(ignored)))
.map(file => path.join(basePath, file))
);
}
// Load configuration for an example. Used for SystemJS
function loadExampleConfig(exampleFolder) {
// Default config.
let config = {build: 'build', run: 'serve:e2e'};
let config = {
build: 'build',
run: 'serve:e2e'
};
try {
const exampleConfig = fs.readJsonSync(`${exampleFolder}/${EXAMPLE_CONFIG_FILENAME}`);
Object.assign(config, exampleConfig);
} catch (e) {
}
} catch (e) { }
return config;
}