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

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import sinon from 'sinon'
  2. import { expect } from 'chai'
  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. const toggleButton = screen.getByRole('button', { name: 'Menu' })
  19. fireEvent.click(toggleButton)
  20. screen.getByRole('menu')
  21. })
  22. it('open / close', function () {
  23. renderWithContext(
  24. <FileTreeitemMenu
  25. id="123abc"
  26. setContextMenuCoords={setContextMenuCoords}
  27. />
  28. )
  29. expect(screen.queryByRole('menu')).to.be.null
  30. const toggleButton = screen.getByRole('button', { name: 'Menu' })
  31. fireEvent.click(toggleButton)
  32. screen.getByRole('menu', { visible: true })
  33. fireEvent.click(toggleButton)
  34. screen.getByRole('menu', { visible: false })
  35. })
  36. })