mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
83 lines
2.4 KiB
JavaScript
83 lines
2.4 KiB
JavaScript
'use strict';
|
|
|
|
describe('Inventory Controller', function() {
|
|
var scope, ctrl, user, $rootScope;
|
|
|
|
beforeEach(module('habitrpg'));
|
|
beforeEach(inject(function($rootScope, $controller){
|
|
user = {
|
|
balance: 4,
|
|
stats: {gp: 0},
|
|
items: {eggs: {Cactus: 1}, hatchingPotions: {Base: 1}, food: {Meat: 1}, pets: {}},
|
|
};
|
|
window.habitrpgShared.wrap(user);
|
|
var mockWindow = {
|
|
confirm: function(msg){
|
|
return true;
|
|
}
|
|
};
|
|
scope = $rootScope.$new();
|
|
$rootScope.Content = window.habitrpgShared.content;
|
|
ctrl = $controller('InventoryCtrl', {$scope: scope, User: {user: user}, $window: mockWindow});
|
|
}));
|
|
|
|
it('starts without any item selected', function(){
|
|
expect(scope.selectedEgg).to.eql(null);
|
|
expect(scope.selectedPotion).to.eql(null);
|
|
expect(scope.selectedFood).to.eql(undefined);
|
|
});
|
|
|
|
it('chooses an egg', function(){
|
|
scope.chooseEgg('Cactus');
|
|
expect(scope.selectedEgg.key).to.eql('Cactus');
|
|
});
|
|
|
|
it('chooses a potion', function(){
|
|
scope.choosePotion('Base');
|
|
expect(scope.selectedPotion.key).to.eql('Base');
|
|
});
|
|
|
|
it('hatches a pet', function(){
|
|
scope.chooseEgg('Cactus');
|
|
scope.choosePotion('Base');
|
|
expect(user.items.eggs).to.eql({Cactus: 0});
|
|
expect(user.items.hatchingPotions).to.eql({Base: 0});
|
|
expect(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.items.eggs).to.eql({Cactus: 0});
|
|
expect(user.stats.gp).to.eql(3);
|
|
});
|
|
|
|
it('sells a potion', function(){
|
|
scope.choosePotion('Base');
|
|
scope.sellInventory();
|
|
expect(user.items.hatchingPotions).to.eql({Base: 0});
|
|
expect(user.stats.gp).to.eql(2);
|
|
});
|
|
|
|
it('sells food', function(){
|
|
scope.chooseFood('Meat');
|
|
scope.sellInventory();
|
|
expect(user.items.food).to.eql({Meat: 0});
|
|
expect(user.stats.gp).to.eql(1);
|
|
});
|
|
|
|
it('chooses a pet', function(){
|
|
user.items.pets['Cactus-Base'] = 5;
|
|
scope.choosePet('Cactus', 'Base');
|
|
expect(user.items.currentPet).to.eql('Cactus-Base');
|
|
});
|
|
|
|
it('purchases an egg', function(){
|
|
scope.purchase('eggs', window.habitrpgShared.content.eggs['Wolf']);
|
|
expect(user.balance).to.eql(3.25);
|
|
expect(user.items.eggs).to.eql({Cactus: 1, Wolf: 1})
|
|
});
|
|
});
|