Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
angular.module('stateMock',[]);
angular.module('stateMock').service("$state", function($q){
this.expectedTransitions = [];
this.current = {};
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);
this.current.name = 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!");
}
}
});
@alexanderjeurissen
Copy link

alexanderjeurissen commented Sep 29, 2014

i created a fork to implement the $state.is method which i used in a scope method. https://gist.github.com/alexanderjeurissen/1c45ca694ad333baeddd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment