mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
Merge branch 'mana-lvl-10' of https://github.com/TheHollidayInn/habitrpg into TheHollidayInn-mana-lvl-10
This commit is contained in:
50
test/client/unit/specs/components/notifications.js
Normal file
50
test/client/unit/specs/components/notifications.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
import { shallowMount, createLocalVue } from '@vue/test-utils';
|
||||||
|
import NotificationsComponent from 'client/components/notifications.vue';
|
||||||
|
import Store from 'client/libs/store';
|
||||||
|
import { hasClass } from 'client/store/getters/members';
|
||||||
|
|
||||||
|
const localVue = createLocalVue();
|
||||||
|
localVue.use(Store);
|
||||||
|
|
||||||
|
describe.only('Notifications', () => {
|
||||||
|
let store;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
store = new Store({
|
||||||
|
state: {
|
||||||
|
user: {
|
||||||
|
data: {
|
||||||
|
stats: {
|
||||||
|
lvl: 0,
|
||||||
|
},
|
||||||
|
flags: {},
|
||||||
|
preferences: {},
|
||||||
|
party: {
|
||||||
|
quest: {
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
'user:fetch': () => {},
|
||||||
|
'tasks:fetchUserTasks': () => {},
|
||||||
|
},
|
||||||
|
getters: {
|
||||||
|
'members:hasClass': hasClass,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('set user has class computed prop', () => {
|
||||||
|
const wrapper = shallowMount(NotificationsComponent, { store, localVue });
|
||||||
|
|
||||||
|
expect(wrapper.vm.userHasClass).to.be.false;
|
||||||
|
|
||||||
|
store.state.user.data.stats.lvl = 10;
|
||||||
|
store.state.user.data.flags.classSelected = true;
|
||||||
|
store.state.user.data.preferences.disableClasses = false;
|
||||||
|
|
||||||
|
expect(wrapper.vm.userHasClass).to.be.true;
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import {shallow} from '@vue/test-utils';
|
import { shallow } from '@vue/test-utils';
|
||||||
|
|
||||||
import SidebarSection from 'client/components/sidebarSection.vue';
|
import SidebarSection from 'client/components/sidebarSection.vue';
|
||||||
|
|
||||||
|
|||||||
@@ -198,6 +198,9 @@ export default {
|
|||||||
userClassSelect () {
|
userClassSelect () {
|
||||||
return !this.user.flags.classSelected && this.user.stats.lvl >= 10;
|
return !this.user.flags.classSelected && this.user.stats.lvl >= 10;
|
||||||
},
|
},
|
||||||
|
userHasClass () {
|
||||||
|
return this.$store.getters['members:hasClass'](this.user);
|
||||||
|
},
|
||||||
invitedToQuest () {
|
invitedToQuest () {
|
||||||
return this.user.party.quest.RSVPNeeded && !this.user.party.quest.completed;
|
return this.user.party.quest.RSVPNeeded && !this.user.party.quest.completed;
|
||||||
},
|
},
|
||||||
@@ -244,9 +247,9 @@ export default {
|
|||||||
},
|
},
|
||||||
userMp (after, before) {
|
userMp (after, before) {
|
||||||
if (after === before) return;
|
if (after === before) return;
|
||||||
if (!this.$store.getters['members:hasClass'](this.user)) return;
|
if (!this.userHasClass) return;
|
||||||
|
|
||||||
let mana = after - before;
|
const mana = after - before;
|
||||||
this.mp(mana);
|
this.mp(mana);
|
||||||
},
|
},
|
||||||
userLvl (after, before) {
|
userLvl (after, before) {
|
||||||
@@ -500,7 +503,7 @@ export default {
|
|||||||
case 'CRON':
|
case 'CRON':
|
||||||
if (notification.data) {
|
if (notification.data) {
|
||||||
if (notification.data.hp) this.hp(notification.data.hp, 'hp');
|
if (notification.data.hp) this.hp(notification.data.hp, 'hp');
|
||||||
if (notification.data.mp) this.mp(notification.data.mp);
|
if (notification.data.mp && this.userHasClass) this.mp(notification.data.mp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'SCORED_TASK':
|
case 'SCORED_TASK':
|
||||||
|
|||||||
Reference in New Issue
Block a user