diff --git a/admin/src/components/Tables/SearchUserTable.spec.js b/admin/src/components/Tables/SearchUserTable.spec.js
new file mode 100644
index 000000000..9e1ce5e52
--- /dev/null
+++ b/admin/src/components/Tables/SearchUserTable.spec.js
@@ -0,0 +1,129 @@
+import { mount } from '@vue/test-utils'
+import SearchUserTable from './SearchUserTable.vue'
+
+const date = new Date()
+
+const localVue = global.localVue
+
+const apolloMutateMock = jest.fn().mockResolvedValue({})
+const apolloQueryMock = jest.fn().mockResolvedValue({})
+
+const propsData = {
+ items: [
+ {
+ userId: 1,
+ firstName: 'Bibi',
+ lastName: 'Bloxberg',
+ email: 'bibi@bloxberg.de',
+ creation: [200, 400, 600],
+ emailChecked: true,
+ },
+ {
+ userId: 2,
+ firstName: 'Benjamin',
+ lastName: 'Blümchen',
+ email: 'benjamin@bluemchen.de',
+ creation: [1000, 1000, 1000],
+ emailChecked: true,
+ },
+ {
+ userId: 3,
+ firstName: 'Peter',
+ lastName: 'Lustig',
+ email: 'peter@lustig.de',
+ creation: [0, 0, 0],
+ emailChecked: true,
+ },
+ {
+ userId: 4,
+ firstName: 'New',
+ lastName: 'User',
+ email: 'new@user.ch',
+ creation: [1000, 1000, 1000],
+ emailChecked: false,
+ },
+ ],
+ fields: [
+ { key: 'email', label: 'e_mail' },
+ { key: 'firstName', label: 'firstname' },
+ { key: 'lastName', label: 'lastname' },
+ {
+ key: 'creation',
+ label: 'creationLabel',
+ formatter: (value, key, item) => {
+ return value.join(' | ')
+ },
+ },
+ { key: 'status', label: 'status' },
+ ],
+}
+
+const mocks = {
+ $t: jest.fn((t) => t),
+ $d: jest.fn((d) => d),
+ $apollo: {
+ mutate: apolloMutateMock,
+ query: apolloQueryMock,
+ },
+ $store: {
+ state: {
+ moderator: {
+ id: 0,
+ name: 'test moderator',
+ },
+ },
+ },
+ $toasted: {
+ error: jest.fn(),
+ success: jest.fn(),
+ },
+}
+
+describe('SearchUserTable', () => {
+ let wrapper
+
+ const Wrapper = () => {
+ return mount(SearchUserTable, { localVue, mocks, propsData })
+ }
+
+ describe('mount', () => {
+ beforeEach(() => {
+ wrapper = Wrapper()
+ })
+
+ it('has a table with four rows', () => {
+ expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
+ })
+
+ describe('show row details', () => {
+ beforeEach(async () => {
+ await wrapper.findAll('tbody > tr').at(1).trigger('click')
+ })
+
+ describe('deleted at', () => {
+ beforeEach(async () => {
+ await wrapper.find('div.deleted-user-formular').vm.$emit('updateDeletedAt', {
+ userId: 1,
+ deletedAt: date,
+ })
+ })
+
+ it('emits updateDeletedAt', () => {
+ expect(wrapper.emitted('updateDeletedAt')).toEqual([[1, date]])
+ })
+ })
+
+ describe('updateUserData', () => {
+ beforeEach(async () => {
+ await wrapper
+ .find('div.component-creation-formular')
+ .vm.$emit('update-user-data', propsData.items[1], [250, 500, 750])
+ })
+
+ it('updates the item', () => {
+ expect(wrapper.vm.items[1].creation).toEqual([250, 500, 750])
+ })
+ })
+ })
+ })
+})
diff --git a/admin/src/components/Tables/SearchUserTable.vue b/admin/src/components/Tables/SearchUserTable.vue
index df7cacf9a..c71f79aa3 100644
--- a/admin/src/components/Tables/SearchUserTable.vue
+++ b/admin/src/components/Tables/SearchUserTable.vue
@@ -1,100 +1,97 @@
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ {{ $t('userIsDeleted') }}
+
+
+
+
-
+