akserg / angular.dart.ui

Port of Angular-UI to Dart.
angulardartui.com
Other
101 stars 37 forks source link

Angular 0.9.10 unit test fail #52

Closed zoechi closed 10 years ago

zoechi commented 10 years ago

I tried to check the status and saw that with Angular 0.9.10 several tests fail. This seems to be more a problem with the test framework than with incompatibilities of AngularDart 0.9.10 and the UI elements implementation.

I started investigating alerts tests: alert_test.dart contains two tests. (I commented out all other tests in ui_tests.dart). When I run those tests I get an exception/stack trace at the end. When I comment out one of them and run only the lasting one the test succeeds.

I just wanted to share if anyone else is investigating... I keep you updated about my progress.

akserg commented 10 years ago

I will check this out tomorrow.

Cheers, Sergey.

On 21 March 2014 12:42, Günter Zöchbauer notifications@github.com wrote:

I tried to check the status and saw that with Angular 0.9.10 several tests fail. This seems to be more a problem with the test framework than with incompatibilities of AngularDart 0.9.10 and the UI elements implementation.

I started investigating alerts tests: alert_test.dart contains two tests. (I commented out all other tests in ui_tests.dart). When I run those tests I get an exception/stack trace at the end. When I comment out one of them and run only the lasting one the test succeeds.

I just wanted to share if anyone else is investigating... I keep you updated about my progress.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52 .

zoechi commented 10 years ago

I failed miserably locating the bug. The exception is thrown after the tests are finished. I have no idea how to debug this. The mirrors library where the exception is thrown is also hard to debug (at some positions it is not possible to set breakpoints) and some relevant fields (like reflectee) won't reveal their content in the debugger. I wasn't able to find out what the code that throws the exception is supposed to do.

What I found out is, that the error changes when the templates (of the test and the alert component are modified, so that they contain no space at the beginning and between tags (only Elements, no TextNodes in HTML)

Setup failed: Caught RangeError: -1

before that change it was

Caught type 'Text' is not a subtype of type 'Element' of 'element'.

this seems to be caused by TextNodes in the templates (I would say this is an Angular bug)

Time for bed ... Cheers, Günter

zoechi commented 10 years ago

@akserg Did you find time to take a look? Any revelations?

zoechi commented 10 years ago

From @akserg s comment on #53 I learned that I'm not the only one seeing this issue. I haven't seen any complaints from other Angular developers but I have the impression that many others don't use unittest much and are often not very eager to switch to new releases. This is the explanation for me why this problem didn't already pop up somewhere else since I hit this issue.

I'll ask some of the AngularDart guys if they have any idea. I already spent a lot of time debugging and didn't have the impression that I got even close to the cause.

zoechi commented 10 years ago

One thing I have to check before is the jasmine unit test code. As far as I know this code consists of some files just copied from the Angular project. Maybe something has changed here. I saw from AngularDart issues that there is some refactoring going on to split AngularDart test utility functions (like jQuery) from jasmine code.

akserg commented 10 years ago

No one component works in web example. I found a lot of _RangeError_s and type 'Text' is not a subtype of type 'Element' of 'element' exceptions in log. This set was generated for alone Accordion on the page:

RangeError: 1

STACKTRACE:

0 List.

1 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:73:52)

2 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

3 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

4 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

5 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

6 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

7 _rootRunUnary (dart:async/zone.dart:717)

8 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

9 _onRunUnary.

(package:angular/core/zone.dart:70:61)

10 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

11 _onRunUnary (package:angular/core/zone.dart:70:15)

12 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

13 _CustomizedZone.runUnary (dart:async/zone.dart:654)

14 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

15 _Future._propagateToListeners (dart:async/future_impl.dart:522)

16 _Future._complete (dart:async/future_impl.dart:303)

17 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

18 _rootRun (dart:async/zone.dart:706)

19 _ZoneDelegate.run (dart:async/zone.dart:440)

20 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

21 _rootRun (dart:async/zone.dart:710)

22 _ZoneDelegate.run (dart:async/zone.dart:440)

23 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

24 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

25 _onRunUnary (package:angular/core/zone.dart:70:15)

26 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

27 _CustomizedZone.runUnary (dart:async/zone.dart:654)

28 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

29 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595)

Any thoughts?

On 28 March 2014 08:28, Günter Zöchbauer notifications@github.com wrote:

