@pie-lib/editable-html-tip-tap 2.2.0-beta.7 → 2.2.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/package.json +3 -3
  2. package/lib/__tests__/EditableHtml.test.js +0 -831
  3. package/lib/__tests__/EditableHtml.test.js.map +0 -1
  4. package/lib/__tests__/constants.test.js +0 -21
  5. package/lib/__tests__/constants.test.js.map +0 -1
  6. package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
  7. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
  8. package/lib/__tests__/extensions.test.js +0 -209
  9. package/lib/__tests__/extensions.test.js.map +0 -1
  10. package/lib/__tests__/index.test.js +0 -250
  11. package/lib/__tests__/index.test.js.map +0 -1
  12. package/lib/__tests__/size-utils.test.js +0 -57
  13. package/lib/__tests__/size-utils.test.js.map +0 -1
  14. package/lib/__tests__/theme.test.js +0 -17
  15. package/lib/__tests__/theme.test.js.map +0 -1
  16. package/lib/components/__tests__/AltDialog.test.js +0 -201
  17. package/lib/components/__tests__/AltDialog.test.js.map +0 -1
  18. package/lib/components/__tests__/CharacterPicker.test.js +0 -455
  19. package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
  20. package/lib/components/__tests__/CssIcon.test.js +0 -58
  21. package/lib/components/__tests__/CssIcon.test.js.map +0 -1
  22. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  23. package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
  24. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
  25. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
  26. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  27. package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
  28. package/lib/components/__tests__/InlineDropdown.test.js +0 -839
  29. package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
  30. package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
  31. package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
  32. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  33. package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
  34. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  35. package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
  36. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  37. package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
  38. package/lib/components/__tests__/MenuBar.test.js +0 -502
  39. package/lib/components/__tests__/MenuBar.test.js.map +0 -1
  40. package/lib/components/__tests__/RespArea.test.js +0 -171
  41. package/lib/components/__tests__/RespArea.test.js.map +0 -1
  42. package/lib/components/__tests__/TableIcons.test.js +0 -153
  43. package/lib/components/__tests__/TableIcons.test.js.map +0 -1
  44. package/lib/components/__tests__/TextAlign.test.js +0 -209
  45. package/lib/components/__tests__/TextAlign.test.js.map +0 -1
  46. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  47. package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
  48. package/lib/components/__tests__/characterUtils.test.js +0 -178
  49. package/lib/components/__tests__/characterUtils.test.js.map +0 -1
  50. package/lib/components/__tests__/choice.test.js +0 -213
  51. package/lib/components/__tests__/choice.test.js.map +0 -1
  52. package/lib/components/__tests__/custom-popper.test.js +0 -108
  53. package/lib/components/__tests__/custom-popper.test.js.map +0 -1
  54. package/lib/components/__tests__/done-button.test.js +0 -72
  55. package/lib/components/__tests__/done-button.test.js.map +0 -1
  56. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  57. package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
  58. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
  59. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
  60. package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
  61. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
  62. package/lib/extensions/__tests__/css.test.js +0 -214
  63. package/lib/extensions/__tests__/css.test.js.map +0 -1
  64. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  65. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
  66. package/lib/extensions/__tests__/divNode.test.js +0 -108
  67. package/lib/extensions/__tests__/divNode.test.js.map +0 -1
  68. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
  69. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
  70. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
  71. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
  72. package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
  73. package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
  74. package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
  75. package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
  76. package/lib/extensions/__tests__/extended-table.test.js +0 -200
  77. package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
  78. package/lib/extensions/__tests__/image-component.test.js +0 -432
  79. package/lib/extensions/__tests__/image-component.test.js.map +0 -1
  80. package/lib/extensions/__tests__/image.test.js +0 -313
  81. package/lib/extensions/__tests__/image.test.js.map +0 -1
  82. package/lib/extensions/__tests__/math.test.js +0 -1411
  83. package/lib/extensions/__tests__/math.test.js.map +0 -1
  84. package/lib/extensions/__tests__/media-node-view.test.js +0 -307
  85. package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
  86. package/lib/extensions/__tests__/media.test.js +0 -292
  87. package/lib/extensions/__tests__/media.test.js.map +0 -1
  88. package/lib/extensions/__tests__/responseArea.test.js +0 -736
  89. package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
  90. package/lib/utils/__tests__/helper.test.js +0 -107
  91. package/lib/utils/__tests__/helper.test.js.map +0 -1
  92. package/lib/utils/__tests__/toolbar.test.js +0 -38
  93. package/lib/utils/__tests__/toolbar.test.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"InlineDropdown.test.js","names":["_react","_interopRequireDefault","require","_react2","_mathRendering","_InlineDropdown","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","renderMath","fn","NodeViewWrapper","_ref","children","props","_objectWithoutProperties2","createElement","_extends2","mockCreatePortal","node","requireActual","createPortal","describe","buildMockEditor","overrides","undefined","mockNodeAt","pos","nodeSize","mockDoc","descendants","nodeAt","mockTr","doc","setSelection","setMeta","state","selection","from","to","tr","view","coordsAtPos","top","left","dispatch","commands","focus","_tiptapContainerEl","document","_toolbarOpened","mockEditor","mockNode","attrs","index","value","error","mockOptions","respAreaToolbar","defaultProps","editor","getPos","options","selected","beforeEach","clearAllMocks","mockClear","body","configurable","it","_render","render","container","expect","toBeInTheDocument","_render2","getByTestId","_render3","valueDiv","querySelector","_render4","toHaveBeenCalledWith","updatedNode","_render5","rerender","_render6","toHaveStyle","margin","wrapper","getAttribute","not","toMatch","_render7","chevron","_asyncToGenerator2","_regenerator","mark","_callee","_render8","queryByTestId","wrap","_context","prev","next","waitFor","stop","_render9","_callee2","_render0","dropdown","_context2","fireEvent","click","_render1","height","_render10","display","_render11","cursor","emptyNode","_render12","any","Function","_callee3","_render13","_context3","mouseDown","_callee4","onInlineDropdownToolbarClose","_render14","_context4","_callee5","onToolbarCloseRequest","_render15","_context5","_tuple","_editor","onConfirm","anything","_callee6","_render16","_context6","_holdInlineDropdownToolbarIndex","_callee7","addSpy","removeSpy","_render17","removeCallsBeforeRerender","_context7","spyOn","calls","_ref9","_ref0","_slicedToArray2","type","removeCallsAfterRerender","_ref1","_ref10","toBeGreaterThan","mockRestore","_render18","dropdownDiv","border","_render19","minWidth","_render20","_render21","textContainer","textOverflow","whiteSpace","_callee8","containerEl","_context8","toHaveBeenCalled","toBe","_callee9","_context9","_callee0","mockToolbarComponent","mockOptionsWithCallback","_render22","_context0","_ref14","editorCallback","instanceId","_callee1","capturedCallback","_render23","_context1","_ref16","toBeDefined","_callee10","editorWithInstanceId","_render24","otherToolbar","_context10","_ref18","React","useEffect","setAttribute","appendChild","removeChild","_callee11","toolbarEditorInstance","_context11","_ref20","_callee12","editorWithToolbarOpened","_render25","_context12","_callee13","_render26","_context13","documentElement","_callee14","_render27","findByLabelText","_t","_context14","sent","_callee15","_render28","queryByLabelText","findByTestId","_t2","_context15","_callee16","_render29","_t3","_context16","call","toHaveBeenCalledTimes","toHaveBeenNthCalledWith"],"sources":["../../../src/components/__tests__/InlineDropdown.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render, waitFor } from '@testing-library/react';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport InlineDropdown from '../respArea/InlineDropdown';\n\njest.mock('@pie-lib/math-rendering', () => ({\n renderMath: jest.fn(),\n}));\n\njest.mock('@tiptap/react', () => ({\n NodeViewWrapper: ({ children, ...props }) => (\n <div data-testid=\"node-view-wrapper\" {...props}>\n {children}\n </div>\n ),\n}));\n\nconst mockCreatePortal = jest.fn((node) => node);\n\njest.mock('react-dom', () => ({\n ...jest.requireActual('react-dom'),\n createPortal: (...args) => mockCreatePortal(...args),\n}));\n\ndescribe('InlineDropdown', () => {\n const buildMockEditor = (overrides = {}) => {\n const mockNodeAt = jest.fn((pos) => (pos === 5 ? { nodeSize: 1 } : null));\n const mockDoc = {\n descendants: jest.fn(),\n nodeAt: mockNodeAt,\n };\n const mockTr = {\n delete: jest.fn(),\n doc: { nodeAt: mockNodeAt },\n setSelection: jest.fn(),\n setMeta: jest.fn(function setMeta() {\n return mockTr;\n }),\n };\n return {\n state: {\n selection: {\n from: 0,\n to: 1,\n },\n tr: mockTr,\n doc: mockDoc,\n },\n view: {\n coordsAtPos: jest.fn(() => ({ top: 100, left: 50 })),\n dispatch: jest.fn(),\n },\n commands: {\n focus: jest.fn(),\n },\n _tiptapContainerEl: document.createElement('div'),\n _toolbarOpened: false,\n ...overrides,\n };\n };\n\n let mockEditor;\n\n const mockNode = {\n attrs: {\n index: '0',\n value: 'Selected Option',\n error: false,\n },\n nodeSize: 1,\n };\n\n const mockOptions = {\n respAreaToolbar: jest.fn(() => () => <div data-testid=\"inline-dropdown-toolbar\">Toolbar</div>),\n };\n\n const defaultProps = {\n editor: mockEditor,\n node: mockNode,\n getPos: () => 5,\n options: mockOptions,\n selected: false,\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockCreatePortal.mockClear();\n mockEditor = buildMockEditor();\n defaultProps.editor = mockEditor;\n Object.defineProperty(document.body, 'getBoundingClientRect', {\n value: jest.fn(() => ({ top: 0, left: 0 })),\n configurable: true,\n });\n });\n\n it('renders without crashing', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders NodeViewWrapper', () => {\n const { getByTestId } = render(<InlineDropdown {...defaultProps} />);\n expect(getByTestId('node-view-wrapper')).toBeInTheDocument();\n });\n\n it('displays selected value', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const valueDiv = container.querySelector('div[style*=\"border\"]');\n expect(valueDiv).toBeInTheDocument();\n });\n\n it('renders math inside the value control on mount', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const valueDiv = container.querySelector('div[style*=\"border\"]');\n\n expect(renderMath).toHaveBeenCalledWith(valueDiv);\n });\n\n it('re-renders math when the value changes', () => {\n const updatedNode = {\n ...mockNode,\n attrs: {\n ...mockNode.attrs,\n value: '<span>Updated math</span>',\n },\n };\n\n const { container, rerender } = render(<InlineDropdown {...defaultProps} />);\n\n renderMath.mockClear();\n\n rerender(<InlineDropdown {...defaultProps} node={updatedNode} />);\n\n const valueDiv = container.querySelector('div[style*=\"border\"]');\n expect(renderMath).toHaveBeenCalledWith(valueDiv);\n });\n\n it('uses 2px horizontal margin on the value control and no horizontal margin on the wrapper', () => {\n const { container, getByTestId } = render(<InlineDropdown {...defaultProps} />);\n const valueDiv = container.querySelector('div[style*=\"border\"]');\n expect(valueDiv).toHaveStyle({ margin: '0 2px' });\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper.getAttribute('style') || '').not.toMatch(/margin/);\n });\n\n it('renders chevron icon', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const chevron = container.querySelector('svg');\n expect(chevron).toBeInTheDocument();\n });\n\n it('shows toolbar when selected and only this node is selected', async () => {\n const { queryByTestId } = render(<InlineDropdown {...defaultProps} selected={true} />);\n await waitFor(() => {\n // Toolbar is shown via portal\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n });\n\n it('does not show toolbar when not selected', () => {\n const { queryByTestId } = render(<InlineDropdown {...defaultProps} selected={false} />);\n expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();\n });\n\n it('shows toolbar on click', async () => {\n const { container, queryByTestId } = render(<InlineDropdown {...defaultProps} />);\n const dropdown = container.querySelector('div[style*=\"border\"]');\n if (dropdown) {\n fireEvent.click(dropdown);\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n } else {\n // If dropdown is not found, just verify the component rendered\n expect(container).toBeInTheDocument();\n }\n });\n\n it('has correct minimum dimensions', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const wrapper = container.querySelector('[data-testid=\"node-view-wrapper\"]');\n expect(wrapper).toHaveStyle({ height: '50px' });\n });\n\n it('has inline-flex display', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const wrapper = container.querySelector('[data-testid=\"node-view-wrapper\"]');\n expect(wrapper).toHaveStyle({ display: 'inline-flex' });\n });\n\n it('has cursor pointer style', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const wrapper = container.querySelector('[data-testid=\"node-view-wrapper\"]');\n expect(wrapper).toHaveStyle({ cursor: 'pointer' });\n });\n\n it('renders with empty value as nbsp', () => {\n const emptyNode = { ...mockNode, attrs: { ...mockNode.attrs, value: '' } };\n const { container } = render(<InlineDropdown {...defaultProps} node={emptyNode} />);\n expect(container).toBeInTheDocument();\n });\n\n it('calls respAreaToolbar with correct params', () => {\n render(<InlineDropdown {...defaultProps} />);\n expect(mockOptions.respAreaToolbar).toHaveBeenCalledWith([mockNode, 5], mockEditor, expect.any(Function));\n });\n\n it('closes toolbar on outside click', async () => {\n const { container, queryByTestId } = render(<InlineDropdown {...defaultProps} selected={true} />);\n await waitFor(() => {\n fireEvent.mouseDown(document.body);\n });\n // After clicking outside, toolbar should be hidden\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();\n });\n });\n\n it('calls close callback when toolbar closes on outside click', async () => {\n const onInlineDropdownToolbarClose = jest.fn();\n const options = {\n ...mockOptions,\n onInlineDropdownToolbarClose,\n };\n\n const { queryByTestId } = render(<InlineDropdown {...defaultProps} options={options} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.mouseDown(document.body);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();\n });\n\n expect(onInlineDropdownToolbarClose).toHaveBeenCalledWith(mockEditor);\n });\n\n it('uses the current node when closing on outside click after the node prop changes', async () => {\n const onToolbarCloseRequest = jest.fn((_tuple, _editor, onConfirm) => onConfirm());\n const options = {\n ...mockOptions,\n onToolbarCloseRequest,\n };\n const updatedNode = {\n attrs: { index: '1', value: 'Updated Option', error: false },\n nodeSize: 1,\n };\n\n const { queryByTestId, rerender } = render(<InlineDropdown {...defaultProps} options={options} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n rerender(<InlineDropdown {...defaultProps} options={options} node={updatedNode} selected={true} />);\n\n fireEvent.mouseDown(document.body);\n\n await waitFor(() => {\n expect(onToolbarCloseRequest).toHaveBeenCalledWith(\n [updatedNode, 5],\n expect.anything(),\n expect.any(Function),\n expect.any(Function),\n );\n });\n });\n\n it('respects hold state for the current node after the node prop changes', async () => {\n const updatedNode = {\n attrs: { index: '1', value: 'Updated Option', error: false },\n nodeSize: 1,\n };\n\n mockEditor._holdInlineDropdownToolbarIndex = '1';\n\n const { queryByTestId, rerender } = render(<InlineDropdown {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n rerender(<InlineDropdown {...defaultProps} node={updatedNode} selected={true} />);\n\n fireEvent.mouseDown(document.body);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n });\n\n it('rebinds the outside-click listener when the node prop changes while the toolbar is open', async () => {\n const addSpy = jest.spyOn(document, 'addEventListener');\n const removeSpy = jest.spyOn(document, 'removeEventListener');\n const updatedNode = { ...mockNode, attrs: { ...mockNode.attrs, value: 'Updated Option' } };\n\n const { rerender } = render(<InlineDropdown {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));\n });\n\n const removeCallsBeforeRerender = removeSpy.mock.calls.filter(([type]) => type === 'mousedown').length;\n\n rerender(<InlineDropdown {...defaultProps} node={updatedNode} selected={true} />);\n\n await waitFor(() => {\n const removeCallsAfterRerender = removeSpy.mock.calls.filter(([type]) => type === 'mousedown').length;\n expect(removeCallsAfterRerender).toBeGreaterThan(removeCallsBeforeRerender);\n expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));\n });\n\n addSpy.mockRestore();\n removeSpy.mockRestore();\n });\n\n it('has correct border styling', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const dropdownDiv = container.querySelector('div[style*=\"border\"]');\n expect(dropdownDiv).toHaveStyle({ border: '1px solid #C0C3CF' });\n });\n\n it('has correct min width', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const dropdownDiv = container.querySelector('div[style*=\"border\"]');\n expect(dropdownDiv).toHaveStyle({ minWidth: '178px' });\n });\n\n it('positions chevron correctly', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const chevron = container.querySelector('svg');\n // Chevron styling is applied inline, just verify it rendered\n if (chevron) {\n expect(chevron).toBeInTheDocument();\n } else {\n expect(container).toBeInTheDocument();\n }\n });\n\n it('has ellipsis for overflow text', () => {\n const { container } = render(<InlineDropdown {...defaultProps} />);\n const textContainer = container.querySelector('div[style*=\"overflow\"]');\n expect(textContainer).toHaveStyle({ textOverflow: 'ellipsis', whiteSpace: 'nowrap' });\n });\n\n it('portals toolbar into editor container when _tiptapContainerEl is set', async () => {\n const containerEl = document.createElement('div');\n const editor = buildMockEditor({ _tiptapContainerEl: containerEl });\n\n render(<InlineDropdown {...defaultProps} editor={editor} selected={true} />);\n\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n });\n\n expect(mockCreatePortal.mock.calls[0][1]).toBe(containerEl);\n });\n\n it('portals toolbar into document.body when _tiptapContainerEl is missing', async () => {\n const editor = buildMockEditor({ _tiptapContainerEl: undefined });\n\n render(<InlineDropdown {...defaultProps} editor={editor} selected={true} />);\n\n await waitFor(() => {\n expect(mockCreatePortal).toHaveBeenCalled();\n });\n\n expect(mockCreatePortal.mock.calls[0][1]).toBe(document.body);\n });\n\n it('passes editorCallback to InlineDropdownToolbar', async () => {\n const mockToolbarComponent = jest.fn(({ editorCallback }) => {\n editorCallback?.({ instanceId: 'test-instance' });\n return <div data-testid=\"inline-dropdown-toolbar\">Toolbar</div>;\n });\n\n const mockOptionsWithCallback = {\n respAreaToolbar: jest.fn(() => mockToolbarComponent),\n };\n\n const { queryByTestId } = render(\n <InlineDropdown {...defaultProps} options={mockOptionsWithCallback} selected={true} />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n });\n\n it('stores toolbar editor instance in ref when editorCallback is called', async () => {\n let capturedCallback;\n const mockToolbarComponent = ({ editorCallback }) => {\n capturedCallback = editorCallback;\n return <div data-testid=\"inline-dropdown-toolbar\">Toolbar</div>;\n };\n\n const mockOptionsWithCallback = {\n respAreaToolbar: jest.fn(() => mockToolbarComponent),\n };\n\n const { queryByTestId } = render(\n <InlineDropdown {...defaultProps} options={mockOptionsWithCallback} selected={true} />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n // Verify callback exists\n expect(capturedCallback).toBeDefined();\n });\n\n it('handles click outside logic with data-toolbar-for attribute', async () => {\n const editorWithInstanceId = {\n ...mockEditor,\n instanceId: 'editor-123',\n _toolbarOpened: false,\n };\n\n // Mock the toolbar callback to set the toolbar editor instance\n let capturedCallback;\n const mockToolbarComponent = ({ editorCallback }) => {\n React.useEffect(() => {\n capturedCallback = editorCallback;\n if (editorCallback) {\n editorCallback({ instanceId: 'editor-123' });\n }\n }, [editorCallback]);\n return <div data-testid=\"inline-dropdown-toolbar\">Toolbar</div>;\n };\n\n const mockOptionsWithCallback = {\n respAreaToolbar: jest.fn(() => mockToolbarComponent),\n };\n\n const { container, queryByTestId } = render(\n <InlineDropdown\n {...defaultProps}\n editor={editorWithInstanceId}\n options={mockOptionsWithCallback}\n selected={true}\n />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n // Create an element with data-toolbar-for attribute\n const otherToolbar = document.createElement('div');\n otherToolbar.setAttribute('data-toolbar-for', 'editor-456');\n document.body.appendChild(otherToolbar);\n\n await waitFor(() => {\n fireEvent.mouseDown(otherToolbar);\n });\n\n // Cleanup\n document.body.removeChild(otherToolbar);\n expect(container).toBeInTheDocument();\n });\n\n it('does not close when clicking inside same editor toolbar', async () => {\n const editorWithInstanceId = {\n ...mockEditor,\n instanceId: 'editor-123',\n _toolbarOpened: false,\n };\n\n let toolbarEditorInstance;\n const mockToolbarComponent = ({ editorCallback }) => {\n React.useEffect(() => {\n if (editorCallback) {\n editorCallback({ instanceId: 'editor-123' });\n toolbarEditorInstance = { instanceId: 'editor-123' };\n }\n }, [editorCallback]);\n return <div data-testid=\"inline-dropdown-toolbar\">Toolbar</div>;\n };\n\n const mockOptionsWithCallback = {\n respAreaToolbar: jest.fn(() => mockToolbarComponent),\n };\n\n render(\n <InlineDropdown\n {...defaultProps}\n editor={editorWithInstanceId}\n options={mockOptionsWithCallback}\n selected={true}\n />,\n );\n\n await waitFor(() => {\n expect(mockOptionsWithCallback.respAreaToolbar).toHaveBeenCalled();\n });\n });\n\n it('checks editor._toolbarOpened in click outside handler', async () => {\n const editorWithToolbarOpened = buildMockEditor({ _toolbarOpened: true });\n\n const { queryByTestId } = render(\n <InlineDropdown {...defaultProps} editor={editorWithToolbarOpened} selected={true} />,\n );\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n // When _toolbarOpened is true, clicking outside should not close\n fireEvent.mouseDown(document.body);\n\n // Toolbar should still be visible\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n it('does not close toolbar when clicking the page scrollbar (documentElement)', async () => {\n const { queryByTestId } = render(<InlineDropdown {...defaultProps} selected={true} />);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n\n fireEvent.mouseDown(document.documentElement);\n\n await waitFor(() => {\n expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n });\n });\n\n it('renders delete control on portaled custom toolbar when container el is set', async () => {\n const { findByLabelText } = render(<InlineDropdown {...defaultProps} selected />);\n expect(await findByLabelText('Delete')).toBeInTheDocument();\n });\n\n it('does not render portaled delete control when _tiptapContainerEl is missing', async () => {\n const editor = buildMockEditor({ _tiptapContainerEl: undefined });\n const { queryByLabelText, findByTestId } = render(<InlineDropdown {...defaultProps} editor={editor} selected />);\n expect(await findByTestId('inline-dropdown-toolbar')).toBeInTheDocument();\n expect(queryByLabelText('Delete')).not.toBeInTheDocument();\n });\n\n it('delete clears toolbar flag, removes node range, dispatches, and focuses', async () => {\n mockEditor._toolbarOpened = true;\n const { findByLabelText } = render(<InlineDropdown {...defaultProps} selected />);\n fireEvent.mouseDown(await findByLabelText('Delete'));\n expect(mockEditor.state.tr.delete).toHaveBeenCalledWith(5, 6);\n expect(mockEditor.view.dispatch).toHaveBeenCalledTimes(2);\n expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(1, mockEditor.state.tr);\n expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(2, mockEditor.state.tr);\n expect(mockEditor._toolbarOpened).toBe(false);\n expect(mockEditor.commands.focus).toHaveBeenCalled();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,171 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _InsertImageHandler = _interopRequireDefault(require("../image/InsertImageHandler"));
5
- describe('InsertImageHandler', function () {
6
- var mockNode = {
7
- attrs: {},
8
- nodeSize: 1
9
- };
10
- var NODE_POS = 5;
11
- var nodeInfo = function nodeInfo() {
12
- var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : mockNode;
13
- var pos = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NODE_POS;
14
- return [node, pos];
15
- };
16
- var createMockEditor = function createMockEditor() {
17
- return {
18
- _insertingImage: true,
19
- state: {
20
- doc: {},
21
- tr: {
22
- setNodeMarkup: jest.fn(function (pos, type, attrs) {
23
- return {
24
- setNodeMarkup: jest.fn()
25
- };
26
- }),
27
- "delete": jest.fn(function (from, to) {
28
- return {
29
- "delete": jest.fn()
30
- };
31
- })
32
- }
33
- },
34
- view: {
35
- dispatch: jest.fn()
36
- }
37
- };
38
- };
39
- var mockOnFinish = jest.fn();
40
- beforeEach(function () {
41
- jest.clearAllMocks();
42
- });
43
- it('creates handler instance', function () {
44
- var editor = createMockEditor();
45
- var info = nodeInfo();
46
- var handler = new _InsertImageHandler["default"](editor, info, mockOnFinish);
47
- expect(handler).toBeDefined();
48
- expect(handler.editor).toBe(editor);
49
- expect(handler.nodeInfo).toBe(info);
50
- expect(handler.node).toBe(mockNode);
51
- expect(handler.onFinish).toBe(mockOnFinish);
52
- });
53
- it('stores nodePos from nodeInfo tuple', function () {
54
- var editor = createMockEditor();
55
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(mockNode, 42), mockOnFinish);
56
- expect(handler.nodePos).toBe(42);
57
- });
58
- it('stores isPasted parameter', function () {
59
- var editor = createMockEditor();
60
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish, true);
61
- expect(handler.isPasted).toBe(true);
62
- });
63
- it('defaults isPasted to false', function () {
64
- var editor = createMockEditor();
65
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
66
- expect(handler.isPasted).toBe(false);
67
- });
68
- it('cancel deletes node and calls onFinish', function () {
69
- var editor = createMockEditor();
70
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
71
- handler.cancel();
72
- expect(mockOnFinish).toHaveBeenCalledWith(false);
73
- expect(editor._insertingImage).toBe(false);
74
- });
75
- it('updateNode dispatches transaction with new attributes', function () {
76
- var editor = createMockEditor();
77
- var mockNodeAt = jest.fn(function () {
78
- return {
79
- attrs: {
80
- existing: 'value'
81
- }
82
- };
83
- });
84
- editor.state.doc.nodeAt = mockNodeAt;
85
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
86
- handler.updateNode({
87
- newAttr: 'newValue'
88
- });
89
- expect(mockNodeAt).toHaveBeenCalledWith(NODE_POS);
90
- expect(editor.view.dispatch).toHaveBeenCalled();
91
- });
92
- it('done calls onFinish with false on error', function () {
93
- var editor = createMockEditor();
94
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
95
- var consoleLogSpy = jest.spyOn(console, 'log').mockImplementation();
96
- handler.done('error', null);
97
- expect(consoleLogSpy).toHaveBeenCalledWith('error');
98
- expect(mockOnFinish).toHaveBeenCalledWith(false);
99
- expect(editor._insertingImage).toBe(false);
100
- consoleLogSpy.mockRestore();
101
- });
102
- it('done updates node and calls onFinish with true on success', function () {
103
- var editor = createMockEditor();
104
- var mockNodeAt = jest.fn(function () {
105
- return {
106
- attrs: {}
107
- };
108
- });
109
- editor.state.doc.nodeAt = mockNodeAt;
110
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
111
- handler.done(null, 'http://example.com/image.jpg');
112
- expect(editor.view.dispatch).toHaveBeenCalled();
113
- expect(mockOnFinish).toHaveBeenCalledWith(true);
114
- expect(editor._insertingImage).toBe(false);
115
- });
116
- it('fileChosen returns early when no file provided', function () {
117
- var editor = createMockEditor();
118
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
119
- handler.fileChosen(null);
120
- expect(editor.view.dispatch).not.toHaveBeenCalled();
121
- });
122
- it('fileChosen saves file and reads it as data URL', function () {
123
- var editor = createMockEditor();
124
- var mockNodeAt = jest.fn(function () {
125
- return {
126
- attrs: {}
127
- };
128
- });
129
- editor.state.doc.nodeAt = mockNodeAt;
130
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
131
- var mockFile = new File(['content'], 'test.jpg', {
132
- type: 'image/jpeg'
133
- });
134
- global.FileReader = jest.fn(function () {
135
- this.readAsDataURL = jest.fn(function () {
136
- this.result = 'data:image/jpeg;base64,abc123';
137
- this.onload();
138
- });
139
- });
140
- handler.fileChosen(mockFile);
141
- expect(handler.chosenFile).toBe(mockFile);
142
- expect(editor._insertingImage).toBe(false);
143
- });
144
- it('progress updates node with percent', function () {
145
- var editor = createMockEditor();
146
- var mockNodeAt = jest.fn(function () {
147
- return {
148
- attrs: {}
149
- };
150
- });
151
- editor.state.doc.nodeAt = mockNodeAt;
152
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
153
- handler.progress(50, 500, 1000);
154
- expect(editor.view.dispatch).toHaveBeenCalled();
155
- });
156
- it('getChosenFile returns the chosen file', function () {
157
- var editor = createMockEditor();
158
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
159
- var mockFile = new File(['content'], 'test.jpg', {
160
- type: 'image/jpeg'
161
- });
162
- handler.chosenFile = mockFile;
163
- expect(handler.getChosenFile()).toBe(mockFile);
164
- });
165
- it('getChosenFile returns null initially', function () {
166
- var editor = createMockEditor();
167
- var handler = new _InsertImageHandler["default"](editor, nodeInfo(), mockOnFinish);
168
- expect(handler.getChosenFile()).toBeNull();
169
- });
170
- });
171
- //# sourceMappingURL=InsertImageHandler.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InsertImageHandler.test.js","names":["_InsertImageHandler","_interopRequireDefault","require","describe","mockNode","attrs","nodeSize","NODE_POS","nodeInfo","node","arguments","length","undefined","pos","createMockEditor","_insertingImage","state","doc","tr","setNodeMarkup","jest","fn","type","from","to","view","dispatch","mockOnFinish","beforeEach","clearAllMocks","it","editor","info","handler","InsertImageHandler","expect","toBeDefined","toBe","onFinish","nodePos","isPasted","cancel","toHaveBeenCalledWith","mockNodeAt","existing","nodeAt","updateNode","newAttr","toHaveBeenCalled","consoleLogSpy","spyOn","console","mockImplementation","done","mockRestore","fileChosen","not","mockFile","File","global","FileReader","readAsDataURL","result","onload","chosenFile","progress","getChosenFile","toBeNull"],"sources":["../../../src/components/__tests__/InsertImageHandler.test.js"],"sourcesContent":["import InsertImageHandler from '../image/InsertImageHandler';\n\ndescribe('InsertImageHandler', () => {\n const mockNode = {\n attrs: {},\n nodeSize: 1,\n };\n\n const NODE_POS = 5;\n\n const nodeInfo = (node = mockNode, pos = NODE_POS) => [node, pos];\n\n const createMockEditor = () => ({\n _insertingImage: true,\n state: {\n doc: {},\n tr: {\n setNodeMarkup: jest.fn((pos, type, attrs) => ({ setNodeMarkup: jest.fn() })),\n delete: jest.fn((from, to) => ({ delete: jest.fn() })),\n },\n },\n view: {\n dispatch: jest.fn(),\n },\n });\n\n const mockOnFinish = jest.fn();\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('creates handler instance', () => {\n const editor = createMockEditor();\n const info = nodeInfo();\n const handler = new InsertImageHandler(editor, info, mockOnFinish);\n expect(handler).toBeDefined();\n expect(handler.editor).toBe(editor);\n expect(handler.nodeInfo).toBe(info);\n expect(handler.node).toBe(mockNode);\n expect(handler.onFinish).toBe(mockOnFinish);\n });\n\n it('stores nodePos from nodeInfo tuple', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(mockNode, 42), mockOnFinish);\n expect(handler.nodePos).toBe(42);\n });\n\n it('stores isPasted parameter', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish, true);\n expect(handler.isPasted).toBe(true);\n });\n\n it('defaults isPasted to false', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n expect(handler.isPasted).toBe(false);\n });\n\n it('cancel deletes node and calls onFinish', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n handler.cancel();\n expect(mockOnFinish).toHaveBeenCalledWith(false);\n expect(editor._insertingImage).toBe(false);\n });\n\n it('updateNode dispatches transaction with new attributes', () => {\n const editor = createMockEditor();\n const mockNodeAt = jest.fn(() => ({ attrs: { existing: 'value' } }));\n editor.state.doc.nodeAt = mockNodeAt;\n\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n handler.updateNode({ newAttr: 'newValue' });\n\n expect(mockNodeAt).toHaveBeenCalledWith(NODE_POS);\n expect(editor.view.dispatch).toHaveBeenCalled();\n });\n\n it('done calls onFinish with false on error', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n const consoleLogSpy = jest.spyOn(console, 'log').mockImplementation();\n\n handler.done('error', null);\n\n expect(consoleLogSpy).toHaveBeenCalledWith('error');\n expect(mockOnFinish).toHaveBeenCalledWith(false);\n expect(editor._insertingImage).toBe(false);\n consoleLogSpy.mockRestore();\n });\n\n it('done updates node and calls onFinish with true on success', () => {\n const editor = createMockEditor();\n const mockNodeAt = jest.fn(() => ({ attrs: {} }));\n editor.state.doc.nodeAt = mockNodeAt;\n\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n handler.done(null, 'http://example.com/image.jpg');\n\n expect(editor.view.dispatch).toHaveBeenCalled();\n expect(mockOnFinish).toHaveBeenCalledWith(true);\n expect(editor._insertingImage).toBe(false);\n });\n\n it('fileChosen returns early when no file provided', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n handler.fileChosen(null);\n expect(editor.view.dispatch).not.toHaveBeenCalled();\n });\n\n it('fileChosen saves file and reads it as data URL', () => {\n const editor = createMockEditor();\n const mockNodeAt = jest.fn(() => ({ attrs: {} }));\n editor.state.doc.nodeAt = mockNodeAt;\n\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n const mockFile = new File(['content'], 'test.jpg', { type: 'image/jpeg' });\n\n global.FileReader = jest.fn(function () {\n this.readAsDataURL = jest.fn(function () {\n this.result = 'data:image/jpeg;base64,abc123';\n this.onload();\n });\n });\n\n handler.fileChosen(mockFile);\n\n expect(handler.chosenFile).toBe(mockFile);\n expect(editor._insertingImage).toBe(false);\n });\n\n it('progress updates node with percent', () => {\n const editor = createMockEditor();\n const mockNodeAt = jest.fn(() => ({ attrs: {} }));\n editor.state.doc.nodeAt = mockNodeAt;\n\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n handler.progress(50, 500, 1000);\n\n expect(editor.view.dispatch).toHaveBeenCalled();\n });\n\n it('getChosenFile returns the chosen file', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n const mockFile = new File(['content'], 'test.jpg', { type: 'image/jpeg' });\n handler.chosenFile = mockFile;\n\n expect(handler.getChosenFile()).toBe(mockFile);\n });\n\n it('getChosenFile returns null initially', () => {\n const editor = createMockEditor();\n const handler = new InsertImageHandler(editor, nodeInfo(), mockOnFinish);\n expect(handler.getChosenFile()).toBeNull();\n });\n});\n"],"mappings":"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","ignoreList":[]}