Skip to content

Commit 267121e

Browse files
author
Tim Blasi
committed
refactor(dart/transform): Test directive processor using protos
Directly test the `NgDepsModel` object created by the `DirectiveProcessor` rather than string comparing output Dart code.
1 parent 045cc82 commit 267121e

File tree

27 files changed

+344
-712
lines changed

27 files changed

+344
-712
lines changed

modules_dart/transform/lib/src/transform/common/logging.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Future<dynamic> initZoned(Transform t, _SimpleCallback fn) =>
1919
Future<dynamic> setZoned(BuildLogger logger, _SimpleCallback fn) async {
2020
return runZoned(() async {
2121
try {
22-
await fn();
22+
return await fn();
2323
} on AnalyzerError catch (e) {
2424
// Do not worry about printing the stack trace, barback will handle that
2525
// on its own when it catches the rethrown exception.

modules_dart/transform/lib/src/transform/directive_processor/rewriter.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:angular2/src/transform/common/asset_reader.dart';
88
import 'package:angular2/src/transform/common/async_string_writer.dart';
99
import 'package:angular2/src/transform/common/code/ng_deps_code.dart';
1010
import 'package:angular2/src/transform/common/logging.dart';
11+
import 'package:angular2/src/transform/common/model/ng_deps_model.pb.dart';
1112
import 'package:angular2/src/transform/common/xhr_impl.dart';
1213
import 'package:angular2/src/transform/common/ng_meta.dart';
1314
import 'package:barback/barback.dart' show AssetId;
@@ -24,7 +25,7 @@ import 'inliner.dart';
2425
/// If no Angular 2 `Directive`s are found in `code`, returns the empty
2526
/// string unless `forceGenerate` is true, in which case an empty ngDeps
2627
/// file is created.
27-
Future<String> createNgDeps(AssetReader reader, AssetId assetId,
28+
Future<NgDepsModel> createNgDeps(AssetReader reader, AssetId assetId,
2829
AnnotationMatcher annotationMatcher, NgMeta ngMeta,
2930
{bool inlineViews}) async {
3031
// TODO(kegluneq): Shortcut if we can determine that there are no
@@ -64,10 +65,7 @@ Future<String> createNgDeps(AssetReader reader, AssetId assetId,
6465
await inlineViewProps(new XhrImpl(reader, assetId), ngDepsModel);
6566
}
6667

67-
var buffer = new StringBuffer();
68-
var ngDepsWriter = new NgDepsWriter(buffer);
69-
ngDepsWriter.writeNgDepsModel(ngDepsModel);
70-
return '$buffer';
68+
return ngDepsModel;
7169
}
7270

7371
/// Processes `visitor.parts`, reading and appending their contents to the

modules_dart/transform/lib/src/transform/directive_processor/transformer.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import 'dart:async';
44
import 'dart:convert';
55

66
import 'package:angular2/src/transform/common/asset_reader.dart';
7+
import 'package:angular2/src/transform/common/code/ng_deps_code.dart';
78
import 'package:angular2/src/transform/common/logging.dart' as log;
89
import 'package:angular2/src/transform/common/names.dart';
910
import 'package:angular2/src/transform/common/options.dart';
@@ -35,17 +36,20 @@ class DirectiveProcessor extends Transformer {
3536
var asset = transform.primaryInput;
3637
var reader = new AssetReader.fromTransform(transform);
3738
var ngMeta = new NgMeta.empty();
38-
var ngDepsSrc = await createNgDeps(
39+
var ngDepsModel = await createNgDeps(
3940
reader, asset.id, options.annotationMatcher, ngMeta,
4041
inlineViews: options.inlineViews);
41-
if (ngDepsSrc != null && ngDepsSrc.isNotEmpty) {
42+
if (ngDepsModel != null) {
4243
var ngDepsAssetId =
4344
transform.primaryInput.id.changeExtension(DEPS_EXTENSION);
4445
if (await transform.hasInput(ngDepsAssetId)) {
4546
log.logger.error('Clobbering ${ngDepsAssetId}. '
4647
'This probably will not end well');
4748
}
48-
transform.addOutput(new Asset.fromString(ngDepsAssetId, ngDepsSrc));
49+
var buf = new StringBuffer();
50+
var writer = new NgDepsWriter(buf);
51+
writer.writeNgDepsModel(ngDepsModel);
52+
transform.addOutput(new Asset.fromString(ngDepsAssetId, '$buf'));
4953
}
5054
if (!ngMeta.isEmpty) {
5155
var ngAliasesId =

modules_dart/transform/test/transform/directive_linker/all_tests.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
library angular2.test.transform.directive_linker.all_tests;
22

33
import 'package:barback/barback.dart';
4+
import 'package:angular2/src/transform/common/model/annotation_model.pb.dart';
5+
import 'package:angular2/src/transform/common/model/import_export_model.pb.dart';
6+
import 'package:angular2/src/transform/common/model/ng_deps_model.pb.dart';
47
import 'package:angular2/src/transform/directive_linker/linker.dart';
58
import 'package:dart_style/dart_style.dart';
69
import 'package:guinness/guinness.dart';

modules_dart/transform/test/transform/directive_processor/absolute_url_expression_files/expected/hello.ng_deps.dart

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)