TwoToc code
[YouAndWeb_TwoToc] / client / components / ui-router / ui-router.mock.js
diff --git a/client/components/ui-router/ui-router.mock.js b/client/components/ui-router/ui-router.mock.js
new file mode 100755 (executable)
index 0000000..a5a1bf4
--- /dev/null
@@ -0,0 +1,34 @@
+'use strict';
+
+angular.module('stateMock', []);
+angular.module('stateMock').service('$state', function($q) {
+    this.expectedTransitions = [];
+
+    this.transitionTo = function(stateName) {
+        if (this.expectedTransitions.length > 0) {
+            var expectedState = this.expectedTransitions.shift();
+            if (expectedState !== stateName) {
+                throw Error('Expected transition to state: ' + expectedState + ' but transitioned to ' + stateName);
+            }
+        } else {
+            throw Error('No more transitions were expected! Tried to transition to ' + stateName);
+        }
+        console.log('Mock transition to: ' + stateName);
+        var deferred = $q.defer();
+        var promise = deferred.promise;
+        deferred.resolve();
+        return promise;
+    };
+
+    this.go = this.transitionTo;
+
+    this.expectTransitionTo = function(stateName) {
+        this.expectedTransitions.push(stateName);
+    };
+
+    this.ensureAllTransitionsHappened = function() {
+        if (this.expectedTransitions.length > 0) {
+            throw Error('Not all transitions happened!');
+        }
+    };
+});