From @akserg https://github.com/akserg s comment on #53https://github.com/akserg/angular.dart.ui/issues/53I learned that I'm not the only one seeing this issue. I haven't seen any complaints from other Angular developers but I have the impression that many others don't use unittest much and are often not very eager to switch to new releases. This is the explanation for me why this problem didn't already pop up somewhere else since I hit this issue.

I'll ask some of the AngularDart guys if they have any idea. I already spent a lot of time debugging and didn't have the impression that I got even close to the cause.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-38892071 .

akserg commented 10 years ago

We took files _spec.dart and _jasminesyntax.dart from Angular Dart but they out of date now. I think it's time to make refactoring of our tests to move ahead.

On 28 March 2014 08:47, Sergey Akopkokhyants akserg@gmail.com wrote:

No one component works in web example. I found a lot of _RangeError_s and type 'Text' is not a subtype of type 'Element' of 'element' exceptions in log. This set was generated for alone Accordion on the page:

RangeError: 1

STACKTRACE:

0 List.

1 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:73:52)

2 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

3 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

4 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

5 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

6 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

7 _rootRunUnary (dart:async/zone.dart:717)

8 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

9 _onRunUnary.

(package:angular/core/zone.dart:70:61)

10 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

11 _onRunUnary (package:angular/core/zone.dart:70:15)

12 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

13 _CustomizedZone.runUnary (dart:async/zone.dart:654)

14 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

15 _Future._propagateToListeners (dart:async/future_impl.dart:522)

16 _Future._complete (dart:async/future_impl.dart:303)

17 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

18 _rootRun (dart:async/zone.dart:706)

19 _ZoneDelegate.run (dart:async/zone.dart:440)

20 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

21 _rootRun (dart:async/zone.dart:710)

22 _ZoneDelegate.run (dart:async/zone.dart:440)

23 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

24 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

25 _onRunUnary (package:angular/core/zone.dart:70:15)

26 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

27 _CustomizedZone.runUnary (dart:async/zone.dart:654)

28 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

29 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595) type 'Text' is not a subtype of type 'Element' of 'element'. STACKTRACE:

0 NgEventDirective.NgEventDirective

(package:angular/directive/ng_events.dart:140:25)

1 _LocalClassMirror._invokeConstructor

(dart:mirrors-patch/mirrors_impl.dart:922)

2 _LocalClassMirror.newInstance

(dart:mirrors-patch/mirrors_impl.dart:838)

3 DynamicInjector.newInstanceOf

(package:di/dynamic_injector.dart:64:35)

4 _TypeProvider.get (package:di/module.dart:151:29)

5 Injector._getInstanceByKey (package:di/injector.dart:116:27)

6 Injector._getInstanceByKey (package:di/injector.dart:120:7)

7 Injector.get (package:di/injector.dart:170:24)

8 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:206:42)

9 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

10 ElementBinder.bind.

(package:angular/core_dom/element_binder.dart:257:9)

11 List.forEach (dart:core-patch/growable_array.dart:240)

12 ElementBinder.bind

(package:angular/core_dom/element_binder.dart:201:26)

13 TaggingViewFactory._bindTagged

(package:angular/core_dom/tagging_view_factory.dart:34:51)

14 TaggingViewFactory._link

(package:angular/core_dom/tagging_view_factory.dart:76:20)

15 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:22:12)

16 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

17 TaggingViewFactory.call

(package:angular/core_dom/tagging_view_factory.dart:24:7)

18 _ComponentFactory.attachViewToShadowDom

(package:angular/core_dom/view_factory.dart:224:27)

19 _ComponentFactory.call..

(package:angular/core_dom/view_factory.dart:208:40)

20 _rootRunUnary (dart:async/zone.dart:717)

21 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

22 _onRunUnary.

(package:angular/core/zone.dart:70:61)

23 NgZone._onRunBase (package:angular/core/zone.dart:54:16)

24 _onRunUnary (package:angular/core/zone.dart:70:15)

25 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

26 _CustomizedZone.runUnary (dart:async/zone.dart:654)

27 _Future._propagateToListeners.handleValueCallback

(dart:async/future_impl.dart:439)

28 _Future._propagateToListeners (dart:async/future_impl.dart:522)

29 _Future._propagateMultipleListeners

(dart:async/future_impl.dart:384)

30 _Future._propagateToListeners (dart:async/future_impl.dart:411)

31 _Future._complete (dart:async/future_impl.dart:303)

