Files
habitica/test/common/fns/ultimateGear.js
Matteo Pagliazzi f7be7205e7 Remove localstorage and add notifications (#7588)
* move remaining files frm /common/script/public to website/public

* remove localstorage

* add back noscript template and put all javascript in the footer

* fixes client side tests

* remove double quotes where possible

* simplify jade code and add tests for buildManifest

* loading page with logo and spinner

* better loading screen in landscape mode

* icon on top of text logo

* wip: user.notifications

* notifications: simpler and working code

* finish implementing notifications

* correct loading screen css and re-inline images

* add tests for user notifications

* split User model in multiple files

* remove old comment about missing .catch()

* correctly setup hooks and methods for User model. Cleanup localstorage

* include UserNotificationsService in static page js and split loading-screen css in its own file

* add cron notification and misc fixes

* remove console.log

* fix tests

* fix multiple notifications
2016-06-07 16:14:19 +02:00

62 lines
1.7 KiB
JavaScript

import ultimateGear from '../../../common/script/fns/ultimateGear';
import {
generateUser,
} from '../../helpers/common.helper';
describe('shared.fns.ultimateGear', () => {
let user;
beforeEach(() => {
user = generateUser();
user.achievements.ultimateGearSets.toObject = function () {
return this;
};
user.addNotification = sinon.spy();
});
it('sets armoirEnabled when partial achievement already achieved', () => {
let items = {
gear: {
owned: {
toObject: () => {
return {
armor_warrior_5: true, // eslint-disable-line camelcase
shield_warrior_5: true, // eslint-disable-line camelcase
head_warrior_5: true, // eslint-disable-line camelcase
weapon_warrior_6: true, // eslint-disable-line camelcase
};
},
},
},
};
user.items = items;
ultimateGear(user);
expect(user.flags.armoireEnabled).to.equal(true);
expect(user.addNotification).to.be.calledOnce;
expect(user.addNotification).to.be.calledWith('ULTIMATE_GEAR_ACHIEVEMENT');
});
it('does not set armoirEnabled when gear is not owned', () => {
let items = {
gear: {
owned: {
toObject: () => {
return {
armor_warrior_5: true, // eslint-disable-line camelcase
shield_warrior_5: true, // eslint-disable-line camelcase
head_warrior_5: true, // eslint-disable-line camelcase
weapon_warrior_6: false, // eslint-disable-line camelcase
};
},
},
},
};
user.items = items;
ultimateGear(user);
expect(user.flags.armoireEnabled).to.equal(false);
});
});