Switch over to using sinon.sandbox in karma specs

This commit is contained in:
Blade Barringer
2015-06-20 14:48:38 -05:00
parent 970b8d4061
commit 944cef4d44
12 changed files with 44 additions and 59 deletions

View File

@@ -4,13 +4,8 @@ describe('AppJS', function() {
describe('Automatic page refresh', function(){ describe('Automatic page refresh', function(){
var clock; var clock;
beforeEach(function () { beforeEach(function () {
clock = sinon.useFakeTimers(); clock = sandbox.useFakeTimers();
sinon.stub(window, "refresher", function(){return true}); sandbox.stub(window, "refresher", function(){return true});
});
afterEach(function () {
clock.restore();
window.refresher.restore();
}); });
it('should not call refresher if idle time is less than 6 hours', function() { it('should not call refresher if idle time is less than 6 hours', function() {

View File

@@ -10,8 +10,8 @@ describe('Auth Controller', function() {
scope = $rootScope.$new(); scope = $rootScope.$new();
scope.loginUsername = 'user'; scope.loginUsername = 'user';
scope.loginPassword = 'pass'; scope.loginPassword = 'pass';
$window = { location: { href: ""}, alert: sinon.spy() }; $window = { location: { href: ""}, alert: sandbox.spy() };
user = { user: {}, authenticate: sinon.spy() }; user = { user: {}, authenticate: sandbox.spy() };
ctrl = $controller('AuthCtrl', {$scope: scope, $window: $window, User: user}); ctrl = $controller('AuthCtrl', {$scope: scope, $window: $window, User: user});
})); }));
@@ -20,16 +20,16 @@ describe('Auth Controller', function() {
$httpBackend.expectPOST('/api/v2/user/auth/local').respond({id: 'abc', token: 'abc'}); $httpBackend.expectPOST('/api/v2/user/auth/local').respond({id: 'abc', token: 'abc'});
scope.auth(); scope.auth();
$httpBackend.flush(); $httpBackend.flush();
sinon.assert.calledOnce(user.authenticate); expect(user.authenticate).to.be.calledOnce;
sinon.assert.notCalled($window.alert); expect($window.alert).to.not.be.called;
}); });
it('should not log in users with incorrect uname / pass', function() { it('should not log in users with incorrect uname / pass', function() {
$httpBackend.expectPOST('/api/v2/user/auth/local').respond(404, ''); $httpBackend.expectPOST('/api/v2/user/auth/local').respond(404, '');
scope.auth(); scope.auth();
$httpBackend.flush(); $httpBackend.flush();
sinon.assert.notCalled(user.authenticate); expect(user.authenticate).to.not.be.called;
sinon.assert.calledOnce($window.alert); expect($window.alert).to.be.calledOnce;
}); });
}); });

View File

