From 29410b7aabc7b54ceeed16348f2d13a410f8c841 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Thu, 22 Feb 2018 13:28:16 +0000 Subject: [PATCH] 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 --- .../coffee/ide/editor/directives/cmEditorTests.coffee | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/web/test/unit_frontend/coffee/ide/editor/directives/cmEditorTests.coffee b/services/web/test/unit_frontend/coffee/ide/editor/directives/cmEditorTests.coffee index ada42238af..1200d6105c 100644 --- a/services/web/test/unit_frontend/coffee/ide/editor/directives/cmEditorTests.coffee +++ b/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('
')($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