32 _Future._asyncComplete.

(dart:async/future_impl.dart:354)

33 _rootRun (dart:async/zone.dart:706)

34 _ZoneDelegate.run (dart:async/zone.dart:440)

35 _onScheduleMicrotask.

(package:angular/core/zone.dart:74:39)

36 _rootRun (dart:async/zone.dart:710)

37 _ZoneDelegate.run (dart:async/zone.dart:440)

38 NgZone._finishTurn (package:angular/core/zone.dart:94:23)

39 NgZone._onRunBase (package:angular/core/zone.dart:61:43)

40 _onRunUnary (package:angular/core/zone.dart:70:15)

41 _ZoneDelegate.runUnary (dart:async/zone.dart:449)

42 _CustomizedZone.runUnary (dart:async/zone.dart:654)

43 _BaseZone.runUnaryGuarded (dart:async/zone.dart:569)

44 _BaseZone.bindUnaryCallback.

(dart:async/zone.dart:595)

Any thoughts?

On 28 March 2014 08:28, Günter Zöchbauer notifications@github.com wrote:

From @akserg https://github.com/akserg s comment on #53https://github.com/akserg/angular.dart.ui/issues/53I learned that I'm not the only one seeing this issue. I haven't seen any complaints from other Angular developers but I have the impression that many others don't use unittest much and are often not very eager to switch to new releases. This is the explanation for me why this problem didn't already pop up somewhere else since I hit this issue.

I'll ask some of the AngularDart guys if they have any idea. I already spent a lot of time debugging and didn't have the impression that I got even close to the cause.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-38892071 .

zoechi commented 10 years ago

'Text' is not a subtype of type 'Element' of 'element' was one of the errors I got. I think this one is a bug in AngularDart. I got away (as mentioned) when removing all line-breaks and spaces between tags in templates (component and test). But that just led to other errors.

What do you mean by refactoring?

akserg commented 10 years ago

Our tests were written by different people following different patterns to how write the tests. I think we need review tests and change them to be similar and simpler. We have questions (why do we need use microLeap method two times and others) and we need to have answers on them to fix or maybe change wrong decisions.

On 28 March 2014 09:43, Günter Zöchbauer notifications@github.com wrote:

'Text' is not a subtype of type 'Element' of 'element' was one of the errors I got. I think this one is a bug in AngularDart. I got away (as mentioned) when removing all line-breaks and spaces between tags in templates (component and test). But that just led to other errors.

What do you mean by refactoring?

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-38895179 .

ufoscout commented 10 years ago

'Text' is not a subtype of type 'Element' .... uhm... it reminds me something. I had this issue time ago in some unit tests. If I'm not wrong, it was related to the fact that a node in the test html was a simple string without html tags. E.g. 'html content' instead of <span>html content</span>.

akserg commented 10 years ago

That issue happens in all web examples.

On 28 March 2014 11:02, Francesco notifications@github.com wrote:

'Text' is not a subtype of type 'Element' .... uhm... it reminds me something. I had this issue time ago in some unit tests. If I'm not wrong, it was related to the fact that a node in the test html was a simple string without html tags. E.g. 'html content' instead of 'html content'.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-38899346 .

zoechi commented 10 years ago

There aren't many other AngularDart components to learn from how to write good unit tests. It would be helpful if there were more tests from the AngularDart team itself to learn from.