@@ -30,7 +30,7 @@ describe('Groups Controller', function() {
party.type = 'party'; party.type = 'party';
party.members = []; // Ensure we wouldn't pass automatically. party.members = []; // Ensure we wouldn't pass automatically.
var partyStub = sinon.stub(groups,"party", function() { var partyStub = sandbox.stub(groups,"party", function() {
return party; return party;
}); });
@@ -44,7 +44,7 @@ describe('Groups Controller', function() {
guild.type = 'guild'; guild.type = 'guild';
guild.members.push(user._id); guild.members.push(user._id);
var myGuilds = sinon.stub(groups,"myGuilds", function() { var myGuilds = sandbox.stub(groups,"myGuilds", function() {
return [guild]; return [guild];
}); });
@@ -58,7 +58,7 @@ describe('Groups Controller', function() {
guild._id = "unique-guild-id"; guild._id = "unique-guild-id";
guild.type = 'guild'; guild.type = 'guild';
var myGuilds = sinon.stub(groups,"myGuilds", function() { var myGuilds = sandbox.stub(groups,"myGuilds", function() {
return []; return [];
}); });
@@ -98,7 +98,7 @@ describe("Chat Controller", function() {
name: "Princess Bride" name: "Princess Bride"
}; };
var modalSpy = sinon.spy($rootScope, "openModal"); var modalSpy = sandbox.spy($rootScope, "openModal");
var message = { var message = {
uuid: 'the-dread-pirate-roberts', uuid: 'the-dread-pirate-roberts',
user: 'Wesley', user: 'Wesley',
@@ -120,7 +120,7 @@ describe("Chat Controller", function() {
name: "Princess Bride" name: "Princess Bride"
}; };
var modalSpy = sinon.spy($rootScope, "openModal"); var modalSpy = sandbox.spy($rootScope, "openModal");
var message = { var message = {
uuid: 'system', uuid: 'system',
text: 'Wesley attacked the ROUS in the Fire Swamp' text: 'Wesley attacked the ROUS in the Fire Swamp'
@@ -221,7 +221,7 @@ describe("Autocomplete controller", function() {
describe("performCompletion", function() { describe("performCompletion", function() {
it('triggers autoComplete', function() { it('triggers autoComplete', function() {
scope.autoComplete = sinon.spy(); scope.autoComplete = sandbox.spy();
var msg = {user: "boo"}; // scope.autoComplete only cares about user var msg = {user: "boo"}; // scope.autoComplete only cares about user
scope.query = {text: "b"}; scope.query = {text: "b"};
@@ -247,7 +247,7 @@ describe("Autocomplete controller", function() {
describe("chatChanged", function() { describe("chatChanged", function() {
it('if a new chat arrives, the new user name is extracted', function() { it('if a new chat arrives, the new user name is extracted', function() {
var chatChanged = sinon.spy(scope, 'chatChanged'); var chatChanged = sandbox.spy(scope, 'chatChanged');
scope.$watch('group.chat',scope.chatChanged); // reinstantiate watch so spy works scope.$watch('group.chat',scope.chatChanged); // reinstantiate watch so spy works
scope.$digest(); // trigger watch scope.$digest(); // trigger watch
@@ -269,11 +269,11 @@ describe("CopyMessageModal controller", function() {
user = specHelper.newUser(); user = specHelper.newUser();
user._id = "unique-user-id"; user._id = "unique-user-id";
user.ops = { user.ops = {
addTask: sinon.spy() addTask: sandbox.spy()
}; };
scope = $rootScope.$new(); scope = $rootScope.$new();
scope.$close = sinon.spy(); scope.$close = sandbox.spy();
$controller = _$controller_; $controller = _$controller_;
@@ -283,7 +283,7 @@ describe("CopyMessageModal controller", function() {
ctrl = $controller('CopyMessageModalCtrl', {$scope: scope, User: {user: user}}); ctrl = $controller('CopyMessageModalCtrl', {$scope: scope, User: {user: user}});
Notification = _Notification_; Notification = _Notification_;
Notification.text = sinon.spy(); Notification.text = sandbox.spy();
}); });
}); });

View File

@@ -22,15 +22,12 @@ describe('Hall of Heroes Controller', function() {
}); });
it('populates contributor input with selected hero id', function(){ it('populates contributor input with selected hero id', function(){
var loadHero = sinon.spy(scope, "loadHero"); var loadHero = sandbox.spy(scope, "loadHero");
var scrollTo = sinon.spy(window, "scrollTo"); var scrollTo = sandbox.spy(window, "scrollTo");
scope.populateContributorInput(user._id); scope.populateContributorInput(user._id);
expect(scope._heroID).to.eql(user._id); expect(scope._heroID).to.eql(user._id);
expect(loadHero.callCount).to.eql(1); expect(loadHero.callCount).to.eql(1);
expect(scrollTo.callCount).to.eql(1); expect(scrollTo.callCount).to.eql(1);
scope.loadHero.restore();
window.scrollTo.restore();
}); });
}); });

View File

@@ -26,13 +26,8 @@ describe('Header Controller', function() {
context('inviteOrStartParty', function(){ context('inviteOrStartParty', function(){
beforeEach(function(){ beforeEach(function(){
sinon.stub($location, 'path'); sandbox.stub($location, 'path');
sinon.stub($rootScope, 'openModal'); sandbox.stub($rootScope, 'openModal');
});
afterEach(function(){
$location.path.restore();
$rootScope.openModal.restore();
}); });
it('redirects to party page if user does not have a party', function(){ it('redirects to party page if user does not have a party', function(){

View File

@@ -24,13 +24,13 @@ describe('Root Controller', function() {
$httpBackend = _$httpBackend_; $httpBackend = _$httpBackend_;
notification = Notification; notification = Notification;
sinon.stub(notification, 'text'); sandbox.stub(notification, 'text');
sinon.stub(notification, 'markdown'); sandbox.stub(notification, 'markdown');
user = specHelper.newUser(); user = specHelper.newUser();
User = {user: user}; User = {user: user};
User.save = sinon.spy(); User.save = sandbox.spy();
User.sync = sinon.spy(); User.sync = sandbox.spy();
$httpBackend.whenGET(/partials/).respond(); $httpBackend.whenGET(/partials/).respond();
@@ -38,13 +38,6 @@ describe('Root Controller', function() {
}); });
}); });
afterEach(function() {
notification.text.reset();
notification.markdown.reset();
User.save.reset();
User.sync.reset();
});
describe('contribText', function(){ describe('contribText', function(){
it('shows contributor level text', function(){ it('shows contributor level text', function(){
expect(scope.contribText()).to.eql(undefined); expect(scope.contribText()).to.eql(undefined);

View File

@@ -16,7 +16,7 @@ describe('focusMe Directive', function() {
it('focuses the element when appended to the DOM', function() { it('focuses the element when appended to the DOM', function() {
inject(function($timeout) { inject(function($timeout) {
var focusSpy = sinon.spy(); var focusSpy = sandbox.spy();
element.appendTo(document.body); element.appendTo(document.body);
element.on('focus', focusSpy); element.on('focus', focusSpy);

View File

@@ -11,7 +11,7 @@ describe('fromNow Directive', function() {
scope = $rootScope.$new(); scope = $rootScope.$new();
scope.message = {}; scope.message = {};
sinon.stub(window, 'moment').returns({ sandbox.stub(window, 'moment').returns({
fromNow: function() { return fromNow }, fromNow: function() { return fromNow },
diff: function() { return diff } diff: function() { return diff }
}); });

View File

@@ -1,10 +1,11 @@
'use strict'; 'use strict';
describe('Task Ordering Filters', function() { describe('Task Ordering Filters', function() {
var filter var filter, orderBySpy;
, orderBySpy = sinon.spy();
beforeEach(function() { beforeEach(function() {
orderBySpy = sandbox.spy();
module(function($provide) { module(function($provide) {
$provide.value('orderByFilter', orderBySpy); $provide.value('orderByFilter', orderBySpy);
}); });

View File

@@ -3,13 +3,11 @@
describe('notificationServices', function() { describe('notificationServices', function() {
var notification; var notification;
before(function(){ beforeEach(function() {
sinon.stub($, 'pnotify', function(){ sandbox.stub($, 'pnotify', function(){
return { click: function(){}} return { click: function(){}}
}); });
});
beforeEach(function() {
module(function($provide){ module(function($provide){
$provide.value('User', {}); $provide.value('User', {});
}); });
@@ -19,10 +17,6 @@ describe('notificationServices', function() {
}); });
}); });
afterEach(function() {
$.pnotify.reset();
});
it('notifies coins amount', function() { it('notifies coins amount', function() {
var SILVER_COIN = "<span class='notification-icon shop_silver'></span>"; var SILVER_COIN = "<span class='notification-icon shop_silver'></span>";
var GOLD_COIN = "<span class='notification-icon shop_gold'></span>"; var GOLD_COIN = "<span class='notification-icon shop_gold'></span>";

View File

@@ -7,7 +7,7 @@ describe('userServices', function() {
beforeEach(function(){ beforeEach(function(){
module(function($provide){ module(function($provide){
$window = {href: '', alert: sinon.spy(), location: {search: '', pathname: ''}}; $window = {href: '', alert: sandbox.spy(), location: {search: '', pathname: ''}};
$provide.value('$window', $window); $provide.value('$window', $window);
}); });

View File

@@ -1,5 +1,15 @@
beforeEach(module('habitrpg')); beforeEach(module('habitrpg'));
var sandbox;
beforeEach(function() {
sandbox = sinon.sandbox.create();
});
afterEach(function() {
sandbox.restore();
});
specHelper = { specHelper = {
newUser: function(){ newUser: function(){
var buffs = {per:0, int:0, con:0, str:0, stealth: 0, streaks: false}; var buffs = {per:0, int:0, con:0, str:0, stealth: 0, streaks: false};