@@ -2,9 +2,12 @@ library angular2.test.transform.directive_metadata_extractor.all_tests;
22
33import 'dart:async' ;
44import 'package:angular2/src/render/api.dart' ;
5+ import 'package:angular2/src/render/dom/convert.dart' ;
56import 'package:angular2/src/transform/common/directive_metadata_reader.dart' ;
67import 'package:angular2/src/transform/common/logging.dart' ;
78import 'package:angular2/src/transform/common/parser.dart' ;
9+ import 'package:angular2/src/transform/directive_metadata_extractor/'
10+ 'extractor.dart' ;
811import 'package:barback/barback.dart' ;
912import 'package:dart_style/dart_style.dart' ;
1013import 'package:guinness/guinness.dart' ;
@@ -24,50 +27,101 @@ void allTests() {
2427 return readDirectiveMetadata (ngDeps.registeredTypes.first);
2528 }
2629
27- it ('should parse selectors' , () async {
28- var metadata = await readMetadata (
29- 'directive_metadata_extractor/directive_metadata_files/selector.ng_deps.dart' );
30- expect (metadata.selector).toEqual ('hello-app' );
31- });
30+ describe ('readMetadata' , () {
31+ it ('should parse selectors' , () async {
32+ var metadata = await readMetadata (
33+ 'directive_metadata_extractor/directive_metadata_files/'
34+ 'selector.ng_deps.dart' );
35+ expect (metadata.selector).toEqual ('hello-app' );
36+ });
3237
33- it ('should parse compile children values' , () async {
34- var metadata = await readMetadata ('directive_metadata_extractor/'
35- 'directive_metadata_files/compile_children.ng_deps.dart' );
36- expect (metadata.compileChildren).toBeTrue ();
38+ it ('should parse compile children values' , () async {
39+ var ngDeps = await parser.parse (new AssetId ('a' ,
40+ 'directive_metadata_extractor/'
41+ 'directive_metadata_files/compile_children.ng_deps.dart' ));
42+ var it = ngDeps.registeredTypes.iterator;
3743
38- metadata = await readMetadata (
39- 'directive_metadata_extractor/directive_metadata_files/selector.ng_deps.dart' );
40- expect (metadata.compileChildren).toBeFalse ();
41- });
44+ // Unset value defaults to `true`.
45+ it.moveNext ();
46+ expect ('${it .current .typeName }' ).toEqual ('UnsetComp' );
47+ var unsetComp = readDirectiveMetadata (it.current);
48+ expect (unsetComp.compileChildren).toBeTrue ();
4249
43- it ('should parse properties.' , () async {
44- var metadata = await readMetadata ('directive_metadata_extractor/'
45- 'directive_metadata_files/properties.ng_deps.dart' );
46- expect (metadata.properties).toBeNotNull ();
47- expect (metadata.properties.length).toBe (2 );
48- expect (metadata.properties).toContain ('key1' );
49- expect (metadata.properties['key1' ]).toEqual ('val1' );
50- expect (metadata.properties).toContain ('key2' );
51- expect (metadata.properties['key2' ]).toEqual ('val2' );
52- });
50+ it.moveNext ();
51+ expect ('${it .current .typeName }' ).toEqual ('FalseComp' );
52+ var falseComp = readDirectiveMetadata (it.current);
53+ expect (falseComp.compileChildren).toBeFalse ();
54+
55+ it.moveNext ();
56+ expect ('${it .current .typeName }' ).toEqual ('TrueComp' );
57+ var trueComp = readDirectiveMetadata (it.current);
58+ expect (trueComp.compileChildren).toBeTrue ();
59+ });
60+
61+ it ('should parse properties.' , () async {
62+ var metadata = await readMetadata ('directive_metadata_extractor/'
63+ 'directive_metadata_files/properties.ng_deps.dart' );
64+ expect (metadata.properties).toBeNotNull ();
65+ expect (metadata.properties.length).toBe (2 );
66+ expect (metadata.properties).toContain ('key1' );
67+ expect (metadata.properties['key1' ]).toEqual ('val1' );
68+ expect (metadata.properties).toContain ('key2' );
69+ expect (metadata.properties['key2' ]).toEqual ('val2' );
70+ });
71+
72+ it ('should parse host listeners.' , () async {
73+ var metadata = await readMetadata ('directive_metadata_extractor/'
74+ 'directive_metadata_files/host_listeners.ng_deps.dart' );
75+ expect (metadata.hostListeners).toBeNotNull ();
76+ expect (metadata.hostListeners.length).toBe (2 );
77+ expect (metadata.hostListeners).toContain ('change' );
78+ expect (metadata.hostListeners['change' ]).toEqual ('onChange(\$ event)' );
79+ expect (metadata.hostListeners).toContain ('keyDown' );
80+ expect (metadata.hostListeners['keyDown' ]).toEqual ('onKeyDown(\$ event)' );
81+ });
5382
54- it ('should parse host listeners.' , () async {
55- var metadata = await readMetadata ('directive_metadata_extractor/'
56- 'directive_metadata_files/host_listeners.ng_deps.dart' );
57- expect (metadata.hostListeners).toBeNotNull ();
58- expect (metadata.hostListeners.length).toBe (2 );
59- expect (metadata.hostListeners).toContain ('change' );
60- expect (metadata.hostListeners['change' ]).toEqual ('onChange(\$ event)' );
61- expect (metadata.hostListeners).toContain ('keyDown' );
62- expect (metadata.hostListeners['keyDown' ]).toEqual ('onKeyDown(\$ event)' );
83+ it ('should fail when a class is annotated with multiple Directives.' ,
84+ () async {
85+ var ngDeps = await parser.parse (new AssetId ('a' ,
86+ 'directive_metadata_extractor/'
87+ 'directive_metadata_files/too_many_directives.ng_deps.dart' ));
88+ expect (() => readDirectiveMetadata (ngDeps.registeredTypes.first))
89+ .toThrowWith (anInstanceOf: PrintLoggerError );
90+ });
6391 });
6492
65- it ('should fail when a class is annotated with multiple Directives.' ,
66- () async {
67- var ngDeps = await parser.parse (new AssetId ('a' ,
68- 'directive_metadata_extractor/'
69- 'directive_metadata_files/too_many_directives.ng_deps.dart' ));
70- expect (() => readDirectiveMetadata (ngDeps.registeredTypes.first))
71- .toThrowWith (anInstanceOf: PrintLoggerError );
93+ describe ('extractMetadata' , () {
94+ it ('should generate `DirectiveMetadata` from .ng_deps.dart files.' ,
95+ () async {
96+ var extracted = await extractDirectiveMetadata (reader, new AssetId (
97+ 'a' , 'directive_metadata_extractor/simple_files/foo.ng_deps.dart' ));
98+ expect (extracted).toContain ('FooComponent' );
99+
100+ var extractedMeta = extracted['FooComponent' ];
101+ expect (extractedMeta.selector).toEqual ('[foo]' );
102+ });
103+
104+ it ('should include `DirectiveMetadata` from exported files.' , () async {
105+ var extracted = await extractDirectiveMetadata (reader, new AssetId (
106+ 'a' , 'directive_metadata_extractor/export_files/foo.ng_deps.dart' ));
107+ expect (extracted).toContain ('FooComponent' );
108+ expect (extracted).toContain ('BarComponent' );
109+
110+ expect (extracted['FooComponent' ].selector).toEqual ('[foo]' );
111+ expect (extracted['BarComponent' ].selector).toEqual ('[bar]' );
112+ });
113+
114+ it ('should include `DirectiveMetadata` recursively from exported files.' ,
115+ () async {
116+ var extracted = await extractDirectiveMetadata (reader, new AssetId ('a' ,
117+ 'directive_metadata_extractor/recursive_export_files/foo.ng_deps.dart' ));
118+ expect (extracted).toContain ('FooComponent' );
119+ expect (extracted).toContain ('BarComponent' );
120+ expect (extracted).toContain ('BazComponent' );
121+
122+ expect (extracted['FooComponent' ].selector).toEqual ('[foo]' );
123+ expect (extracted['BarComponent' ].selector).toEqual ('[bar]' );
124+ expect (extracted['BazComponent' ].selector).toEqual ('[baz]' );
125+ });
72126 });
73127}
0 commit comments