mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Merge branch 'master' into 1393-have-an-delete-button-for-the-search-input
This commit is contained in:
commit
09fc84c1ae
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -448,7 +448,7 @@ jobs:
|
|||||||
report_name: Coverage Admin Interface
|
report_name: Coverage Admin Interface
|
||||||
type: lcov
|
type: lcov
|
||||||
result_path: ./coverage/lcov.info
|
result_path: ./coverage/lcov.info
|
||||||
min_coverage: 91
|
min_coverage: 93
|
||||||
token: ${{ github.token }}
|
token: ${{ github.token }}
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|||||||
@ -11,22 +11,36 @@ describe('UserTable', () => {
|
|||||||
|
|
||||||
const defaultItemsUser = [
|
const defaultItemsUser = [
|
||||||
{
|
{
|
||||||
email: 'bibi@bloxberg.de',
|
userId: 1,
|
||||||
firstName: 'Bibi',
|
firstName: 'Bibi',
|
||||||
lastName: 'Bloxberg',
|
lastName: 'Bloxberg',
|
||||||
creation: [1000, 1000, 1000],
|
email: 'bibi@bloxberg.de',
|
||||||
|
creation: [200, 400, 600],
|
||||||
|
emailChecked: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
email: 'bibi@bloxberg.de',
|
userId: 2,
|
||||||
firstName: 'Bibi',
|
firstName: 'Benjamin',
|
||||||
lastName: 'Bloxberg',
|
lastName: 'Blümchen',
|
||||||
|
email: 'benjamin@bluemchen.de',
|
||||||
creation: [1000, 1000, 1000],
|
creation: [1000, 1000, 1000],
|
||||||
|
emailChecked: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
email: 'bibi@bloxberg.de',
|
userId: 3,
|
||||||
firstName: 'Bibi',
|
firstName: 'Peter',
|
||||||
lastName: 'Bloxberg',
|
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],
|
creation: [1000, 1000, 1000],
|
||||||
|
emailChecked: false,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -107,7 +121,7 @@ describe('UserTable', () => {
|
|||||||
|
|
||||||
const mocks = {
|
const mocks = {
|
||||||
$t: jest.fn((t) => t),
|
$t: jest.fn((t) => t),
|
||||||
$d: jest.fn((d) => d),
|
$d: jest.fn((d) => String(d)),
|
||||||
$apollo: {
|
$apollo: {
|
||||||
query: apolloQueryMock,
|
query: apolloQueryMock,
|
||||||
},
|
},
|
||||||
@ -122,7 +136,7 @@ describe('UserTable', () => {
|
|||||||
|
|
||||||
describe('mount', () => {
|
describe('mount', () => {
|
||||||
describe('type PageUserSearch', () => {
|
describe('type PageUserSearch', () => {
|
||||||
beforeEach(() => {
|
beforeEach(async () => {
|
||||||
wrapper = Wrapper(propsDataPageUserSearch)
|
wrapper = Wrapper(propsDataPageUserSearch)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -175,12 +189,12 @@ describe('UserTable', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
describe('content', () => {
|
describe('content', () => {
|
||||||
it('has 3 rows', () => {
|
it('has 4 rows', () => {
|
||||||
expect(wrapper.findAll('tbody tr').length).toBe(3)
|
expect(wrapper.findAll('tbody tr')).toHaveLength(4)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('has 7 columns', () => {
|
it('has 7 columns', () => {
|
||||||
expect(wrapper.findAll('tr:nth-child(1) > td').length).toBe(7)
|
expect(wrapper.findAll('tr:nth-child(1) > td')).toHaveLength(7)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('find button on fifth column', () => {
|
it('find button on fifth column', () => {
|
||||||
@ -189,6 +203,110 @@ describe('UserTable', () => {
|
|||||||
).toBeTruthy()
|
).toBeTruthy()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
describe('row toggling', () => {
|
||||||
|
describe('user with email not activated', () => {
|
||||||
|
it('has no details button', () => {
|
||||||
|
expect(
|
||||||
|
wrapper.findAll('tbody > tr').at(3).findAll('td').at(4).find('button').exists(),
|
||||||
|
).toBeFalsy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has a red confirmed button with envelope item', () => {
|
||||||
|
const row = wrapper.findAll('tbody > tr').at(3)
|
||||||
|
expect(row.findAll('td').at(5).find('button').exists()).toBeTruthy()
|
||||||
|
expect(row.findAll('td').at(5).find('button').classes('btn-danger')).toBeTruthy()
|
||||||
|
expect(row.findAll('td').at(5).find('svg').classes('bi-envelope')).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('click on envelope', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(3)
|
||||||
|
.findAll('td')
|
||||||
|
.at(5)
|
||||||
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('opens the details', async () => {
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
||||||
|
expect(wrapper.findAll('tbody > tr').at(5).find('input').element.value).toBe(
|
||||||
|
'new@user.ch',
|
||||||
|
)
|
||||||
|
expect(wrapper.findAll('tbody > tr').at(5).text()).toContain(
|
||||||
|
'unregister_mail.text_false',
|
||||||
|
)
|
||||||
|
// HACK: for some reason we need to close the row details after this test
|
||||||
|
await wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(3)
|
||||||
|
.findAll('td')
|
||||||
|
.at(5)
|
||||||
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('click on envelope again', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(3)
|
||||||
|
.findAll('td')
|
||||||
|
.at(5)
|
||||||
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('closes the details', () => {
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('click on close details', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await wrapper.findAll('tbody > tr').at(5).findAll('button').at(1).trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('closes the details', () => {
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('different details', () => {
|
||||||
|
it.skip('shows the creation formular for second user', async () => {
|
||||||
|
await wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(1)
|
||||||
|
.findAll('td')
|
||||||
|
.at(4)
|
||||||
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
||||||
|
expect(
|
||||||
|
wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(3)
|
||||||
|
.find('div.component-creation-formular')
|
||||||
|
.exists(),
|
||||||
|
).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it.skip('shows the transactions for third user', async () => {
|
||||||
|
await wrapper
|
||||||
|
.findAll('tbody > tr')
|
||||||
|
.at(4)
|
||||||
|
.findAll('td')
|
||||||
|
.at(6)
|
||||||
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -133,7 +133,7 @@
|
|||||||
variant="danger"
|
variant="danger"
|
||||||
v-show="type === 'UserListMassCreation' || type === 'PageCreationConfirm'"
|
v-show="type === 'UserListMassCreation' || type === 'PageCreationConfirm'"
|
||||||
size="md"
|
size="md"
|
||||||
@click="overlayShow('remove', row.item)"
|
@click="bookmarkRemove(row.item)"
|
||||||
class="mr-2"
|
class="mr-2"
|
||||||
>
|
>
|
||||||
<b-icon icon="x" variant="light"></b-icon>
|
<b-icon icon="x" variant="light"></b-icon>
|
||||||
@ -242,13 +242,6 @@ export default {
|
|||||||
this.overlayBookmarkType = bookmarkType
|
this.overlayBookmarkType = bookmarkType
|
||||||
this.overlayItem = item
|
this.overlayItem = item
|
||||||
|
|
||||||
if (bookmarkType === 'remove') {
|
|
||||||
this.overlayText.header = this.$t('overlay.remove.title')
|
|
||||||
this.overlayText.text1 = this.$t('overlay.remove.text')
|
|
||||||
this.overlayText.text2 = this.$t('overlay.remove.question')
|
|
||||||
this.overlayText.button_ok = this.$t('overlay.remove.yes')
|
|
||||||
this.overlayText.button_cancel = this.$t('overlay.remove.no')
|
|
||||||
}
|
|
||||||
if (bookmarkType === 'confirm') {
|
if (bookmarkType === 'confirm') {
|
||||||
this.overlayText.header = this.$t('overlay.confirm.title')
|
this.overlayText.header = this.$t('overlay.confirm.title')
|
||||||
this.overlayText.text1 = this.$t('overlay.confirm.text')
|
this.overlayText.text1 = this.$t('overlay.confirm.text')
|
||||||
@ -258,9 +251,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
overlayOK(bookmarkType, item) {
|
overlayOK(bookmarkType, item) {
|
||||||
if (bookmarkType === 'remove') {
|
|
||||||
this.bookmarkRemove(item)
|
|
||||||
}
|
|
||||||
if (bookmarkType === 'confirm') {
|
if (bookmarkType === 'confirm') {
|
||||||
this.$emit('confirm-creation', item)
|
this.$emit('confirm-creation', item)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -54,6 +54,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"remove": "Entfernen",
|
"remove": "Entfernen",
|
||||||
|
"remove_all": "alle Nutzer entfernen",
|
||||||
"transaction": "Transaktion",
|
"transaction": "Transaktion",
|
||||||
"transactionlist": {
|
"transactionlist": {
|
||||||
"amount": "Betrag",
|
"amount": "Betrag",
|
||||||
|
|||||||
@ -54,6 +54,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"remove": "Remove",
|
"remove": "Remove",
|
||||||
|
"remove_all": "Remove all users",
|
||||||
"transaction": "Transaction",
|
"transaction": "Transaction",
|
||||||
"transactionlist": {
|
"transactionlist": {
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
|
|||||||
@ -154,55 +154,16 @@ describe('Creation', () => {
|
|||||||
},
|
},
|
||||||
])
|
])
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
describe('remove item', () => {
|
describe('remove item', () => {
|
||||||
beforeEach(async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('table')
|
|
||||||
.at(0)
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(1)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
await wrapper
|
|
||||||
.findAll('table')
|
|
||||||
.at(1)
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(0)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('opens a dialog', () => {
|
|
||||||
expect(wrapper.findAll('#overlay').at(1).isVisible()).toBeTruthy()
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('cancel remove item', () => {
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await wrapper.findAll('#overlay').at(1).findAll('button').at(0).trigger('click')
|
await wrapper
|
||||||
})
|
.findAll('table')
|
||||||
|
.at(1)
|
||||||
it('closes the dialog', () => {
|
.findAll('tbody > tr')
|
||||||
expect(wrapper.findAll('#overlay').at(1).isVisible()).toBeFalsy()
|
.at(0)
|
||||||
})
|
.find('button')
|
||||||
|
.trigger('click')
|
||||||
it('has one item in left table', () => {
|
|
||||||
expect(wrapper.findAll('table').at(0).findAll('tbody > tr')).toHaveLength(1)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('has one item in right table', () => {
|
|
||||||
expect(wrapper.findAll('table').at(1).findAll('tbody > tr')).toHaveLength(1)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('confirm remove item', () => {
|
|
||||||
beforeEach(async () => {
|
|
||||||
await wrapper.findAll('#overlay').at(1).findAll('button').at(1).trigger('click')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('closes the dialog', () => {
|
|
||||||
expect(wrapper.findAll('#overlay').at(1).isVisible()).toBeFalsy()
|
|
||||||
})
|
})
|
||||||
|
|
||||||
it('has two items in left table', () => {
|
it('has two items in left table', () => {
|
||||||
@ -223,32 +184,24 @@ describe('Creation', () => {
|
|||||||
expect(storeCommitMock).toBeCalledWith('setUserSelectedInMassCreation', [])
|
expect(storeCommitMock).toBeCalledWith('setUserSelectedInMassCreation', [])
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
// this can only happen after API call in CreationForm
|
describe('remove all bookmarks', () => {
|
||||||
describe('remove all bookmarks', () => {
|
beforeEach(async () => {
|
||||||
beforeEach(async () => {
|
jest.clearAllMocks()
|
||||||
await wrapper
|
await wrapper.find('button.btn-light').trigger('click')
|
||||||
.findAll('table')
|
})
|
||||||
.at(0)
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(1)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
jest.clearAllMocks()
|
|
||||||
wrapper.findComponent({ name: 'CreationFormular' }).vm.$emit('remove-all-bookmark')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('has no items in right table', () => {
|
it('has no items in right table', () => {
|
||||||
expect(wrapper.findAll('table').at(1).findAll('tbody > tr')).toHaveLength(0)
|
expect(wrapper.findAll('table').at(1).findAll('tbody > tr')).toHaveLength(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('commits empty array to userSelectedInMassCreation', () => {
|
it('commits empty array to userSelectedInMassCreation', () => {
|
||||||
expect(storeCommitMock).toBeCalledWith('setUserSelectedInMassCreation', [])
|
expect(storeCommitMock).toBeCalledWith('setUserSelectedInMassCreation', [])
|
||||||
})
|
})
|
||||||
|
|
||||||
it('calls searchUsers', () => {
|
it('calls searchUsers', () => {
|
||||||
expect(apolloQueryMock).toBeCalled()
|
expect(apolloQueryMock).toBeCalled()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -33,14 +33,22 @@
|
|||||||
></b-pagination>
|
></b-pagination>
|
||||||
</b-col>
|
</b-col>
|
||||||
<b-col cols="12" lg="6" class="shadow p-3 mb-5 rounded bg-info">
|
<b-col cols="12" lg="6" class="shadow p-3 mb-5 rounded bg-info">
|
||||||
<user-table
|
<div v-show="itemsMassCreation.length > 0">
|
||||||
v-show="itemsMassCreation.length > 0"
|
<div class="text-right pr-4 mb-1">
|
||||||
class="shadow p-3 mb-5 bg-white rounded"
|
<b-button @click="removeAllBookmarks()" variant="light">
|
||||||
type="UserListMassCreation"
|
<b-icon icon="x" scale="2" variant="danger"></b-icon>
|
||||||
:itemsUser="itemsMassCreation"
|
|
||||||
:fieldsTable="fields"
|
{{ $t('remove_all') }}
|
||||||
@remove-item="removeItem"
|
</b-button>
|
||||||
/>
|
</div>
|
||||||
|
<user-table
|
||||||
|
class="shadow p-3 mb-5 bg-white rounded"
|
||||||
|
type="UserListMassCreation"
|
||||||
|
:itemsUser="itemsMassCreation"
|
||||||
|
:fieldsTable="fields"
|
||||||
|
@remove-item="removeItem"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div v-if="itemsMassCreation.length === 0">
|
<div v-if="itemsMassCreation.length === 0">
|
||||||
{{ $t('multiple_creation_text') }}
|
{{ $t('multiple_creation_text') }}
|
||||||
</div>
|
</div>
|
||||||
@ -49,7 +57,7 @@
|
|||||||
type="massCreation"
|
type="massCreation"
|
||||||
:creation="creation"
|
:creation="creation"
|
||||||
:items="itemsMassCreation"
|
:items="itemsMassCreation"
|
||||||
@remove-all-bookmark="removeAllBookmark"
|
@remove-all-bookmark="removeAllBookmarks"
|
||||||
/>
|
/>
|
||||||
</b-col>
|
</b-col>
|
||||||
</b-row>
|
</b-row>
|
||||||
@ -131,7 +139,7 @@ export default {
|
|||||||
)
|
)
|
||||||
this.$store.commit('setUserSelectedInMassCreation', this.itemsMassCreation)
|
this.$store.commit('setUserSelectedInMassCreation', this.itemsMassCreation)
|
||||||
},
|
},
|
||||||
removeAllBookmark() {
|
removeAllBookmarks() {
|
||||||
this.itemsMassCreation = []
|
this.itemsMassCreation = []
|
||||||
this.$store.commit('setUserSelectedInMassCreation', [])
|
this.$store.commit('setUserSelectedInMassCreation', [])
|
||||||
this.getUsers()
|
this.getUsers()
|
||||||
|
|||||||
@ -78,6 +78,7 @@ describe('CreationConfirm', () => {
|
|||||||
it('commits resetOpenCreations to store', () => {
|
it('commits resetOpenCreations to store', () => {
|
||||||
expect(storeCommitMock).toBeCalledWith('resetOpenCreations')
|
expect(storeCommitMock).toBeCalledWith('resetOpenCreations')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('commits setOpenCreations to store', () => {
|
it('commits setOpenCreations to store', () => {
|
||||||
expect(storeCommitMock).toBeCalledWith('setOpenCreations', 2)
|
expect(storeCommitMock).toBeCalledWith('setOpenCreations', 2)
|
||||||
})
|
})
|
||||||
@ -85,7 +86,7 @@ describe('CreationConfirm', () => {
|
|||||||
|
|
||||||
describe('remove creation with success', () => {
|
describe('remove creation with success', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('remove-creation', { id: 1 })
|
await wrapper.findAll('tr').at(1).findAll('button').at(0).trigger('click')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('calls the deletePendingCreation mutation', () => {
|
it('calls the deletePendingCreation mutation', () => {
|
||||||
@ -107,7 +108,7 @@ describe('CreationConfirm', () => {
|
|||||||
describe('remove creation with error', () => {
|
describe('remove creation with error', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
apolloMutateMock.mockRejectedValue({ message: 'Ouchhh!' })
|
apolloMutateMock.mockRejectedValue({ message: 'Ouchhh!' })
|
||||||
await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('remove-creation', { id: 1 })
|
await wrapper.findAll('tr').at(1).findAll('button').at(0).trigger('click')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('toasts an error message', () => {
|
it('toasts an error message', () => {
|
||||||
@ -118,22 +119,52 @@ describe('CreationConfirm', () => {
|
|||||||
describe('confirm creation with success', () => {
|
describe('confirm creation with success', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
apolloMutateMock.mockResolvedValue({})
|
apolloMutateMock.mockResolvedValue({})
|
||||||
await wrapper.findComponent({ name: 'UserTable' }).vm.$emit('confirm-creation', { id: 2 })
|
await wrapper.findAll('tr').at(2).findAll('button').at(2).trigger('click')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('calls the confirmPendingCreation mutation', () => {
|
describe('overlay', () => {
|
||||||
expect(apolloMutateMock).toBeCalledWith({
|
it('opens the overlay', () => {
|
||||||
mutation: confirmPendingCreation,
|
expect(wrapper.find('#overlay').isVisible()).toBeTruthy()
|
||||||
variables: { id: 2 },
|
|
||||||
})
|
})
|
||||||
})
|
|
||||||
|
|
||||||
it('commits openCreationsMinus to store', () => {
|
describe('cancel confirmation', () => {
|
||||||
expect(storeCommitMock).toBeCalledWith('openCreationsMinus', 1)
|
beforeEach(async () => {
|
||||||
})
|
await wrapper.find('#overlay').findAll('button').at(0).trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
it('toasts a success message', () => {
|
it('closes the overlay', () => {
|
||||||
expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_created')
|
expect(wrapper.find('#overlay').isVisible()).toBeFalsy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('still has 2 items in the table', () => {
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(2)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('confirm creation', () => {
|
||||||
|
beforeEach(async () => {
|
||||||
|
await wrapper.find('#overlay').findAll('button').at(1).trigger('click')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('calls the confirmPendingCreation mutation', () => {
|
||||||
|
expect(apolloMutateMock).toBeCalledWith({
|
||||||
|
mutation: confirmPendingCreation,
|
||||||
|
variables: { id: 2 },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
it('commits openCreationsMinus to store', () => {
|
||||||
|
expect(storeCommitMock).toBeCalledWith('openCreationsMinus', 1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('toasts a success message', () => {
|
||||||
|
expect(toastedSuccessMock).toBeCalledWith('creation_form.toasted_created')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('has 1 item left in the table', () => {
|
||||||
|
expect(wrapper.findAll('tbody > tr')).toHaveLength(1)
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -88,100 +88,6 @@ describe('UserSearch', () => {
|
|||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('row toggling', () => {
|
|
||||||
it('has 4 users in the table', () => {
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('user with email not activated', () => {
|
|
||||||
it('has no details button', () => {
|
|
||||||
expect(
|
|
||||||
wrapper.findAll('tbody > tr').at(3).findAll('td').at(4).find('button').exists(),
|
|
||||||
).toBeFalsy()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('has a red confirmed button with envelope item', () => {
|
|
||||||
const row = wrapper.findAll('tbody > tr').at(3)
|
|
||||||
expect(row.findAll('td').at(5).find('button').exists()).toBeTruthy()
|
|
||||||
expect(row.findAll('td').at(5).find('button').classes('btn-danger')).toBeTruthy()
|
|
||||||
expect(row.findAll('td').at(5).find('svg').classes('bi-envelope')).toBeTruthy()
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('click on envelope', () => {
|
|
||||||
it('opens the details', async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(3)
|
|
||||||
.findAll('td')
|
|
||||||
.at(5)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
|
||||||
expect(wrapper.findAll('tbody > tr').at(5).find('input').element.value).toBe(
|
|
||||||
'new@user.ch',
|
|
||||||
)
|
|
||||||
expect(wrapper.findAll('tbody > tr').at(5).text()).toContain(
|
|
||||||
'unregister_mail.text_false',
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('click on envelope again', () => {
|
|
||||||
it('closes the details', async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(3)
|
|
||||||
.findAll('td')
|
|
||||||
.at(5)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('click on close details', () => {
|
|
||||||
it('closes the details', async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(3)
|
|
||||||
.findAll('td')
|
|
||||||
.at(5)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
await wrapper.findAll('tbody > tr').at(5).findAll('button').at(1).trigger('click')
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(4)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('different details', () => {
|
|
||||||
it.skip('shows the creation formular for second user', async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(1)
|
|
||||||
.findAll('td')
|
|
||||||
.at(4)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
|
||||||
expect(
|
|
||||||
wrapper.findAll('tbody > tr').at(3).find('div.component-creation-formular').exists(),
|
|
||||||
).toBeTruthy()
|
|
||||||
})
|
|
||||||
|
|
||||||
it.skip('shows the transactions for third user', async () => {
|
|
||||||
await wrapper
|
|
||||||
.findAll('tbody > tr')
|
|
||||||
.at(4)
|
|
||||||
.findAll('td')
|
|
||||||
.at(6)
|
|
||||||
.find('button')
|
|
||||||
.trigger('click')
|
|
||||||
expect(wrapper.findAll('tbody > tr')).toHaveLength(6)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
describe('unconfirmed emails', () => {
|
describe('unconfirmed emails', () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await wrapper.find('button.btn-block').trigger('click')
|
await wrapper.find('button.btn-block').trigger('click')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user