Skip to content

Commit

Permalink
test(dart/transform): Update dependencies & fix Dart tests
Browse files Browse the repository at this point in the history
Widen version dependencies for `package:angular`, `package:code_transformers`,
and `package:observe`.

`package:guinness` uses `package:unittest` while
the newest versions of `package:code_transformers` use `package:test`.
This causes our end-to-end Dart transformer tests (which use testing
code in `package:code_transformers`) to be skipped.

To fix this:
- Move e2e tests to run in a separate file
- Run `gulp test.server.dart` tests serially

Closes #5922

Closes #5935
  • Loading branch information
Tim Blasi authored and kegluneq committed Jan 14, 2016
1 parent eda6a5d commit 4d0c2ed
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 43 deletions.
5 changes: 3 additions & 2 deletions modules/angular2/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ homepage: <%= packageJson.homepage %>
environment:
sdk: '>=1.10.0 <2.0.0'
dependencies:
analyzer: '>=0.24.4 <0.27.0'
analyzer: '>=0.24.4 <0.28.0'
barback: '^0.15.2+2'
dart_style: '>=0.1.8 <0.3.0'
glob: '^1.0.0'
Expand All @@ -22,8 +22,9 @@ dependencies:
source_span: '^1.0.0'
stack_trace: '^1.1.1'
dev_dependencies:
code_transformers: '0.2.9+4'
code_transformers: '>=0.2.9+4 <0.4.0'
guinness: '^0.1.18'
test: '^0.12.6'
transformers:
- angular2
- $dart2js:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,17 @@ import "dart:async";
import "package:angular2/testing_internal.dart"
show
AsyncTestCompleter,
inject,
describe,
it,
iit,
expect,
SpyObject,
beforeEach,
beforeEachProviders,
SpyObject,
proxy;
describe,
expect,
iit,
inject,
it,
proxy,
testSetup;
import 'package:angular2/src/platform/server/html_adapter.dart';
import "package:angular2/src/web_workers/debug_tools/multi_client_server_message_bus.dart";
import "package:angular2/src/web_workers/shared/messaging_api.dart";
import "./message_bus_common.dart";
Expand All @@ -22,6 +24,9 @@ import "dart:convert" show JSON;
import 'dart:math';

main() {
Html5LibDomAdapter.makeCurrent();
testSetup();

List<String> messageHistory = new List<String>();
List<int> resultMarkers = new List<int>();
describe("MultiClientServerMessageBusSink", () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,25 @@ import "dart:async";
import "package:angular2/testing_internal.dart"
show
AsyncTestCompleter,
inject,
describe,
it,
expect,
SpyObject,
beforeEach,
beforeEachProviders,
SpyObject,
proxy;
describe,
expect,
inject,
it,
proxy,
testSetup;
import 'package:angular2/src/platform/server/html_adapter.dart';
import "package:angular2/src/web_workers/debug_tools/single_client_server_message_bus.dart";
import "./message_bus_common.dart";
import "./spy_web_socket.dart";
import "dart:convert" show JSON;

main() {
Html5LibDomAdapter.makeCurrent();
testSetup();

var MESSAGE = const {'test': 10};
const CHANNEL = "TEST_CHANNEL";
describe("SingleClientServerMessageBusSink", () {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
library angular2.test.transform.transform.e2e.spec;

import 'package:test/test.dart';

import 'inliner_for_test/all_tests.dart' as inliner;
import 'integration/all_tests.dart' as integration;

main() {
group('Inliner For Test e2e', inliner.endToEndTests);
group('Transformer Pipeline', integration.allTests);
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
library angular2.test.transform;
library angular2.test.transform.transform.server.spec;

import 'package:guinness/guinness.dart';
import 'package:unittest/unittest.dart' hide expect;
Expand All @@ -12,7 +12,6 @@ import 'deferred_rewriter/all_tests.dart' as deferredRewriter;
import 'directive_metadata_linker/all_tests.dart' as directiveMeta;
import 'directive_processor/all_tests.dart' as directiveProcessor;
import 'inliner_for_test/all_tests.dart' as inliner;
import 'integration/all_tests.dart' as integration;
import 'reflection_remover/all_tests.dart' as reflectionRemover;
import 'template_compiler/all_tests.dart' as templateCompiler;
import 'stylesheet_compiler/all_tests.dart' as stylesheetCompiler;
Expand All @@ -30,8 +29,4 @@ main() {
describe('Deferred Rewriter', deferredRewriter.allTests);
describe('Stylesheet Compiler', stylesheetCompiler.allTests);
describe('Url Resolver', urlResolver.allTests);
// NOTE(kegluneq): These use `code_transformers#testPhases`, which is not
// designed to work with `guinness`.
group('Inliner For Test e2e', inliner.endToEndTests);
group('Transformer Pipeline', integration.allTests);
}
40 changes: 18 additions & 22 deletions tools/build/run_server_dart_tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,38 +16,34 @@ module.exports = function(gulp, plugins, config) {
};

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
cwd: dir
}));
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); }
);
var processSerial = function() {
if (testFiles.length == 0) {
done();
return;
}
var file = testFiles.shift();
util.processToPromise(spawn('dart', ['-c', file], {
stdio: 'inherit',
cwd: dir
})).then(
processSerial,
function(error) {
done(error);
}
);
};
processSerial();
return defer.promise.then(function() {
console.log('end tests');
});
Expand Down

1 comment on commit 4d0c2ed

@usernamealreadyis
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test(dart/transform): Update dependencies & fix Dart tests
Widen version dependencies for package:angular, package:code_transformers,
and package:observe.

package:guinness uses package:unittest while
the newest versions of package:code_transformers use package:test.
This causes our end-to-end Dart transformer tests (which use testing
code in package:code_transformers) to be skipped.

To fix this:

  • Move e2e tests to run in a separate file
  • Run gulp test.server.dart tests serially

Closes #5922

Closes #5935

on commit 4d0c2ed

Please sign in to comment.