Просмотр исходного кода

Fix applyAsync from not evaluating expression in tests

See https://github.com/angular/angular.js/issues/10788#issuecomment-70376834
which explains that applyAsync is scheduled to evaluate in the next tick, but
this is managed by $browser. Therefore we can manually flush the trigger
Alasdair Smith 8 лет назад
Родитель
Сommit
29410b7aab

+ 4 - 2
services/web/test/unit_frontend/coffee/ide/editor/directives/cmEditorTests.coffee

@@ -18,7 +18,7 @@ define ['ide/editor/directives/cmEditor'], () ->
         expect(@richTextInit).to.have.been.called
 
     it 'attaches to CM', () ->
-      inject ($compile, $rootScope) ->
+      inject ($compile, $rootScope, $browser) ->
         getSnapshot = sinon.stub()
         detachFromCM = sinon.stub()
         attachToCM = sinon.stub()
@@ -30,7 +30,9 @@ define ['ide/editor/directives/cmEditor'], () ->
 
         $compile('<div cm-editor sharejs-doc="sharejsDoc"></div>')($rootScope)
         $rootScope.$digest()
-        $rootScope.$digest()
+        # Trigger $applyAsync to evaluate the expression, normally done in the
+        # next tick
+        $browser.defer.flush()
 
         expect(detachFromCM).to.have.been.called
         expect(getSnapshot).to.have.been.called