leave-section.test.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {
  2. fireEvent,
  3. screen,
  4. waitForElementToBeRemoved,
  5. render,
  6. } from '@testing-library/react'
  7. import LeaveSection from '../../../../../frontend/js/features/settings/components/leave-section'
  8. describe('<LeaveSection />', function () {
  9. beforeEach(function () {
  10. window.metaAttributesCache = new Map()
  11. window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com')
  12. window.metaAttributesCache.set('ol-ExposedSettings', { isOverleaf: true })
  13. window.metaAttributesCache.set('ol-hasPassword', true)
  14. })
  15. afterEach(function () {
  16. window.metaAttributesCache = new Map()
  17. })
  18. it('opens modal', async function () {
  19. render(<LeaveSection />)
  20. const button = screen.getByRole('button', {
  21. name: 'Delete your account',
  22. })
  23. fireEvent.click(button)
  24. await screen.findByText('Delete Account')
  25. })
  26. it('closes modal', async function () {
  27. render(<LeaveSection />)
  28. fireEvent.click(
  29. screen.getByRole('button', {
  30. name: 'Delete your account',
  31. })
  32. )
  33. const cancelButton = screen.getByRole('button', {
  34. name: 'Close',
  35. })
  36. fireEvent.click(cancelButton)
  37. await waitForElementToBeRemoved(() => screen.getByText('Delete Account'))
  38. })
  39. })