fixed test, validUntil and No validUntil

This commit is contained in:
ogerly 2022-04-21 21:16:29 +02:00
parent afec1f7e59
commit 8d447ffaff

View File

@ -44,115 +44,139 @@ describe('TransactionLink', () => {
expect(wrapper.find('div.transaction-link').exists()).toBeTruthy() expect(wrapper.find('div.transaction-link').exists()).toBeTruthy()
}) })
describe('Copy link to Clipboard', () => { describe('Link validUntil Date is not valid', () => {
const navigatorClipboard = navigator.clipboard it('find no link copy button', () => {
beforeAll(() => { expect(wrapper.find('.test-copy-link').exists()).toBe(false)
delete navigator.clipboard
navigator.clipboard = { writeText: navigatorClipboardMock }
})
afterAll(() => {
navigator.clipboard = navigatorClipboard
}) })
describe('copy with success', () => { it('find no Qr-Code Button ', () => {
beforeEach(async () => { expect(wrapper.find('.test-qr-code').exists()).toBe(false)
navigatorClipboardMock.mockResolvedValue() })
await wrapper.find('.test-copy-link').trigger('click')
}) it('find only Link Löschen Button ', () => {
it('should call clipboard.writeText', () => { expect(wrapper.find('.test-delete-link').exists()).toBe(true)
expect(navigator.clipboard.writeText).toHaveBeenCalledWith(
'http://localhost/redeem/c00000000c000000c0000',
)
})
it('toasts success message', () => {
expect(toastSuccessSpy).toBeCalledWith('gdd_per_link.link-copied')
})
}) })
}) })
describe('qr code modal', () => { describe('Link validUntil Date is valid ', () => {
let spy beforeEach(async () => {
beforeEach(() => {
jest.clearAllMocks() jest.clearAllMocks()
await wrapper.setProps({
validUntil: '2022-05-30T14:22:40.000Z',
})
}) })
describe('with success', () => { describe('Copy link to Clipboard', () => {
const navigatorClipboard = navigator.clipboard
beforeAll(() => {
delete navigator.clipboard
navigator.clipboard = { writeText: navigatorClipboardMock }
})
afterAll(() => {
navigator.clipboard = navigatorClipboard
})
describe('copy with success', () => {
beforeEach(async () => {
navigatorClipboardMock.mockResolvedValue()
await wrapper.find('.test-copy-link .dropdown-item').trigger('click')
})
it('should call clipboard.writeText', () => {
expect(navigator.clipboard.writeText).toHaveBeenCalledWith(
'http://localhost/redeem/c00000000c000000c0000',
)
})
it('toasts success message', () => {
expect(toastSuccessSpy).toBeCalledWith('gdd_per_link.link-copied')
})
})
})
describe('qr code modal', () => {
let spy
beforeEach(async () => { beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'show') jest.clearAllMocks()
// spy.mockImplementation(() => Promise.resolve('some value'))
// mockAPIcall.mockResolvedValue()
await wrapper.find('.test-qr-code').trigger('click')
}) })
it('qr-code Modal if show', () => { describe('with success', () => {
expect(spy).toBeCalled() beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'show')
// spy.mockImplementation(() => Promise.resolve('some value'))
// mockAPIcall.mockResolvedValue()
await wrapper.find('.test-qr-code .dropdown-item').trigger('click')
})
it('qr-code Modal if show', () => {
expect(spy).toBeCalled()
})
}) })
}) })
})
describe('delete link', () => { describe('delete link', () => {
let spy let spy
beforeEach(() => {
jest.clearAllMocks()
})
describe('with success', () => {
beforeEach(async () => { beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm') jest.clearAllMocks()
spy.mockImplementation(() => Promise.resolve('some value'))
mockAPIcall.mockResolvedValue()
await wrapper.find('.test-delete-link').trigger('click')
}) })
it('test Modal if confirm true', () => { describe('with success', () => {
expect(spy).toBeCalled() beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm')
spy.mockImplementation(() => Promise.resolve('some value'))
mockAPIcall.mockResolvedValue()
await wrapper.find('.test-delete-link .dropdown-item').trigger('click')
})
it('test Modal if confirm true', () => {
expect(spy).toBeCalled()
})
it('calls the API', () => {
expect(mockAPIcall).toBeCalledWith(
expect.objectContaining({
mutation: deleteTransactionLink,
variables: {
id: 12,
},
}),
)
})
it('toasts a success message', () => {
expect(toastSuccessSpy).toBeCalledWith('gdd_per_link.deleted')
})
it('emits reset transaction link list', () => {
expect(wrapper.emitted('reset-transaction-link-list')).toBeTruthy()
})
}) })
it('calls the API', () => { describe('with error', () => {
expect(mockAPIcall).toBeCalledWith( beforeEach(async () => {
expect.objectContaining({ spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm')
mutation: deleteTransactionLink, spy.mockImplementation(() => Promise.resolve('some value'))
variables: { mockAPIcall.mockRejectedValue({ message: 'Something went wrong :(' })
id: 12, await wrapper.find('.test-delete-link .dropdown-item').trigger('click')
}, })
}),
) it('toasts an error message', () => {
expect(toastErrorSpy).toBeCalledWith('Something went wrong :(')
})
}) })
it('toasts a success message', () => { describe('cancel delete', () => {
expect(toastSuccessSpy).toBeCalledWith('gdd_per_link.deleted') beforeEach(async () => {
}) spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm')
spy.mockImplementation(() => Promise.resolve(false))
mockAPIcall.mockResolvedValue()
await wrapper.find('.test-delete-link .dropdown-item').trigger('click')
})
it('emits reset transaction link list', () => { it('does not call the API', () => {
expect(wrapper.emitted('reset-transaction-link-list')).toBeTruthy() expect(mockAPIcall).not.toBeCalled()
}) })
})
describe('with error', () => {
beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm')
spy.mockImplementation(() => Promise.resolve('some value'))
mockAPIcall.mockRejectedValue({ message: 'Something went wrong :(' })
await wrapper.find('.test-delete-link').trigger('click')
})
it('toasts an error message', () => {
expect(toastErrorSpy).toBeCalledWith('Something went wrong :(')
})
})
describe('cancel delete', () => {
beforeEach(async () => {
spy = jest.spyOn(wrapper.vm.$bvModal, 'msgBoxConfirm')
spy.mockImplementation(() => Promise.resolve(false))
mockAPIcall.mockResolvedValue()
await wrapper.find('.test-delete-link').trigger('click')
})
it('does not call the API', () => {
expect(mockAPIcall).not.toBeCalled()
}) })
}) })
}) })