@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.
- package/package.json +3 -3
- package/lib/__tests__/EditableHtml.test.js +0 -831
- package/lib/__tests__/EditableHtml.test.js.map +0 -1
- package/lib/__tests__/constants.test.js +0 -21
- package/lib/__tests__/constants.test.js.map +0 -1
- package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
- package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
- package/lib/__tests__/extensions.test.js +0 -209
- package/lib/__tests__/extensions.test.js.map +0 -1
- package/lib/__tests__/index.test.js +0 -250
- package/lib/__tests__/index.test.js.map +0 -1
- package/lib/__tests__/size-utils.test.js +0 -57
- package/lib/__tests__/size-utils.test.js.map +0 -1
- package/lib/__tests__/theme.test.js +0 -17
- package/lib/__tests__/theme.test.js.map +0 -1
- package/lib/components/__tests__/AltDialog.test.js +0 -201
- package/lib/components/__tests__/AltDialog.test.js.map +0 -1
- package/lib/components/__tests__/CharacterPicker.test.js +0 -455
- package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
- package/lib/components/__tests__/CssIcon.test.js +0 -58
- package/lib/components/__tests__/CssIcon.test.js.map +0 -1
- package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
- package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
- package/lib/components/__tests__/ImageToolbar.test.js +0 -185
- package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
- package/lib/components/__tests__/InlineDropdown.test.js +0 -839
- package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
- package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
- package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
- package/lib/components/__tests__/MediaDialog.test.js +0 -433
- package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
- package/lib/components/__tests__/MediaToolbar.test.js +0 -126
- package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
- package/lib/components/__tests__/MediaWrapper.test.js +0 -96
- package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
- package/lib/components/__tests__/MenuBar.test.js +0 -502
- package/lib/components/__tests__/MenuBar.test.js.map +0 -1
- package/lib/components/__tests__/RespArea.test.js +0 -171
- package/lib/components/__tests__/RespArea.test.js.map +0 -1
- package/lib/components/__tests__/TableIcons.test.js +0 -153
- package/lib/components/__tests__/TableIcons.test.js.map +0 -1
- package/lib/components/__tests__/TextAlign.test.js +0 -209
- package/lib/components/__tests__/TextAlign.test.js.map +0 -1
- package/lib/components/__tests__/TiptapContainer.test.js +0 -196
- package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
- package/lib/components/__tests__/characterUtils.test.js +0 -178
- package/lib/components/__tests__/characterUtils.test.js.map +0 -1
- package/lib/components/__tests__/choice.test.js +0 -213
- package/lib/components/__tests__/choice.test.js.map +0 -1
- package/lib/components/__tests__/custom-popper.test.js +0 -108
- package/lib/components/__tests__/custom-popper.test.js.map +0 -1
- package/lib/components/__tests__/done-button.test.js +0 -72
- package/lib/components/__tests__/done-button.test.js.map +0 -1
- package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
- package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
- package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
- package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
- package/lib/extensions/__tests__/css.test.js +0 -214
- package/lib/extensions/__tests__/css.test.js.map +0 -1
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
- package/lib/extensions/__tests__/divNode.test.js +0 -108
- package/lib/extensions/__tests__/divNode.test.js.map +0 -1
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
- package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
- package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
- package/lib/extensions/__tests__/extended-table.test.js +0 -200
- package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
- package/lib/extensions/__tests__/image-component.test.js +0 -432
- package/lib/extensions/__tests__/image-component.test.js.map +0 -1
- package/lib/extensions/__tests__/image.test.js +0 -313
- package/lib/extensions/__tests__/image.test.js.map +0 -1
- package/lib/extensions/__tests__/math.test.js +0 -1411
- package/lib/extensions/__tests__/math.test.js.map +0 -1
- package/lib/extensions/__tests__/media-node-view.test.js +0 -307
- package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
- package/lib/extensions/__tests__/media.test.js +0 -292
- package/lib/extensions/__tests__/media.test.js.map +0 -1
- package/lib/extensions/__tests__/responseArea.test.js +0 -736
- package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
- package/lib/utils/__tests__/helper.test.js +0 -107
- package/lib/utils/__tests__/helper.test.js.map +0 -1
- package/lib/utils/__tests__/toolbar.test.js +0 -38
- package/lib/utils/__tests__/toolbar.test.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"responseArea.test.js","names":["_responseArea","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","Extension","create","fn","config","Node","ReactNodeViewRenderer","component","Plugin","PluginKey","key","TextSelection","near","pos","dir","type","doc","NodeSelection","__esModule","React","createElement","describe","it","expect","ResponseAreaExtension","name","toBe","options","addOptions","toHaveProperty","context","plugins","addProseMirrorPlugins","call","Array","isArray","toHaveLength","maxResponseAreas","commands","addCommands","_typeof2","insertResponseArea","refreshResponseArea","refreshCommand","mockNode","attrs","index","value","mockTr","setNodeMarkup","setSelection","mockState","selection","from","$from","nodeAfter","tr","mockCommands","focus","mockDispatch","state","dispatch","toHaveBeenCalled","not","toThrow","updated","toBeDefined","beforeEach","resetModules","buildInsertCommand","undefined","_require","createDoc","existingCount","typeName","descendants","callback","i","content","size","insert","mockInlineNode","nodeSize","mockDoc","schema","nodes","inline_dropdown","result","toHaveBeenCalledWith","id","runOnce","calls","toEqual","buildStateAndTr","_ref","_ref$withResolve","withResolve","resolve","resolved","each","replace","_buildStateAndTr","_require2","_buildStateAndTr2","_require3","ExplicitConstructedResponseNode","inline","group","atom","attributes","addAttributes","rules","parseHTML","renderHTML","HTMLAttributes","addNodeView","DragInTheBlankNode","inTable","InlineDropdownNode"],"sources":["../../../src/extensions/__tests__/responseArea.test.js"],"sourcesContent":["import {\n DragInTheBlankNode,\n ExplicitConstructedResponseNode,\n InlineDropdownNode,\n ResponseAreaExtension,\n} from '../responseArea';\n\njest.mock('@tiptap/core', () => ({\n Extension: { create: jest.fn((config) => config) },\n Node: { create: jest.fn((config) => config) },\n}));\n\njest.mock('@tiptap/react', () => ({\n Node: { create: jest.fn((config) => config) },\n ReactNodeViewRenderer: jest.fn((component) => component),\n}));\n\njest.mock('prosemirror-state', () => ({\n Plugin: jest.fn(function (config) {\n return config;\n }),\n PluginKey: jest.fn(function (key) {\n this.key = key;\n }),\n TextSelection: {\n near: jest.fn((pos, dir) => ({ type: 'text', pos, dir })),\n create: jest.fn((doc, pos) => ({ type: 'text', pos })),\n },\n NodeSelection: {\n create: jest.fn((doc, pos) => ({ type: 'node', pos })),\n },\n}));\n\njest.mock('../../components/respArea/ExplicitConstructedResponse', () => ({\n __esModule: true,\n default: jest.fn(() => <div data-testid=\"explicit-constructed-response\" />),\n}));\n\njest.mock('../../components/respArea/DragInTheBlank/DragInTheBlank', () => ({\n __esModule: true,\n default: jest.fn(() => <div data-testid=\"drag-in-the-blank\" />),\n}));\n\njest.mock('../../components/respArea/InlineDropdown', () => ({\n __esModule: true,\n default: jest.fn(() => <div data-testid=\"inline-dropdown\" />),\n}));\n\ndescribe('ResponseAreaExtension', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(ResponseAreaExtension.name).toBe('responseArea');\n });\n });\n\n describe('addOptions', () => {\n it('returns default options', () => {\n const options = ResponseAreaExtension.addOptions();\n\n expect(options).toHaveProperty('maxResponseAreas', null);\n expect(options).toHaveProperty('error', null);\n expect(options).toHaveProperty('options', null);\n expect(options).toHaveProperty('respAreaToolbar', null);\n expect(options).toHaveProperty('onHandleAreaChange', null);\n });\n });\n\n describe('addProseMirrorPlugins', () => {\n it('returns empty array when no type specified', () => {\n const context = {\n options: {},\n };\n\n const plugins = ResponseAreaExtension.addProseMirrorPlugins.call(context);\n\n expect(Array.isArray(plugins)).toBe(true);\n expect(plugins).toHaveLength(0);\n });\n\n it('returns plugin array when type is specified', () => {\n const context = {\n options: {\n type: 'explicit-constructed-response',\n maxResponseAreas: 5,\n },\n };\n\n const plugins = ResponseAreaExtension.addProseMirrorPlugins.call(context);\n\n expect(Array.isArray(plugins)).toBe(true);\n expect(plugins).toHaveLength(1);\n expect(plugins[0]).toHaveProperty('key');\n expect(plugins[0]).toHaveProperty('view');\n });\n });\n\n describe('addCommands', () => {\n it('returns insertResponseArea command', () => {\n const commands = ResponseAreaExtension.addCommands();\n\n expect(commands).toHaveProperty('insertResponseArea');\n expect(typeof commands.insertResponseArea).toBe('function');\n });\n\n it('returns refreshResponseArea command', () => {\n const commands = ResponseAreaExtension.addCommands();\n\n expect(commands).toHaveProperty('refreshResponseArea');\n expect(typeof commands.refreshResponseArea).toBe('function');\n });\n\n it('refreshResponseArea handles node with attrs safely', () => {\n const context = {\n options: {\n type: 'explicit-constructed-response',\n maxResponseAreas: 5,\n },\n };\n\n const commands = ResponseAreaExtension.addCommands.call(context);\n const refreshCommand = commands.refreshResponseArea();\n\n // Mock transaction and state\n const mockNode = {\n attrs: {\n index: '0',\n value: 'test',\n },\n };\n\n const mockTr = {\n setNodeMarkup: jest.fn(),\n setSelection: jest.fn(),\n };\n\n const mockState = {\n selection: {\n from: 0,\n $from: {\n nodeAfter: mockNode,\n },\n },\n tr: mockTr,\n };\n\n const mockCommands = {\n focus: jest.fn(),\n };\n\n const mockDispatch = jest.fn();\n\n refreshCommand({\n tr: mockTr,\n state: mockState,\n commands: mockCommands,\n dispatch: mockDispatch,\n });\n\n expect(mockTr.setNodeMarkup).toHaveBeenCalled();\n });\n\n it('refreshResponseArea handles node without attrs safely (optional chaining)', () => {\n const context = {\n options: {\n type: 'explicit-constructed-response',\n maxResponseAreas: 5,\n },\n };\n\n const commands = ResponseAreaExtension.addCommands.call(context);\n const refreshCommand = commands.refreshResponseArea();\n\n // Mock transaction and state with node that has no attrs\n const mockNode = null;\n\n const mockTr = {\n setNodeMarkup: jest.fn(),\n setSelection: jest.fn(),\n };\n\n const mockState = {\n selection: {\n from: 0,\n $from: {\n nodeAfter: mockNode,\n },\n },\n tr: mockTr,\n };\n\n const mockCommands = {\n focus: jest.fn(),\n };\n\n const mockDispatch = jest.fn();\n\n // This should not throw an error due to optional chaining on node?.attrs\n expect(() => {\n refreshCommand({\n tr: mockTr,\n state: mockState,\n commands: mockCommands,\n dispatch: mockDispatch,\n });\n }).not.toThrow();\n });\n\n it('refreshResponseArea updates timestamp in node attributes', () => {\n const context = {\n options: {\n type: 'explicit-constructed-response',\n maxResponseAreas: 5,\n },\n };\n\n const commands = ResponseAreaExtension.addCommands.call(context);\n const refreshCommand = commands.refreshResponseArea();\n\n const mockNode = {\n attrs: {\n index: '0',\n value: 'test',\n updated: '1234567890',\n },\n };\n\n const mockTr = {\n setNodeMarkup: jest.fn((pos, type, attrs) => {\n // Verify that updated timestamp is being set\n expect(attrs.updated).toBeDefined();\n expect(attrs.updated).not.toBe('1234567890');\n }),\n setSelection: jest.fn(),\n };\n\n const mockState = {\n selection: {\n from: 0,\n $from: {\n nodeAfter: mockNode,\n },\n },\n tr: mockTr,\n };\n\n const mockCommands = {\n focus: jest.fn(),\n };\n\n const mockDispatch = jest.fn();\n\n refreshCommand({\n tr: mockTr,\n state: mockState,\n commands: mockCommands,\n dispatch: mockDispatch,\n });\n\n expect(mockTr.setNodeMarkup).toHaveBeenCalled();\n });\n\n describe('insertResponseArea', () => {\n beforeEach(() => {\n jest.resetModules();\n });\n\n const buildInsertCommand = (type = 'inline-dropdown') => {\n const { ResponseAreaExtension } = require('../responseArea');\n const context = {\n options: {\n type,\n maxResponseAreas: 5,\n },\n };\n const commands = ResponseAreaExtension.addCommands.call(context);\n return commands.insertResponseArea(type);\n };\n\n const createDoc = (existingCount, typeName = 'inline_dropdown') => ({\n descendants: jest.fn((callback) => {\n for (let i = 0; i < existingCount; i += 1) {\n callback({ type: { name: typeName } }, i);\n }\n }),\n content: { size: 50 },\n });\n\n it('assigns index 1 and id 1 on the first insert', () => {\n const insert = buildInsertCommand();\n const mockInlineNode = { nodeSize: 1 };\n const create = jest.fn(() => mockInlineNode);\n const mockDoc = createDoc(0);\n const mockTr = {\n insert: jest.fn(),\n doc: mockDoc,\n setSelection: jest.fn(),\n };\n const state = {\n schema: {\n nodes: {\n inline_dropdown: { create },\n },\n },\n doc: mockDoc,\n selection: { from: 5 },\n };\n const mockDispatch = jest.fn();\n const mockCommands = { focus: jest.fn() };\n\n const result = insert({\n tr: mockTr,\n state,\n dispatch: mockDispatch,\n commands: mockCommands,\n });\n\n expect(result).toBe(true);\n expect(create).toHaveBeenCalledWith({\n index: '1',\n id: '1',\n value: '',\n });\n expect(mockTr.insert).toHaveBeenCalledWith(5, mockInlineNode);\n expect(mockDispatch).toHaveBeenCalled();\n });\n\n it('assigns consecutive indices on repeated inserts', () => {\n const insert = buildInsertCommand();\n const mockInlineNode = { nodeSize: 1 };\n const create = jest.fn(() => mockInlineNode);\n const mockDoc = createDoc(0);\n\n const runOnce = () => {\n const mockTr = {\n insert: jest.fn(),\n doc: mockDoc,\n setSelection: jest.fn(),\n };\n const state = {\n schema: {\n nodes: {\n inline_dropdown: { create },\n },\n },\n doc: mockDoc,\n selection: { from: 1 },\n };\n insert({\n tr: mockTr,\n state,\n dispatch: jest.fn(),\n commands: { focus: jest.fn() },\n });\n };\n\n runOnce();\n runOnce();\n\n expect(create.mock.calls[0][0]).toEqual({ index: '1', id: '1', value: '' });\n expect(create.mock.calls[1][0]).toEqual({ index: '2', id: '2', value: '' });\n });\n\n it('returns false when maxResponseAreas is reached', () => {\n const insert = buildInsertCommand();\n const mockInlineNode = { nodeSize: 1 };\n const create = jest.fn(() => mockInlineNode);\n const mockDoc = createDoc(5);\n const mockTr = {\n insert: jest.fn(),\n doc: mockDoc,\n setSelection: jest.fn(),\n };\n const state = {\n schema: {\n nodes: {\n inline_dropdown: { create },\n },\n },\n doc: mockDoc,\n selection: { from: 5 },\n };\n\n const result = insert({\n tr: mockTr,\n state,\n dispatch: jest.fn(),\n commands: { focus: jest.fn() },\n });\n\n expect(result).toBe(false);\n expect(create).not.toHaveBeenCalled();\n expect(mockTr.insert).not.toHaveBeenCalled();\n });\n\n describe('selection after insert', () => {\n const buildStateAndTr = (typeName, { withResolve = false } = {}) => {\n const mockInlineNode = { nodeSize: 1 };\n const create = jest.fn(() => mockInlineNode);\n const mockDoc = {\n descendants: jest.fn(),\n content: { size: 50 },\n ...(withResolve ? { resolve: jest.fn((pos) => ({ resolved: pos })) } : {}),\n };\n const mockTr = {\n insert: jest.fn(),\n doc: mockDoc,\n setSelection: jest.fn(),\n };\n const state = {\n schema: { nodes: { [typeName]: { create } } },\n doc: mockDoc,\n selection: { from: 5 },\n };\n\n return { mockTr, state };\n };\n\n it.each(['inline-dropdown', 'explicit-constructed-response'])(\n 'sets a NodeSelection on the inserted node for %s',\n (type) => {\n const insert = buildInsertCommand(type);\n const typeName = type.replace(/-/g, '_');\n const { mockTr, state } = buildStateAndTr(typeName);\n const { NodeSelection, TextSelection } = require('prosemirror-state');\n\n insert({ tr: mockTr, state, dispatch: jest.fn(), commands: { focus: jest.fn() } });\n\n expect(NodeSelection.create).toHaveBeenCalledWith(mockTr.doc, 5);\n expect(TextSelection.near).not.toHaveBeenCalled();\n expect(mockTr.setSelection).toHaveBeenCalledWith({ type: 'node', pos: 5 });\n },\n );\n\n it('sets a TextSelection just after the inserted node for math-templated (no NodeSelection)', () => {\n const insert = buildInsertCommand('math-templated');\n const { mockTr, state } = buildStateAndTr('math_templated', { withResolve: true });\n const { NodeSelection, TextSelection } = require('prosemirror-state');\n\n insert({ tr: mockTr, state, dispatch: jest.fn(), commands: { focus: jest.fn() } });\n\n expect(NodeSelection.create).not.toHaveBeenCalled();\n // usedPos (5) + nodeSize (1) === 6\n expect(mockTr.doc.resolve).toHaveBeenCalledWith(6);\n expect(TextSelection.near).toHaveBeenCalledWith({ resolved: 6 }, 1);\n expect(mockTr.setSelection).toHaveBeenCalledWith({ type: 'text', pos: { resolved: 6 }, dir: 1 });\n });\n });\n });\n });\n});\n\ndescribe('ExplicitConstructedResponseNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(ExplicitConstructedResponseNode.name).toBe('explicit_constructed_response');\n });\n\n it('is inline', () => {\n expect(ExplicitConstructedResponseNode.inline).toBe(true);\n });\n\n it('is in inline group', () => {\n expect(ExplicitConstructedResponseNode.group).toBe('inline');\n });\n\n it('is atomic', () => {\n expect(ExplicitConstructedResponseNode.atom).toBe(true);\n });\n });\n\n describe('addAttributes', () => {\n it('returns required attributes', () => {\n const attributes = ExplicitConstructedResponseNode.addAttributes();\n\n expect(attributes).toHaveProperty('index');\n expect(attributes).toHaveProperty('value');\n expect(attributes).toHaveProperty('updated');\n\n expect(attributes.index).toEqual({ default: null });\n expect(attributes.value).toEqual({ default: '' });\n expect(attributes.updated).toEqual({ default: '' });\n });\n });\n\n describe('parseHTML', () => {\n it('returns parsing rules', () => {\n const rules = ExplicitConstructedResponseNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag');\n });\n });\n\n describe('renderHTML', () => {\n it('renders span with attributes', () => {\n const result = ExplicitConstructedResponseNode.renderHTML({\n HTMLAttributes: {\n index: '1',\n id: '1',\n value: 'test',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-type', 'explicit_constructed_response');\n });\n });\n\n describe('addNodeView', () => {\n it('returns ReactNodeViewRenderer result', () => {\n const result = ExplicitConstructedResponseNode.addNodeView();\n\n expect(result).toBeDefined();\n });\n });\n});\n\ndescribe('DragInTheBlankNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(DragInTheBlankNode.name).toBe('drag_in_the_blank');\n });\n\n it('is inline', () => {\n expect(DragInTheBlankNode.inline).toBe(true);\n });\n\n it('is in inline group', () => {\n expect(DragInTheBlankNode.group).toBe('inline');\n });\n\n it('is atomic', () => {\n expect(DragInTheBlankNode.atom).toBe(true);\n });\n });\n\n describe('addAttributes', () => {\n it('returns required attributes', () => {\n const attributes = DragInTheBlankNode.addAttributes();\n\n expect(attributes).toHaveProperty('index');\n expect(attributes).toHaveProperty('id');\n expect(attributes).toHaveProperty('value');\n expect(attributes).toHaveProperty('inTable');\n expect(attributes).toHaveProperty('updated');\n\n expect(attributes.index).toEqual({ default: null });\n expect(attributes.id).toEqual({ default: null });\n expect(attributes.value).toEqual({ default: '' });\n expect(attributes.inTable).toEqual({ default: null });\n expect(attributes.updated).toEqual({ default: '' });\n });\n });\n\n describe('parseHTML', () => {\n it('returns parsing rules', () => {\n const rules = DragInTheBlankNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag');\n });\n });\n\n describe('renderHTML', () => {\n it('renders span with attributes', () => {\n const result = DragInTheBlankNode.renderHTML({\n HTMLAttributes: {\n index: '1',\n id: '1',\n value: 'test',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-type', 'drag_in_the_blank');\n });\n });\n\n describe('addNodeView', () => {\n it('returns ReactNodeViewRenderer result', () => {\n const result = DragInTheBlankNode.addNodeView();\n\n expect(result).toBeDefined();\n });\n });\n});\n\ndescribe('InlineDropdownNode', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(InlineDropdownNode.name).toBe('inline_dropdown');\n });\n\n it('is inline', () => {\n expect(InlineDropdownNode.inline).toBe(true);\n });\n\n it('is in inline group', () => {\n expect(InlineDropdownNode.group).toBe('inline');\n });\n\n it('is atomic', () => {\n expect(InlineDropdownNode.atom).toBe(true);\n });\n });\n\n describe('addAttributes', () => {\n it('returns required attributes', () => {\n const attributes = InlineDropdownNode.addAttributes();\n\n expect(attributes).toHaveProperty('index');\n expect(attributes).toHaveProperty('value');\n expect(attributes).toHaveProperty('updated');\n\n expect(attributes.index).toEqual({ default: null });\n expect(attributes.value).toEqual({ default: '' });\n expect(attributes.updated).toEqual({ default: '' });\n });\n });\n\n describe('parseHTML', () => {\n it('returns parsing rules', () => {\n const rules = InlineDropdownNode.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag');\n });\n });\n\n describe('renderHTML', () => {\n it('renders span with attributes', () => {\n const result = InlineDropdownNode.renderHTML({\n HTMLAttributes: {\n index: '1',\n id: '1',\n value: 'test',\n },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toHaveProperty('data-type', 'inline_dropdown');\n });\n });\n\n describe('addNodeView', () => {\n it('returns ReactNodeViewRenderer result', () => {\n const result = InlineDropdownNode.addNodeView();\n\n expect(result).toBeDefined();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _helper = require("../helper");
|
|
4
|
-
describe('normalizeInitialMarkup', function () {
|
|
5
|
-
describe('basic normalization', function () {
|
|
6
|
-
it('returns empty div for empty string', function () {
|
|
7
|
-
expect((0, _helper.normalizeInitialMarkup)('')).toBe('<div></div>');
|
|
8
|
-
});
|
|
9
|
-
it('returns empty div for null', function () {
|
|
10
|
-
expect((0, _helper.normalizeInitialMarkup)(null)).toBe('<div></div>');
|
|
11
|
-
});
|
|
12
|
-
it('returns empty div for undefined', function () {
|
|
13
|
-
expect((0, _helper.normalizeInitialMarkup)(undefined)).toBe('<div></div>');
|
|
14
|
-
});
|
|
15
|
-
it('wraps plain text in div', function () {
|
|
16
|
-
expect((0, _helper.normalizeInitialMarkup)('Hello')).toBe('<div>Hello</div>');
|
|
17
|
-
});
|
|
18
|
-
it('returns HTML tags as-is when detected as HTML', function () {
|
|
19
|
-
// Since '<script>' matches the HTML pattern, it's returned as-is
|
|
20
|
-
// To be escaped, it would need to not match the HTML pattern
|
|
21
|
-
expect((0, _helper.normalizeInitialMarkup)('<script>')).toBe('<script>');
|
|
22
|
-
});
|
|
23
|
-
it('escapes HTML entities in plain text', function () {
|
|
24
|
-
// Plain text without angle brackets gets escaped
|
|
25
|
-
expect((0, _helper.normalizeInitialMarkup)('Hello & World')).toBe('<div>Hello & World</div>');
|
|
26
|
-
});
|
|
27
|
-
it('returns single div as-is', function () {
|
|
28
|
-
var html = '<div>Hello</div>';
|
|
29
|
-
expect((0, _helper.normalizeInitialMarkup)(html)).toBe(html);
|
|
30
|
-
});
|
|
31
|
-
it('returns paragraph as-is', function () {
|
|
32
|
-
var html = '<p>Hello</p>';
|
|
33
|
-
expect((0, _helper.normalizeInitialMarkup)(html)).toBe(html);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
describe('consecutive divs to paragraph conversion', function () {
|
|
37
|
-
it('converts two consecutive divs to paragraph with br', function () {
|
|
38
|
-
var input = '<div>A</div><div>B</div>';
|
|
39
|
-
var expected = '<p>A<br>B</p>';
|
|
40
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
41
|
-
});
|
|
42
|
-
it('converts three consecutive divs to paragraph with br tags', function () {
|
|
43
|
-
var input = '<div>A</div><div>B</div><div>C</div>';
|
|
44
|
-
var expected = '<p>A<br>B<br>C</p>';
|
|
45
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
46
|
-
});
|
|
47
|
-
it('handles divs with whitespace', function () {
|
|
48
|
-
var input = '<div> A </div><div> B </div>';
|
|
49
|
-
var expected = '<p> A <br> B </p>';
|
|
50
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
51
|
-
});
|
|
52
|
-
it('handles divs with inline elements', function () {
|
|
53
|
-
var input = '<div><strong>A</strong></div><div><em>B</em></div>';
|
|
54
|
-
var expected = '<p><strong>A</strong><br><em>B</em></p>';
|
|
55
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
56
|
-
});
|
|
57
|
-
it('handles empty divs', function () {
|
|
58
|
-
var input = '<div></div><div>B</div>';
|
|
59
|
-
var expected = '<p><br>B</p>';
|
|
60
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
61
|
-
});
|
|
62
|
-
it('preserves existing br tags within divs', function () {
|
|
63
|
-
var input = '<div>A<br>A2</div><div>B</div>';
|
|
64
|
-
var expected = '<p>A<br>A2<br>B</p>';
|
|
65
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('cases that should NOT convert', function () {
|
|
69
|
-
it('does not convert single div', function () {
|
|
70
|
-
var input = '<div>Hello</div>';
|
|
71
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
72
|
-
});
|
|
73
|
-
it('does not convert divs with nested block elements', function () {
|
|
74
|
-
var input = '<div><div>Nested</div></div><div>B</div>';
|
|
75
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
76
|
-
});
|
|
77
|
-
it('does not convert divs containing tables', function () {
|
|
78
|
-
var input = '<div><table><tr><td>A</td></tr></table></div><div>B</div>';
|
|
79
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
80
|
-
});
|
|
81
|
-
it('does not convert divs containing lists', function () {
|
|
82
|
-
var input = '<div><ul><li>Item</li></ul></div><div>B</div>';
|
|
83
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
84
|
-
});
|
|
85
|
-
it('does not convert mixed element types', function () {
|
|
86
|
-
var input = '<div>A</div><p>B</p>';
|
|
87
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
88
|
-
});
|
|
89
|
-
it('does not convert paragraphs', function () {
|
|
90
|
-
var input = '<p>A</p><p>B</p>';
|
|
91
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
describe('edge cases', function () {
|
|
95
|
-
it('handles divs with attributes', function () {
|
|
96
|
-
var input = '<div class="test">A</div><div>B</div>';
|
|
97
|
-
// Should not convert since we only want simple divs
|
|
98
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(input);
|
|
99
|
-
});
|
|
100
|
-
it('handles complex inline formatting', function () {
|
|
101
|
-
var input = '<div><strong><em>A</em></strong></div><div><u>B</u></div>';
|
|
102
|
-
var expected = '<p><strong><em>A</em></strong><br><u>B</u></p>';
|
|
103
|
-
expect((0, _helper.normalizeInitialMarkup)(input)).toBe(expected);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
//# sourceMappingURL=helper.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helper.test.js","names":["_helper","require","describe","it","expect","normalizeInitialMarkup","toBe","undefined","html","input","expected"],"sources":["../../../src/utils/__tests__/helper.test.js"],"sourcesContent":["import { normalizeInitialMarkup } from '../helper';\n\ndescribe('normalizeInitialMarkup', () => {\n describe('basic normalization', () => {\n it('returns empty div for empty string', () => {\n expect(normalizeInitialMarkup('')).toBe('<div></div>');\n });\n\n it('returns empty div for null', () => {\n expect(normalizeInitialMarkup(null)).toBe('<div></div>');\n });\n\n it('returns empty div for undefined', () => {\n expect(normalizeInitialMarkup(undefined)).toBe('<div></div>');\n });\n\n it('wraps plain text in div', () => {\n expect(normalizeInitialMarkup('Hello')).toBe('<div>Hello</div>');\n });\n\n it('returns HTML tags as-is when detected as HTML', () => {\n // Since '<script>' matches the HTML pattern, it's returned as-is\n // To be escaped, it would need to not match the HTML pattern\n expect(normalizeInitialMarkup('<script>')).toBe('<script>');\n });\n\n it('escapes HTML entities in plain text', () => {\n // Plain text without angle brackets gets escaped\n expect(normalizeInitialMarkup('Hello & World')).toBe('<div>Hello & World</div>');\n });\n\n it('returns single div as-is', () => {\n const html = '<div>Hello</div>';\n expect(normalizeInitialMarkup(html)).toBe(html);\n });\n\n it('returns paragraph as-is', () => {\n const html = '<p>Hello</p>';\n expect(normalizeInitialMarkup(html)).toBe(html);\n });\n });\n\n describe('consecutive divs to paragraph conversion', () => {\n it('converts two consecutive divs to paragraph with br', () => {\n const input = '<div>A</div><div>B</div>';\n const expected = '<p>A<br>B</p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n\n it('converts three consecutive divs to paragraph with br tags', () => {\n const input = '<div>A</div><div>B</div><div>C</div>';\n const expected = '<p>A<br>B<br>C</p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n\n it('handles divs with whitespace', () => {\n const input = '<div> A </div><div> B </div>';\n const expected = '<p> A <br> B </p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n\n it('handles divs with inline elements', () => {\n const input = '<div><strong>A</strong></div><div><em>B</em></div>';\n const expected = '<p><strong>A</strong><br><em>B</em></p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n\n it('handles empty divs', () => {\n const input = '<div></div><div>B</div>';\n const expected = '<p><br>B</p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n\n it('preserves existing br tags within divs', () => {\n const input = '<div>A<br>A2</div><div>B</div>';\n const expected = '<p>A<br>A2<br>B</p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n });\n\n describe('cases that should NOT convert', () => {\n it('does not convert single div', () => {\n const input = '<div>Hello</div>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('does not convert divs with nested block elements', () => {\n const input = '<div><div>Nested</div></div><div>B</div>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('does not convert divs containing tables', () => {\n const input = '<div><table><tr><td>A</td></tr></table></div><div>B</div>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('does not convert divs containing lists', () => {\n const input = '<div><ul><li>Item</li></ul></div><div>B</div>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('does not convert mixed element types', () => {\n const input = '<div>A</div><p>B</p>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('does not convert paragraphs', () => {\n const input = '<p>A</p><p>B</p>';\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n });\n\n describe('edge cases', () => {\n it('handles divs with attributes', () => {\n const input = '<div class=\"test\">A</div><div>B</div>';\n // Should not convert since we only want simple divs\n expect(normalizeInitialMarkup(input)).toBe(input);\n });\n\n it('handles complex inline formatting', () => {\n const input = '<div><strong><em>A</em></strong></div><div><u>B</u></div>';\n const expected = '<p><strong><em>A</em></strong><br><u>B</u></p>';\n expect(normalizeInitialMarkup(input)).toBe(expected);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _toolbar = require("../toolbar");
|
|
4
|
-
describe('setToolbarOpened', function () {
|
|
5
|
-
var createEditor = function createEditor() {
|
|
6
|
-
var toolbarOpened = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
7
|
-
var tr = {
|
|
8
|
-
setMeta: jest.fn().mockReturnThis()
|
|
9
|
-
};
|
|
10
|
-
return {
|
|
11
|
-
_toolbarOpened: toolbarOpened,
|
|
12
|
-
state: {
|
|
13
|
-
tr: tr
|
|
14
|
-
},
|
|
15
|
-
view: {
|
|
16
|
-
dispatch: jest.fn()
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
it('sets editor._toolbarOpened and dispatches a meta transaction', function () {
|
|
21
|
-
var editor = createEditor(false);
|
|
22
|
-
(0, _toolbar.setToolbarOpened)(editor, true);
|
|
23
|
-
expect(editor._toolbarOpened).toBe(true);
|
|
24
|
-
expect(editor.state.tr.setMeta).toHaveBeenCalledWith(_toolbar.TOOLBAR_OPENED_META_KEY, true);
|
|
25
|
-
expect(editor.view.dispatch).toHaveBeenCalledWith(editor.state.tr);
|
|
26
|
-
});
|
|
27
|
-
it('does nothing when the value is unchanged', function () {
|
|
28
|
-
var editor = createEditor(true);
|
|
29
|
-
(0, _toolbar.setToolbarOpened)(editor, true);
|
|
30
|
-
expect(editor.view.dispatch).not.toHaveBeenCalled();
|
|
31
|
-
});
|
|
32
|
-
it('coerces the opened value to a boolean', function () {
|
|
33
|
-
var editor = createEditor(false);
|
|
34
|
-
(0, _toolbar.setToolbarOpened)(editor, 1);
|
|
35
|
-
expect(editor._toolbarOpened).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
//# sourceMappingURL=toolbar.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar.test.js","names":["_toolbar","require","describe","createEditor","toolbarOpened","arguments","length","undefined","tr","setMeta","jest","fn","mockReturnThis","_toolbarOpened","state","view","dispatch","it","editor","setToolbarOpened","expect","toBe","toHaveBeenCalledWith","TOOLBAR_OPENED_META_KEY","not","toHaveBeenCalled"],"sources":["../../../src/utils/__tests__/toolbar.test.js"],"sourcesContent":["import { setToolbarOpened, TOOLBAR_OPENED_META_KEY } from '../toolbar';\n\ndescribe('setToolbarOpened', () => {\n const createEditor = (toolbarOpened = false) => {\n const tr = {\n setMeta: jest.fn().mockReturnThis(),\n };\n\n return {\n _toolbarOpened: toolbarOpened,\n state: { tr },\n view: {\n dispatch: jest.fn(),\n },\n };\n };\n\n it('sets editor._toolbarOpened and dispatches a meta transaction', () => {\n const editor = createEditor(false);\n\n setToolbarOpened(editor, true);\n\n expect(editor._toolbarOpened).toBe(true);\n expect(editor.state.tr.setMeta).toHaveBeenCalledWith(TOOLBAR_OPENED_META_KEY, true);\n expect(editor.view.dispatch).toHaveBeenCalledWith(editor.state.tr);\n });\n\n it('does nothing when the value is unchanged', () => {\n const editor = createEditor(true);\n\n setToolbarOpened(editor, true);\n\n expect(editor.view.dispatch).not.toHaveBeenCalled();\n });\n\n it('coerces the opened value to a boolean', () => {\n const editor = createEditor(false);\n\n setToolbarOpened(editor, 1);\n\n expect(editor._toolbarOpened).toBe(true);\n });\n});\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEAC,QAAQ,CAAC,kBAAkB,EAAE,YAAM;EACjC,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAA8B;IAAA,IAA1BC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACzC,IAAMG,EAAE,GAAG;MACTC,OAAO,EAAEC,IAAI,CAACC,EAAE,CAAC,CAAC,CAACC,cAAc,CAAC;IACpC,CAAC;IAED,OAAO;MACLC,cAAc,EAAET,aAAa;MAC7BU,KAAK,EAAE;QAAEN,EAAE,EAAFA;MAAG,CAAC;MACbO,IAAI,EAAE;QACJC,QAAQ,EAAEN,IAAI,CAACC,EAAE,CAAC;MACpB;IACF,CAAC;EACH,CAAC;EAEDM,EAAE,CAAC,8DAA8D,EAAE,YAAM;IACvE,IAAMC,MAAM,GAAGf,YAAY,CAAC,KAAK,CAAC;IAElC,IAAAgB,yBAAgB,EAACD,MAAM,EAAE,IAAI,CAAC;IAE9BE,MAAM,CAACF,MAAM,CAACL,cAAc,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;IACxCD,MAAM,CAACF,MAAM,CAACJ,KAAK,CAACN,EAAE,CAACC,OAAO,CAAC,CAACa,oBAAoB,CAACC,gCAAuB,EAAE,IAAI,CAAC;IACnFH,MAAM,CAACF,MAAM,CAACH,IAAI,CAACC,QAAQ,CAAC,CAACM,oBAAoB,CAACJ,MAAM,CAACJ,KAAK,CAACN,EAAE,CAAC;EACpE,CAAC,CAAC;EAEFS,EAAE,CAAC,0CAA0C,EAAE,YAAM;IACnD,IAAMC,MAAM,GAAGf,YAAY,CAAC,IAAI,CAAC;IAEjC,IAAAgB,yBAAgB,EAACD,MAAM,EAAE,IAAI,CAAC;IAE9BE,MAAM,CAACF,MAAM,CAACH,IAAI,CAACC,QAAQ,CAAC,CAACQ,GAAG,CAACC,gBAAgB,CAAC,CAAC;EACrD,CAAC,CAAC;EAEFR,EAAE,CAAC,uCAAuC,EAAE,YAAM;IAChD,IAAMC,MAAM,GAAGf,YAAY,CAAC,KAAK,CAAC;IAElC,IAAAgB,yBAAgB,EAACD,MAAM,EAAE,CAAC,CAAC;IAE3BE,MAAM,CAACF,MAAM,CAACL,cAAc,CAAC,CAACQ,IAAI,CAAC,IAAI,CAAC;EAC1C,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|