mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
130 lines
2.8 KiB
JavaScript
130 lines
2.8 KiB
JavaScript
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])
|
|
})
|
|
})
|
|
})
|
|
})
|
|
})
|