diff --git a/webapp/components/comments/CommentList/CommentList.spec.js b/webapp/components/comments/CommentList/CommentList.spec.js
new file mode 100644
index 000000000..fa6394e53
--- /dev/null
+++ b/webapp/components/comments/CommentList/CommentList.spec.js
@@ -0,0 +1,64 @@
+import { config, mount, createLocalVue } from '@vue/test-utils'
+import CommentList from '.'
+import Empty from '~/components/Empty'
+import Vue from 'vue'
+import Vuex from 'vuex'
+import Filters from '~/plugins/vue-filters'
+import Styleguide from '@human-connection/styleguide'
+
+const localVue = createLocalVue()
+
+localVue.use(Styleguide)
+localVue.use(Vuex)
+localVue.filter('truncate', string => string)
+
+config.stubs['v-popover'] = ''
+config.stubs['nuxt-link'] = ''
+config.stubs['no-ssr'] = ''
+
+describe('CommentList.vue', () => {
+ let mocks
+ let store
+ let wrapper
+ let propsData
+
+ propsData = {
+ post: { id: 1 }
+ }
+ store = new Vuex.Store({
+ getters: {
+ 'auth/user': () => {
+ return {}
+ }
+ }
+ })
+ mocks = {
+ $t: jest.fn()
+ }
+
+ describe('shallowMount', () => {
+ const Wrapper = () => {
+ return mount(CommentList, { store, mocks, localVue, propsData })
+ }
+
+ beforeEach(() => {
+ wrapper = Wrapper()
+ wrapper.setData({
+ comments: [{ id: 'c1', contentExcerpt: 'this is a comment' }]
+ })
+ })
+
+ it('displays a comments counter', () => {
+ expect(wrapper.find('span.ds-tag').text()).toEqual('1')
+ })
+
+ it('displays comments when there are comments to display', () => {
+ expect(wrapper.find('div#comments').text()).toEqual('this is a comment')
+ })
+
+ it('displays a message icon when there are no comments to display', () => {
+ wrapper.setData({ comments: [] })
+ expect(wrapper.findAll(Empty)).toHaveLength(1)
+ })
+ })
+})