Files
habitica/website/client/tests/unit/components/tasks/user.spec.js
Bart Enkelaar 32ac00b417 Fix vue test stacktraces (#12612)
* Issue 10786 - Add unit test for Home component

* Issue 10786 - Improve test setup and test invite parameter variations

* Issue 10786 - Improve Vue.js test isolation by adding async keyword to dispatch function

* Issue 10786 - Missing action does not need to be awaited

* fix(vuejs-unit-tests): Fewer stacktraces in avatar.spec.js

* No more stacktraces in avatar.spec.js

* Register dummy directive in chatCard.spec.js

* Resolve stacktraces in column.spec.js

* Resolve stacktrace in notifications.spec.js

* Resolve warnings in user.spec.js

* Resolve asynchronous stacktrace from home.spec.js

* Remove unnecessary mount call.

* Clear up some let clutter in column.spec.js
2020-10-01 19:08:34 +02:00

53 lines
1.8 KiB
JavaScript

import { shallowMount, createLocalVue } from '@vue/test-utils';
import User from '@/components/tasks/user.vue';
import Store from '@/libs/store';
const localVue = createLocalVue();
localVue.use(Store);
describe('Tasks User', () => {
function createWrapper (challengeTag) {
const store = new Store({
state: { user: { data: { tags: [challengeTag] } } },
getters: {},
});
return shallowMount(User, {
store,
localVue,
mocks: { $t: s => s },
stubs: ['b-tooltip'],
});
}
describe('Computed Properties', () => {
it('should render a challenge tag under challenge header in tag filter popup when the challenge is active', () => {
const activeChallengeTag = {
id: '1',
name: 'Challenge1',
challenge: true,
};
const wrapper = createWrapper(activeChallengeTag);
const computedTagsByType = wrapper.vm.tagsByType;
expect(computedTagsByType.challenges.tags.length).to.equal(1);
expect(computedTagsByType.challenges.tags[0].id).to.equal(activeChallengeTag.id);
expect(computedTagsByType.challenges.tags[0].name).to.equal(activeChallengeTag.name);
});
it('should render a challenge tag under normal tag header in tag filter popup when the challenge is no longer active', () => {
const inactiveChallengeTag = {
id: '1',
name: 'Challenge1',
challenge: false,
};
const wrapper = createWrapper(inactiveChallengeTag);
const computedTagsByType = wrapper.vm.tagsByType;
expect(computedTagsByType.challenges.tags.length).to.equal(0);
expect(computedTagsByType.user.tags.length).to.equal(1);
expect(computedTagsByType.user.tags[0].id).to.equal(inactiveChallengeTag.id);
expect(computedTagsByType.user.tags[0].name).to.equal(inactiveChallengeTag.name);
});
});
});