         publishMatch beforeActionRoute, params, options
 
         loadController ->
-          expect(beforeAction).was.called()
-          expect(action).was.called()
+          expect(beforeAction).was.calledOnce()
           expect(beforeAction.firstCall.thisValue).to.be.a BeforeActionController
+          expect(action).was.calledOnce()
           expect(beforeAction.calledBefore(action)).to.be true
 
           beforeAction.restore()

        publishMatch firstRoute, params, options

        loadNeverendingController ->
          expect(beforeAction).was.called()
          expect(firstAction).was.notCalled()

          # While the promise is pending, start another controller
          publishMatch secondRoute, params, options

          loadTest2Controller ->
            expect(secondAction).was.called()

            # Test what happens when the Promise is resolved later
            deferred.resolve()

          publishMatch route, params, options

          loadController ->
            expect(beforeAction).was.calledOnce()
            expect(action).was.calledOnce()

            beforeAction.restore()
            action.restore()
