diff --git a/webapp/locales/de.json b/webapp/locales/de.json index a9cf7ce2c..e17b57502 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -313,12 +313,14 @@ }, "columns": { "name": "Name", - "slug": "Alias" + "slug": "Alias", + "unblock": "Entblocken" }, "empty": "Bislang hast du niemanden blockiert.", "how-to": "Du kannst andere Benutzer auf deren Profilseite über das Inhaltsmenü blockieren.", "block": "Nutzer blockieren", - "unblock": "Nutzer entblocken" + "unblock": "Nutzer entblocken", + "unblocked": "{name} ist wieder entblockt" } }, "admin": { diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 15ef63a95..f0bc1115d 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -314,12 +314,14 @@ }, "columns": { "name": "Name", - "slug": "Slug" + "slug": "Slug", + "unblock": "Unblock" }, "empty": "So far, you have not blocked anybody.", "how-to": "You can block other users on their profile page via the content menu.", "block": "Block user", - "unblock": "Unblock user" + "unblock": "Unblock user", + "unblocked": "{name} is unblocked again" } }, "admin": { diff --git a/webapp/pages/settings/blocked-users.spec.js b/webapp/pages/settings/blocked-users.spec.js new file mode 100644 index 000000000..c78de5dc7 --- /dev/null +++ b/webapp/pages/settings/blocked-users.spec.js @@ -0,0 +1,69 @@ +import { config, mount, createLocalVue } from '@vue/test-utils' +import BlockedUsers from './blocked-users.vue' +import Styleguide from '@human-connection/styleguide' +import Filters from '~/plugins/vue-filters' +import { Unblock } from '~/graphql/settings/BlockedUsers' + +const localVue = createLocalVue() + +localVue.use(Styleguide) +localVue.use(Filters) + +config.stubs['nuxt-link'] = '' + +describe('blocked-users.vue', () => { + let wrapper + let mocks + + beforeEach(() => { + mocks = { + $t: jest.fn(), + $apollo: { + mutate: jest.fn(), + queries: { + blockedUsers: { + refetch: jest.fn(), + }, + }, + }, + $toast: { + error: jest.fn(), + success: jest.fn(), + }, + } + }) + + describe('mount', () => { + const Wrapper = () => { + return mount(BlockedUsers, { mocks, localVue }) + } + + beforeEach(() => { + wrapper = Wrapper() + }) + + it('renders', () => { + expect(wrapper.is('div')).toBe(true) + }) + + describe('given a list of blocked users', () => { + beforeEach(() => { + const blockedUsers = [{ id: 'u1', name: 'John Doe', slug: 'john-doe', avatar: '' }] + wrapper.setData({ blockedUsers }) + }) + + describe('click unblock', () => { + beforeEach(() => { + wrapper.find('button').trigger('click') + }) + + it('calls unblock mutation with given user', () => { + expect(mocks.$apollo.mutate).toHaveBeenCalledWith({ + mutation: Unblock(), + variables: { id: 'u1' }, + }) + }) + }) + }) + }) +}) diff --git a/webapp/pages/settings/blocked-users.vue b/webapp/pages/settings/blocked-users.vue index 19e24c994..acbd253aa 100644 --- a/webapp/pages/settings/blocked-users.vue +++ b/webapp/pages/settings/blocked-users.vue @@ -56,6 +56,10 @@ {{ scope.row.slug | truncate(20) }} + + @@ -74,7 +78,7 @@