mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-04 09:39:23 +00:00
Merge pull request #2253 from djuretic/inventory_tests
More InventoryCtrl tests
This commit is contained in:
commit
68ad68e74d
2 changed files with 51 additions and 9 deletions
|
|
@ -1,5 +1,5 @@
|
|||
habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', 'User',
|
||||
function($rootScope, $scope, User) {
|
||||
habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', '$window', 'User',
|
||||
function($rootScope, $scope, $window, User) {
|
||||
|
||||
var user = User.user;
|
||||
var Content = $rootScope.Content;
|
||||
|
|
@ -77,7 +77,7 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', 'User',
|
|||
}
|
||||
|
||||
$scope.hatch = function(egg, potion){
|
||||
if (!confirm('Hatch a ' + potion.key + ' ' + egg.key + '?')) return;
|
||||
if (!$window.confirm('Hatch a ' + potion.key + ' ' + egg.key + '?')) return;
|
||||
user.ops.hatch({params:{egg:egg.key, hatchingPotion:potion.key}});
|
||||
$scope.selectedEgg = null;
|
||||
$scope.selectedPotion = null;
|
||||
|
|
@ -91,7 +91,7 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', 'User',
|
|||
if(gems < item.value) return $rootScope.modals.buyGems = true;
|
||||
var string = (type == 'hatchingPotion') ? 'hatching potion' : type; // give hatchingPotion a space
|
||||
var message = "Buy this " + string + " with " + item.value + " of your " + gems + " Gems?"
|
||||
if(confirm(message))
|
||||
if($window.confirm(message))
|
||||
User.user.ops.purchase({params:{type:type,key:item.key}});
|
||||
}
|
||||
|
||||
|
|
@ -102,8 +102,8 @@ habitrpg.controller("InventoryCtrl", ['$rootScope', '$scope', 'User',
|
|||
if ($scope.selectedFood) {
|
||||
var food = $scope.selectedFood
|
||||
if (food.key == 'Saddle') {
|
||||
if (!confirm('Saddle ' + pet + '?')) return;
|
||||
} else if (!confirm('Feed ' + pet + ' a ' + food.key + '?')) {
|
||||
if (!$window.confirm('Saddle ' + pet + '?')) return;
|
||||
} else if (!$window.confirm('Feed ' + pet + ' a ' + food.key + '?')) {
|
||||
return;
|
||||
}
|
||||
User.user.ops.feed({params:{pet: pet, food: food.key}});
|
||||
|
|
|
|||
|
|
@ -1,14 +1,25 @@
|
|||
'use strict';
|
||||
|
||||
describe('Inventory Controller', function() {
|
||||
var scope, ctrl;
|
||||
var scope, ctrl, user, $rootScope;
|
||||
|
||||
beforeEach(module('habitrpg'));
|
||||
beforeEach(inject(function($rootScope, $controller){
|
||||
var user = {};
|
||||
user = {
|
||||
user: {
|
||||
stats: {gp: 0},
|
||||
items: {eggs: {'Cactus': 1}, hatchingPotions: {'Base': 1}, food: {'Meat': 1}, pets: {}},
|
||||
}
|
||||
};
|
||||
window.habitrpgShared.wrap(user.user);
|
||||
var mockWindow = {
|
||||
confirm: function(msg){
|
||||
return true;
|
||||
}
|
||||
};
|
||||
scope = $rootScope.$new();
|
||||
$rootScope.Content = window.habitrpgShared.content;
|
||||
ctrl = $controller('InventoryCtrl', {$scope: scope, User: user});
|
||||
ctrl = $controller('InventoryCtrl', {$scope: scope, User: user, $window: mockWindow});
|
||||
}));
|
||||
|
||||
it('starts without any item selected', function(){
|
||||
|
|
@ -26,4 +37,35 @@ describe('Inventory Controller', function() {
|
|||
scope.choosePotion('Base');
|
||||
expect(scope.selectedPotion.key).to.eql('Base');
|
||||
});
|
||||
|
||||
it('hatches a pet', function(){
|
||||
scope.chooseEgg('Cactus');
|
||||
scope.choosePotion('Base');
|
||||
expect(user.user.items.eggs).to.eql({'Cactus': 0});
|
||||
expect(user.user.items.hatchingPotions).to.eql({'Base': 0});
|
||||
expect(user.user.items.pets).to.eql({'Cactus-Base': 5});
|
||||
expect(scope.selectedEgg).to.eql(null);
|
||||
expect(scope.selectedPotion).to.eql(null);
|
||||
});
|
||||
|
||||
it('sells an egg', function(){
|
||||
scope.chooseEgg('Cactus');
|
||||
scope.sellInventory();
|
||||
expect(user.user.items.eggs).to.eql({'Cactus': 0});
|
||||
expect(user.user.stats.gp).to.eql(3);
|
||||
});
|
||||
|
||||
it('sells a potion', function(){
|
||||
scope.choosePotion('Base');
|
||||
scope.sellInventory();
|
||||
expect(user.user.items.hatchingPotions).to.eql({'Base': 0});
|
||||
expect(user.user.stats.gp).to.eql(2);
|
||||
});
|
||||
|
||||
it('sells food', function(){
|
||||
scope.chooseFood('Meat');
|
||||
scope.sellInventory();
|
||||
expect(user.user.items.food).to.eql({'Meat': 0});
|
||||
expect(user.user.stats.gp).to.eql(1);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue