diff --git a/components/Comment.vue b/components/Comment.vue index 4c3949565..3d9d6eaac 100644 --- a/components/Comment.vue +++ b/components/Comment.vue @@ -4,7 +4,7 @@ - + import { mapGetters } from 'vuex' -import HcAuthor from '~/components/Author.vue' +import HcUser from '~/components/User.vue' import ContentMenu from '~/components/ContentMenu' export default { components: { - HcAuthor, + HcUser, ContentMenu }, props: { diff --git a/components/PostCard.vue b/components/PostCard.vue index 88b663392..a1f4b59c8 100644 --- a/components/PostCard.vue +++ b/components/PostCard.vue @@ -26,10 +26,10 @@ > - @@ -64,14 +64,14 @@ diff --git a/components/User.spec.js b/components/User.spec.js new file mode 100644 index 000000000..c41fa6de7 --- /dev/null +++ b/components/User.spec.js @@ -0,0 +1,78 @@ +import { config, mount, createLocalVue } from '@vue/test-utils' +import User from './User.vue' +import Vue from 'vue' +import Vuex from 'vuex' +import VTooltip from 'v-tooltip' + +import Styleguide from '@human-connection/styleguide' + +const localVue = createLocalVue() +const filter = jest.fn(str => str) + +localVue.use(Vuex) +localVue.use(VTooltip) +localVue.use(Styleguide) + +localVue.filter('truncate', filter) + +describe('User.vue', () => { + let wrapper + let Wrapper + let propsData + let mocks + let stubs + let getters + let user + + beforeEach(() => { + propsData = {} + + mocks = { + $t: jest.fn() + } + stubs = ['router-link', 'router-view'] + getters = { + 'auth/user': () => { + return {} + }, + 'auth/isModerator': () => false + } + }) + + describe('mount', () => { + const Wrapper = () => { + const store = new Vuex.Store({ + getters + }) + return mount(User, { store, propsData, mocks, stubs, localVue }) + } + + it('renders anonymous user', () => { + const wrapper = Wrapper() + expect(wrapper.text()).not.toMatch('Tilda Swinton') + expect(wrapper.text()).toMatch('Anonymus') + }) + + describe('given an user', () => { + beforeEach(() => { + propsData.user = { + name: 'Tilda Swinton', + slug: 'tilda-swinton' + } + }) + + it('renders user name', () => { + const wrapper = Wrapper() + expect(wrapper.text()).not.toMatch('Anonymous') + expect(wrapper.text()).toMatch('Tilda Swinton') + }) + + describe('user is disabled', () => { + beforeEach(() => { + propsData.user.disabled = true + }) + + }) + }) + }) +}) diff --git a/components/Author.vue b/components/User.vue similarity index 54% rename from components/Author.vue rename to components/User.vue index 54770d33d..e274c0de1 100644 --- a/components/Author.vue +++ b/components/User.vue @@ -1,6 +1,6 @@