file-tree-doc.test.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import { expect } from 'chai'
  2. import { screen, fireEvent } from '@testing-library/react'
  3. import renderWithContext from '../helpers/render-with-context'
  4. import FileTreeDoc from '../../../../../frontend/js/features/file-tree/components/file-tree-doc'
  5. describe('<FileTreeDoc/>', function () {
  6. it('renders unselected', function () {
  7. const { container } = renderWithContext(
  8. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile={false} />
  9. )
  10. screen.getByRole('treeitem', { selected: false })
  11. expect(container.querySelector('i.linked-file-highlight')).to.not.exist
  12. })
  13. it('renders selected', function () {
  14. renderWithContext(
  15. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile={false} />,
  16. {
  17. contextProps: {
  18. rootFolder: [
  19. {
  20. docs: [{ _id: '123abc' }],
  21. fileRefs: [],
  22. folders: [],
  23. },
  24. ],
  25. },
  26. }
  27. )
  28. const treeitem = screen.getByRole('treeitem', { selected: false })
  29. fireEvent.click(treeitem)
  30. screen.getByRole('treeitem', { selected: true })
  31. })
  32. it('renders as linked file', function () {
  33. const { container } = renderWithContext(
  34. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile />
  35. )
  36. screen.getByRole('treeitem')
  37. expect(container.querySelector('i.linked-file-highlight')).to.exist
  38. })
  39. it('selects', function () {
  40. renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />, {
  41. contextProps: {
  42. rootFolder: [
  43. {
  44. docs: [{ _id: '123abc' }],
  45. fileRefs: [],
  46. folders: [],
  47. },
  48. ],
  49. },
  50. })
  51. const treeitem = screen.getByRole('treeitem', { selected: false })
  52. fireEvent.click(treeitem)
  53. screen.getByRole('treeitem', { selected: true })
  54. })
  55. it('multi-selects', function () {
  56. renderWithContext(<FileTreeDoc name="foo.tex" id="123abc" expanded />, {
  57. contextProps: {
  58. rootFolder: [
  59. {
  60. docs: [{ _id: '123abc' }],
  61. fileRefs: [],
  62. folders: [],
  63. },
  64. ],
  65. },
  66. })
  67. const treeitem = screen.getByRole('treeitem')
  68. fireEvent.click(treeitem, { ctrlKey: true })
  69. screen.getByRole('treeitem', { selected: true })
  70. })
  71. })