With providers split into bundles, the test injector is now able to use providers for a given bundle. Suggested provider lists for tests are available in `angular2/platform/testing/<platform>`. Change the providers for a test suite using `setBaseTestProviders`. This should be done once at the start of the test suite, before any test cases run. BREAKING CHANGE: Tests are now required to use `setBaseTestProviders` to set up. Assuming your tests are run on a browser, setup would change as follows. Before: ```js // Somewhere in test setup import {BrowserDomAdapter} from 'angular2/src/platform/browser/browser_adapter'; BrowserDomAdapter.makeCurrent ``` After: ```js // Somewhere in the test setup import {setBaseTestProviders} from 'angular2/testing'; import { TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS } from 'angular2/platform/testing/browser'; setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS); ``` Closes #5351, Closes #5585 Closes #5975
56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
var Q = require('q');
|
|
var glob = require('glob');
|
|
var fs = require('fs');
|
|
var path = require('path');
|
|
var spawn = require('child_process').spawn;
|
|
|
|
var util = require('./util');
|
|
|
|
module.exports = function(gulp, plugins, config) {
|
|
return function() {
|
|
if (config.dir) {
|
|
return run(config.dir);
|
|
} else {
|
|
return util.forEachSubDirSequential(config.dest, run);
|
|
}
|
|
};
|
|
|
|
function run(dir) {
|
|
var testDir = path.join(dir, 'test');
|
|
var relativeMasterTestFile = 'test/_all_tests.dart';
|
|
var testFiles = [].slice.call(glob.sync('**/*.server.spec.dart', {
|
|
cwd: testDir
|
|
}));
|
|
if (testFiles.length == 0) {
|
|
// No test files found
|
|
return Q.resolve();
|
|
}
|
|
var header = ['library _all_tests;', 'import "package:angular2/testing.dart";', ''];
|
|
var main = ['main() {'];
|
|
main.push(' setBaseTestProviders([], []);');
|
|
testFiles.forEach(function(fileName, index) {
|
|
header.push('import "' + fileName + '" as test_' + index + ';');
|
|
main.push(' test_' + index + '.main();');
|
|
});
|
|
header.push('');
|
|
main.push('}');
|
|
|
|
var absMasterTestFile = path.join(dir, relativeMasterTestFile);
|
|
fs.writeFileSync(absMasterTestFile, header.concat(main).join('\n'));
|
|
|
|
var defer = Q.defer();
|
|
var done = defer.makeNodeResolver();
|
|
console.log('start tests:', dir);
|
|
util.processToPromise(spawn('dart', ['-c', relativeMasterTestFile], {
|
|
stdio: 'inherit',
|
|
cwd: dir
|
|
})).then(
|
|
function() { done(); },
|
|
function(error) { done(error); }
|
|
);
|
|
return defer.promise.then(function() {
|
|
console.log('end tests');
|
|
});
|
|
}
|
|
};
|