leave-section.test.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. import getMeta from '@/utils/meta'
  9. describe('<LeaveSection />', function () {
  10. beforeEach(function () {
  11. window.metaAttributesCache.set('ol-usersEmail', 'foo@bar.com')
  12. Object.assign(getMeta('ol-ExposedSettings'), { isOverleaf: true })
  13. window.metaAttributesCache.set('ol-hasPassword', true)
  14. })
  15. it('opens modal', async function () {
  16. render(<LeaveSection />)
  17. const button = screen.getByRole('button', {
  18. name: 'Delete your account',
  19. })
  20. fireEvent.click(button)
  21. await screen.findByText('Delete account')
  22. })
  23. it('closes modal', async function () {
  24. render(<LeaveSection />)
  25. fireEvent.click(
  26. screen.getByRole('button', {
  27. name: 'Delete your account',
  28. })
  29. )
  30. const cancelButton = screen.getByRole('button', {
  31. name: 'Cancel',
  32. })
  33. fireEvent.click(cancelButton)
  34. await waitForElementToBeRemoved(() => screen.getByText('Delete account'))
  35. })
  36. })