I saw the microLeap for example somewhere in AngularDart tests I don't remember if the test did or didn't run without it (I don't even know if I wrote the test you refer to). I just remember playing this this microLeap a while ago to make tests run.

Currently there seems to be some refactoring/change going on in the AngularDart project about unit test related code. If it was for me, I wouldn't need the jasmine syntax. Does it really improve anything except renaming group and test. I stuck with it because some AngularDart test utility functions where included (like jQuery) but what I have seen this is currently being refactored to split jasmine from AngularDart test utility code. What do you think about it?

What I found weird is the use of

beforeEach(xxx);
beforeEach(yyy);
beforeEach(zzz);

instead of

beforeEach(() {
  () => xxx();
  () => yyy();
  () => zzz();
});

I think the tests should be organized in a way that it is possible to executed just the tests for one component. In addition there should be a script that calls all other tests.

ufoscout commented 10 years ago

"If it was for me, I wouldn't need the jasmine syntax." -> I agree. However, the _jasminesyntax.dart file provides some handy methods like expect(...).toBe(...) or expect(...).toBeNull() and so on.

zoechi commented 10 years ago

The matchers of Darts unittest library do the same, don't they. Just a little different syntax. expect(..., equals(...)) or expect(..., isNull)

akserg commented 10 years ago

Set of "handy methods" help us migrate test from "Angular UI" to "Angular Dart UI" smoothly enough. They are very handy, because Angular Dart team still use them in their tests and I use them long enough as examples to write my tests.

On 28 March 2014 19:22, Günter Zöchbauer notifications@github.com wrote:

The matchers of Darts unittest library do the same, don't they. Just a little different syntax. expect(..., equals(...)) or expect(..., isNull)

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-38945157 .

zoechi commented 10 years ago

I don't say that this was a wrong decision. I still think it was the right thing to do at the time. I know there are handy methods but for me expect or toBeXxx are not one of them.

What I have seen from AngularDart issues is that they are refactoring this test related code to split AngularDart test utility methods and classes from Jasmine syntax code. And I was asking if the different names and slightly different syntax are worth the additional Jasmine code. I made the experience when I started tests that not even simple string comparsion worked reliable expect('xxx').toBe('xxx') failed. (I didn't have this recently).

But for me the conclusion was that Jasmine makes more troubles than it's worth. And if it's true that AngularDart is splitting Jasmine from AngularDart test code I think its worth a discussion if we should stick with Jasmine.

akserg commented 10 years ago

Global functions, you called toBeXxx, are parts of Angular's spec file and call unittests functions, nothing else. Integration functions of Jasmin only needs if we really use nodejs to organise our tests automation and could be excluded at all with similar startup and teardown analogues. Question - do we really want create them?

On 29 March 2014 18:56, Günter Zöchbauer notifications@github.com wrote:

I don't say that this was a wrong decision. I still think it was the right thing to do at the time. I know there are handy methods but for me expect or toBeXxx are not one of them.

What I have seen from AngularDart issues is that they are refactoring this test related code to split AngularDart test utility methods and classes from Jasmine syntax code. And I was asking if the different names and slightly different syntax are worth the additional Jasmine code. I made the experience when I started tests that not even simple string comparsion worked reliable expect('xxx').toBe('xxx') failed. (I didn't have this recently).

But for me the conclusion was that Jasmine makes more troubles than it's worth. And if it's true that AngularDart is splitting Jasmine from AngularDart test code I think its worth a discussion if we should stick with Jasmine.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-39001461 .

zoechi commented 10 years ago

They just call other functions, this is why I wonder if we need this, and I wonder if they contribute to difficulties with debugging unit tests. I mostly wanted to hear your opinions. There is no pressure/urgency to do this.

zoechi commented 10 years ago

We have to wait until the changes have landed in a release anyway and then we could verify if it makes sense.

wstrange commented 10 years ago

Just a shot in the dark - but could this be related: Timeout.call. (package:angular_ui/utils/timeout.dart:77:21)

Calls scope.$apply() - which has been renamed scope.apply() in the latest angular. Perhaps there are a few of the $xxxx methods that need to be renamed.

akserg commented 10 years ago

Thanks Warren. :)

On 31 March 2014 23:51, Warren Strange notifications@github.com wrote:

Just a shot in the dark that could be related to this bug: Timeout.call. (package:angular_ui/utils/timeout.dart:77:21)

Calls scope.$apply() - which has been renamed scope.apply() in the latest angular. Perhaps there are a few of the $xxxx methods that need to be renamed.

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-39146754 .

akserg commented 10 years ago

I have raised bug in Angular Dart. Directive 'ng-include' works incorrect if html template has comments. So simple removing comments from all examples does help to fix the problem.

I'm still checking and fixing problem with unittests.

zoechi commented 10 years ago

I upgraded to Angular from github repo (master) and solved all errors the analyzer showed, but now every test fails (have yet to investigate)

akserg commented 10 years ago

I have committed code, all tests passed, published. Done.

Regards, Sergey.

On 1 April 2014 14:30, Günter Zöchbauer notifications@github.com wrote:

I upgraded to Angular from github repo (master) and solved all errors the analyzer showed, but now every test fails (have yet to investigate)

Reply to this email directly or view it on GitHubhttps://github.com/akserg/angular.dart.ui/issues/52#issuecomment-39199336 .

akserg commented 10 years ago

Fixed.

zoechi commented 10 years ago

Great!