file-tree-doc.spec.tsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import FileTreeDoc from '../../../../../frontend/js/features/file-tree/components/file-tree-doc'
  2. import { EditorProviders } from '../../../helpers/editor-providers'
  3. import { FileTreeProvider } from '../helpers/file-tree-provider'
  4. describe('<FileTreeDoc/>', function () {
  5. it('renders unselected', function () {
  6. cy.mount(
  7. <EditorProviders>
  8. <FileTreeProvider>
  9. <FileTreeDoc name="foo.tex" id="123abc" />
  10. </FileTreeProvider>
  11. </EditorProviders>
  12. )
  13. cy.findByRole('treeitem', { selected: false })
  14. cy.get('i.linked-file-highlight').should('not.exist')
  15. })
  16. it('renders selected', function () {
  17. const rootFolder = [
  18. {
  19. _id: 'root-folder-id',
  20. name: 'rootFolder',
  21. docs: [{ _id: '123abc' }],
  22. fileRefs: [],
  23. folders: [],
  24. },
  25. ]
  26. cy.mount(
  27. <EditorProviders rootFolder={rootFolder as any}>
  28. <FileTreeProvider>
  29. <FileTreeDoc name="foo.tex" id="123abc" />,
  30. </FileTreeProvider>
  31. </EditorProviders>
  32. )
  33. cy.findByRole('treeitem', { selected: false }).click()
  34. cy.findByRole('treeitem', { selected: true })
  35. })
  36. it('renders as linked file', function () {
  37. cy.mount(
  38. <EditorProviders>
  39. <FileTreeProvider>
  40. <FileTreeDoc name="foo.tex" id="123abc" isLinkedFile />
  41. </FileTreeProvider>
  42. </EditorProviders>
  43. )
  44. cy.findByRole('treeitem')
  45. cy.get('i.linked-file-highlight')
  46. })
  47. it('multi-selects', function () {
  48. const rootFolder = [
  49. {
  50. _id: 'root-folder-id',
  51. name: 'rootFolder',
  52. docs: [{ _id: '123abc' }],
  53. fileRefs: [],
  54. folders: [],
  55. },
  56. ]
  57. cy.mount(
  58. <EditorProviders rootFolder={rootFolder as any}>
  59. <FileTreeProvider>
  60. <FileTreeDoc name="foo.tex" id="123abc" />,
  61. </FileTreeProvider>
  62. </EditorProviders>
  63. )
  64. cy.findByRole('treeitem').click({ ctrlKey: true, cmdKey: true })
  65. cy.findByRole('treeitem', { selected: true })
  66. })
  67. })