file-tree-doc.test.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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 FileTreeDoc from '../../../../../frontend/js/features/file-tree/components/file-tree-doc'
  6. describe('<FileTreeDoc/>', function() {
  7. it('renders unselected', function() {
  8. const { container } = renderWithContext(
  9. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile={false} />
  10. )
  11. screen.getByRole('treeitem', { selected: false })
  12. expect(container.querySelector('i.linked-file-highlight')).to.not.exist
  13. })
  14. it('renders selected', function() {
  15. renderWithContext(
  16. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile={false} />
  17. )
  18. const treeitem = screen.getByRole('treeitem', { selected: false })
  19. fireEvent.click(treeitem)
  20. screen.getByRole('treeitem', { selected: true })
  21. screen.getByRole('menuitem', { name: 'Rename' })
  22. screen.getByRole('menuitem', { name: 'Delete' })
  23. screen.getByRole('menuitem', { name: 'New File' })
  24. screen.getByRole('menuitem', { name: 'New Folder' })
  25. screen.getByRole('menuitem', { name: 'Upload' })
  26. })
  27. it('renders as linked file', function() {
  28. const { container } = renderWithContext(
  29. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile />
  30. )
  31. screen.getByRole('treeitem')
  32. expect(container.querySelector('i.linked-file-highlight')).to.exist
  33. })
  34. it('selects', function() {
  35. renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />)
  36. const treeitem = screen.getByRole('treeitem', { selected: false })
  37. fireEvent.click(treeitem)
  38. screen.getByRole('treeitem', { selected: true })
  39. })
  40. it('multi-selects', function() {
  41. renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />)
  42. const treeitem = screen.getByRole('treeitem')
  43. fireEvent.click(treeitem, { ctrlKey: true })
  44. screen.getByRole('treeitem', { selected: true })
  45. })
  46. })