Skip to content

Instantly share code, notes, and snippets.

@joewest
Created December 15, 2011 23:48
Show Gist options
  • Save joewest/1483543 to your computer and use it in GitHub Desktop.
Save joewest/1483543 to your computer and use it in GitHub Desktop.
ember.js test that all enter/exit states trigger when dealing with nested StateManagers
module("Ember.StateManager - nested StateManagers", {
setup: function() {
var State = Ember.State.extend(stateEventStub);
stateManager = Ember.StateManager.create(stateEventStub, {
grandparentA: State.create({
parent: Ember.StateManager.create(stateEventStub, {
child: State.create(),
sibling: State.create()
}),
aunt: State.create()
}),
grandparentB: State.create({
uncle: State.create()
})
});
}
});
test("all enter/exit states trigger when dealing with nested StateManagers", function() {
stateManager.goToState('grandparentA.parent.child');
stateManager.goToState('grandparentA.parent.sibling');
stateManager.goToState('grandparentA.parent.child');
stateManager.goToState('grandparentB.uncle');
equals(stateManager.grandparentB.entered, 1, "the other top level should be entered");
equals(stateManager.grandparentB.uncle.entered, 1, "other intermediate state should be entered");
equals(stateManager.grandparentA.exited, 1, "original top level should have exited");
equals(stateManager.grandparentA.parent.exited, 1, "intermediate states should have exited");
equals(stateManager.grandparentA.parent.sibling.exited, 1, "sibling should have exited");
equals(stateManager.grandparentA.parent.child.exited, 2, "child should have exited again");
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment