X Tutup
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 18 additions & 14 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@ var pubbuild = require('./tools/build/pubbuild');
var dartanalyzer = require('./tools/build/dartanalyzer');
var jsserve = require('./tools/build/jsserve');
var pubserve = require('./tools/build/pubserve');
var createTestMain = require('./tools/build/create_dart_test_main.js');
var karma = require('karma');
var minimist = require('minimist');
var runServerDartTests = require('./tools/build/run_server_dart_tests');
var runServerDartTests = require('./tools/build/run_server_dart_tests'); // TODO - merge this in?
var sourcemaps = require('gulp-sourcemaps');
var tsc = require('gulp-typescript');
var util = require('./tools/build/util');
Expand Down Expand Up @@ -567,8 +568,8 @@ gulp.task('test.unit.dart', function (done) {
'!build/pubget.angular2.dart',
'!build/change_detect.dart',
'!build/remove-pub-symlinks',
'!test.unit.dart/karma-server',
'!test.unit.dart/karma-run',
'!test.unit.dart/create-dart-test-main',
'!test.unit.dart/pub-run-test',
function(error) {
// if initial build failed (likely due to build or formatting step) then exit
// otherwise karma server doesn't start and we can't continue running properly
Expand All @@ -579,32 +580,35 @@ gulp.task('test.unit.dart', function (done) {

watch('modules/angular2/**', { ignoreInitial: true }, [
'!build/tree.dart',
'!test.unit.dart/karma-run'
'!test.unit.dart/pub-run-test'
]);
}
);
});

gulp.task('!test.unit.dart/karma-run', function (done) {
// run the run command in a new process to avoid duplicate logging by both server and runner from
// a single process
runKarma('karma-dart.conf.js', done);
});
gulp.task('!test.unit.dart/create-dart-test-main', createTestMain);

gulp.task('!test.unit.dart/pub-run-test', function (done) {
// TODO - run for all modules, not just angular2
// TODO - make one master file which starts all tests.
var testArgs = ['run', 'test', 'main_test.dart', '-p', 'dartium'];

gulp.task('!test.unit.dart/karma-server', function() {
karma.server.start({configFile: __dirname + '/karma-dart.conf.js', reporters: 'dots'});
var proc = spawn(DART_SDK.PUB, testArgs, {cwd: 'dist/dart/angular2', stdio: 'inherit'});
proc.on('error', function(code) {
done(new Error('Failed to run dart:test'));
});
proc.on('close', function() {
done();
});
});


gulp.task('test.unit.js/ci', function (done) {
karma.server.start({configFile: __dirname + '/karma-js.conf.js',
singleRun: true, reporters: ['dots'], browsers: getBrowsersFromCLI()}, done);
});

gulp.task('test.unit.dart/ci', function (done) {
karma.server.start({configFile: __dirname + '/karma-dart.conf.js',
singleRun: true, reporters: ['dots'], browsers: getBrowsersFromCLI()}, done);
runSequence(['!test.unit.dart/create-dart-test-main', '!test.unit.dart/pub-run-test']);
});


Expand Down
3 changes: 2 additions & 1 deletion modules/angular2/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ dependencies:
quiver: '^0.21.4'
source_span: '^1.0.0'
stack_trace: '^1.1.1'
test: '^0.12.3'
dev_dependencies:
guinness: '^0.1.17'
guinness2: '^0.0.3'
transformers:
- angular2
- $dart2js:
Expand Down
6 changes: 4 additions & 2 deletions modules/angular2/src/test_lib/test_lib.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ library test_lib.test_lib;

import 'dart:async';

import 'package:guinness/guinness.dart' as gns;
export 'package:guinness/guinness.dart'
import 'package:guinness2/guinness2.dart' as gns;
export 'package:guinness2/guinness2.dart'
hide
Expect,
expect,
Expand All @@ -23,6 +23,7 @@ import 'package:angular2/src/reflection/reflection_capabilities.dart';
import 'package:angular2/src/di/binding.dart' show bind;
import 'package:angular2/src/di/injector.dart' show Injector;
import 'package:angular2/src/facade/collection.dart' show StringMapWrapper;
import 'package:angular2/src/dom/browser_adapter.dart';

import 'test_injector.dart';
export 'test_injector.dart' show inject;
Expand All @@ -45,6 +46,7 @@ class AsyncTestCompleter {
}

void testSetup() {
BrowserDomAdapter.makeCurrent();
reflector.reflectionCapabilities = new ReflectionCapabilities();
// beforeEach configuration:
// - Priority 3: clear the bindings before each test,
Expand Down
4 changes: 4 additions & 0 deletions modules/angular2/src/test_lib/test_lib.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,10 @@ export class AsyncTestCompleter {
done() { this._done(); }
}

export function testSetup() {
// Intentionally blank, this exists for compatibility with dart.
}

var jsmBeforeEach = _global.beforeEach;
var jsmDescribe = _global.describe;
var jsmDDescribe = _global.fdescribe;
Expand Down
4 changes: 2 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ environment:
dependencies:
observe: '0.13.1'
dev_dependencies:
guinness: '^0.1.17'
guinness2: '^0.0.3'
intl: '^0.12.4'
unittest: '^0.11.5+4'
quiver: '^0.21.4'
test: '^0.12.3'
22 changes: 22 additions & 0 deletions tools/build/create_dart_test_main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
var glob = require('glob');
var fs = require('fs');

module.exports = function() {
var imports = [
'@TestOn("browser")',
'import "package:guinness2/guinness2.dart";',
'import "package:angular2/src/test_lib/test_lib.dart" show testSetup;'];
var executes = [];

var matches = glob.sync('**/*_spec.dart', {cwd: 'dist/dart/angular2'});

matches.forEach(function(match) {
var varName = match.replace(/[\/.]/g, '_');
imports.push('import "' + match + '" as ' + varName +';');
executes.push(' ' + varName + '.main();');
});

var output = imports.join('\n') + '\n\nmain() {\n testSetup();\n' + executes.join('\n') + '\n}';

fs.writeFileSync('dist/dart/angular2/main_test.dart', output);
};
X Tutup