file-tree-folder.test.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { expect } from 'chai'
  2. import React from 'react'
  3. import { screen, fireEvent } from '@testing-library/react'
  4. import renderWithContext from '../helpers/render-with-context'
  5. import FileTreeFolder from '../../../../../frontend/js/features/file-tree/components/file-tree-folder'
  6. describe('<FileTreeFolder/>', function() {
  7. it('renders unselected', function() {
  8. renderWithContext(
  9. <FileTreeFolder
  10. name="foo"
  11. id="123abc"
  12. folders={[]}
  13. docs={[]}
  14. files={[]}
  15. />
  16. )
  17. screen.getByRole('treeitem', { selected: false })
  18. expect(screen.queryByRole('tree')).to.not.exist
  19. })
  20. it('renders selected', function() {
  21. renderWithContext(
  22. <FileTreeFolder
  23. name="foo"
  24. id="123abc"
  25. folders={[]}
  26. docs={[]}
  27. files={[]}
  28. />
  29. )
  30. const treeitem = screen.getByRole('treeitem', { selected: false })
  31. fireEvent.click(treeitem)
  32. screen.getByRole('treeitem', { selected: true })
  33. screen.getByRole('menuitem', { name: 'Rename' })
  34. screen.getByRole('menuitem', { name: 'Delete' })
  35. screen.getByRole('menuitem', { name: 'New File' })
  36. screen.getByRole('menuitem', { name: 'New Folder' })
  37. screen.getByRole('menuitem', { name: 'Upload' })
  38. screen.getByRole('treeitem', { selected: true })
  39. expect(screen.queryByRole('tree')).to.not.exist
  40. })
  41. it('expands', function() {
  42. renderWithContext(
  43. <FileTreeFolder
  44. name="foo"
  45. id="123abc"
  46. folders={[]}
  47. docs={[]}
  48. files={[]}
  49. />
  50. )
  51. screen.getByRole('treeitem')
  52. const expandButton = screen.getByRole('button', { name: 'Expand' })
  53. fireEvent.click(expandButton)
  54. screen.getByRole('tree')
  55. })
  56. })