// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React, {useState} from 'react'
import {IntlProvider} from 'react-intl'
import userEvent from '@testing-library/user-event'
import {act, render} from '@testing-library/react'
import DeleteBoardDialog from './deleteBoardDialog'
describe('components/sidebar/DeleteBoardDialog', () => {
it('Cancel should not submit', async () => {
const container = renderTest()
const cancelButton = container.querySelector('.dialog .footer button:not(.danger)')
expect(cancelButton).not.toBeFalsy()
expect(cancelButton?.textContent).toBe('Cancel')
await act(async () => userEvent.click(cancelButton as Element))
expect(container).toMatchSnapshot()
})
it('Delete should submit', async () => {
const container = renderTest()
const deleteButton = container.querySelector('.dialog .footer button.danger')
expect(deleteButton).not.toBeFalsy()
expect(deleteButton?.textContent).toBe('Delete')
await act(async () => userEvent.click(deleteButton as Element))
expect(container).toMatchSnapshot()
})
function renderTest() {
const rootPortalDiv = document.createElement('div')
rootPortalDiv.id = 'focalboard-root-portal'
const {container} = render(, {container: document.body.appendChild(rootPortalDiv)})
return container
}
function TestComponent() {
const [isDeleted, setDeleted] = useState(false)
const [isOpen, setOpen] = useState(true)
return (
{isDeleted ? 'deleted' : 'exists'}
{isOpen &&
setOpen(false)}
onDelete={async () => setDeleted(true)}
/>}
)
}
})