file-tree-item-menu.test.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import React from 'react'
  2. import sinon from 'sinon'
  3. import { screen, fireEvent } from '@testing-library/react'
  4. import renderWithContext from '../../helpers/render-with-context'
  5. import FileTreeitemMenu from '../../../../../../frontend/js/features/file-tree/components/file-tree-item/file-tree-item-menu'
  6. describe('<FileTreeitemMenu />', function() {
  7. const setContextMenuCoords = sinon.stub()
  8. afterEach(function() {
  9. setContextMenuCoords.reset()
  10. })
  11. it('renders dropdown', function() {
  12. renderWithContext(
  13. <FileTreeitemMenu
  14. id="123abc"
  15. setContextMenuCoords={setContextMenuCoords}
  16. />
  17. )
  18. screen.getByRole('button', { name: 'Menu' })
  19. screen.getByRole('menu')
  20. })
  21. it('open / close', function() {
  22. renderWithContext(
  23. <FileTreeitemMenu
  24. id="123abc"
  25. setContextMenuCoords={setContextMenuCoords}
  26. />
  27. )
  28. const toggleButton = screen.getByRole('button', { name: 'Menu' })
  29. screen.getByRole('menu', { visible: false })
  30. fireEvent.click(toggleButton)
  31. screen.getByRole('menu', { visible: true })
  32. fireEvent.click(toggleButton)
  33. screen.getByRole('menu', { visible: false })
  34. })
  35. })