Back to Plate

TipTap Test-Name Index

docs/editor-test-harvester/tiptap/test-index.md

53.0.698.3 KB
Original Source

TipTap Test-Name Index

target: ../tiptap generated: 2026-05-10

../tiptap/demos/src/Commands/Cut/React/index.spec.js

  • L10: should apply the paragraph style when the keyboard shortcut is pressed

../tiptap/demos/src/Commands/InsertContent/React/index.spec.js

  • L7: should insert html content correctly
  • L17: should keep spaces inbetween tags in html content
  • L24: should keep empty spaces
  • L31: should insert text content correctly
  • L41: should keep newlines in pre tag
  • L48: should keep newlines and tabs
  • L55: should keep newlines and tabs
  • L62: should allow inserting nothing
  • L69: should allow inserting a partial HTML tag
  • L76: should allow inserting an incomplete HTML tag
  • L83: should allow inserting a list
  • L90: should remove newlines and tabs when parseOptions.preserveWhitespace=false
  • L99: should split content when image is inserted inbetween text
  • L111: should not split content when image is inserted at beginning of text
  • L122: should respect editor.options.parseOptions if defined to be false
  • L130: should respect editor.options.parseOptions if defined to be full
  • L138: should respect editor.options.parseOptions if defined to be true

../tiptap/demos/src/Commands/InsertContentApplyingRules/React/index.spec.js

  • L12: should apply list InputRule
  • L26: should apply markdown using a PasteRule

../tiptap/demos/src/Commands/SetContent/React/index.spec.js

  • L10: should insert raw text content
  • L17: should insert raw JSON content
  • L24: should insert a Prosemirror Node as content
  • L31: should insert a Prosemirror Fragment as content
  • L41: should emit updates
  • L61: should insert more complex html content
  • L73: should remove newlines and tabs
  • L80: should keep newlines and tabs when preserveWhitespace = full
  • L89: should overwrite existing content
  • L104: should insert mentions
  • L114: should remove newlines and tabs between html fragments
  • L123: should keep newlines and tabs between html fragments when preserveWhitespace = full
  • L134: should allow inserting nothing
  • L141: should allow inserting nothing when preserveWhitespace = full
  • L148: should allow inserting a partial HTML tag
  • L155: should allow inserting a partial HTML tag when preserveWhitespace = full
  • L162: will remove an incomplete HTML tag
  • L171: should allow inserting an incomplete HTML tag when preserveWhitespace = full
  • L178: should allow inserting a list
  • L185: should allow inserting a list when preserveWhitespace = full
  • L192: should remove newlines and tabs when parseOptions.preserveWhitespace=false

../tiptap/demos/src/Demos/CollaborationSplitPane/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a ydoc

../tiptap/demos/src/Demos/SingleRoomCollab/React/index.spec.js

  • L6: should show the current room with participants
  • L13: should allow user to change name

../tiptap/demos/src/Examples/Accessibility/React/index.spec.js

  • L28: should autolink ${rawTextInput}
  • L35: should not autolink ${rawTextInput}
  • L41: should not relink unset links after entering second link
  • L50: should not relink unset links after hitting next paragraph
  • L59: should not relink unset links after modifying
  • L69: should autolink after hitting enter (new paragraph)
  • L75: should autolink after hitting shift-enter (hardbreak)

../tiptap/demos/src/Examples/AutolinkValidation/React/index.spec.js

  • L28: should autolink ${rawTextInput}
  • L35: should not autolink ${rawTextInput}
  • L41: should not relink unset links after entering second link
  • L50: should not relink unset links after hitting next paragraph
  • L59: should not relink unset links after modifying
  • L69: should autolink after hitting enter (new paragraph)
  • L75: should autolink after hitting shift-enter (hardbreak)

../tiptap/demos/src/Examples/AutolinkValidation/Vue/index.spec.js

  • L28: should autolink ${rawTextInput}
  • L35: should not autolink ${rawTextInput}

../tiptap/demos/src/Examples/Book/React/index.spec.js

  • L6: should have a working tiptap instance

../tiptap/demos/src/Examples/Book/Vue/index.spec.js

  • L6: should have a working tiptap instance

../tiptap/demos/src/Examples/CSSModules/React/index.spec.js

  • L6: should apply a randomly generated class that adds padding and background color to the toolbar

../tiptap/demos/src/Examples/CSSModules/Vue/index.spec.js

  • L6: should apply a randomly generated class that adds padding and background color to the toolbar

../tiptap/demos/src/Examples/CodeBlockLanguage/React/index.spec.js

  • L6: should have hljs classes for syntax highlighting
  • L12: should have different count of hljs classes after switching language

../tiptap/demos/src/Examples/CodeBlockLanguage/Vue/index.spec.js

  • L6: should have hljs classes for syntax highlighting
  • L12: should have different count of hljs classes after switching language

../tiptap/demos/src/Examples/CollaborativeEditing/React/index.spec.js

  • L6: should show the current room with participants
  • L13: should allow user to change name

../tiptap/demos/src/Examples/CollaborativeEditing/Vue/index.spec.js

  • L6: should show the current room with participants
  • L13: should allow user to change name

../tiptap/demos/src/Examples/Community/React/index.spec.js

  • L6: should count the characters correctly
  • L19: should mention a user

../tiptap/demos/src/Examples/Community/Vue/index.spec.js

  • L6: should count the characters correctly
  • L19: should mention a user

../tiptap/demos/src/Examples/CustomDocument/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a headline and a paragraph
  • L20: should have a tooltip for a paragraph on a new line
  • L27: should have a headline after clearing the document
  • L36: should have a headline after clearing the document & enter paragraph automatically after adding a headline

../tiptap/demos/src/Examples/CustomDocument/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a headline and a paragraph
  • L20: should have a tooltip for a paragraph on a new line
  • L27: should have a headline after clearing the document
  • L37: should have a headline after clearing the document & enter paragraph automatically after adding a headline

../tiptap/demos/src/Examples/CustomParagraph/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a paragraph and text length
  • L20: should have new paragraph

../tiptap/demos/src/Examples/CustomParagraph/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a paragraph and text length
  • L20: should have new paragraph

../tiptap/demos/src/Examples/Default/React/index.spec.js

  • L11: should apply the paragraph style when the keyboard shortcut is pressed
  • L26: should disable bold, italic, strike when the code tag is enabled for cursor
  • L34: should enable bold, italic, strike when the code tag is disabled for cursor
  • L43: should disable bold, italic, strike when the code tag is enabled for selection
  • L52: should enable bold, italic, strike when the code tag is disabled for selection
  • L61: should apply bold, italic, strike when the button is pressed
  • L71: should clear marks when the button is pressed
  • L81: should clear nodes when the button is pressed
  • L104: should set the correct type when the button is pressed
  • L116: should add a hr when on the same line as a node
  • L123: should add a hr when on a new line
  • L130: should add a br
  • L136: should undo
  • L152: should redo

../tiptap/demos/src/Examples/Default/Svelte/index.spec.js

  • L11: should apply the paragraph style when the keyboard shortcut is pressed
  • L26: should disable bold, italic, strike when the code tag is enabled for cursor
  • L34: should enable bold, italic, strike when the code tag is disabled for cursor
  • L43: should disable bold, italic, strike when the code tag is enabled for selection
  • L52: should enable bold, italic, strike when the code tag is disabled for selection
  • L61: should apply bold, italic, strike when the button is pressed
  • L71: should clear marks when the button is pressed
  • L81: should clear nodes when the button is pressed
  • L104: should set the correct type when the button is pressed
  • L116: should add a hr when on the same line as a node
  • L123: should add a hr when on a new line
  • L130: should add a br
  • L136: should undo
  • L152: should redo

../tiptap/demos/src/Examples/Default/Vue/index.spec.js

  • L13: should apply the paragraph style when the keyboard shortcut is pressed
  • L29: should apply ${m.label} when the button is pressed
  • L38: should clear marks when the button is pressed
  • L48: should clear nodes when the button is pressed
  • L72: should set ${n.label} when the button is pressed
  • L83: should add a hr when on the same line as a node
  • L90: should add a hr when on a new line
  • L97: should add a br
  • L103: should undo
  • L119: should redo

../tiptap/demos/src/Examples/Drawing/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a svg canvas
  • L17: should draw on the svg canvas

../tiptap/demos/src/Examples/EnterShortcuts/React/index.spec.js

  • L11: should update the hint html when the keyboard shortcut is pressed
  • L16: should update the hint html when the keyboard shortcut is pressed
  • L21: should update the hint html when the keyboard shortcut is pressed

../tiptap/demos/src/Examples/EnterShortcuts/Vue/index.spec.js

  • L9: should update the hint html when the keyboard shortcut is pressed
  • L14: should update the hint html when the keyboard shortcut is pressed
  • L19: should update the hint html when the keyboard shortcut is pressed

../tiptap/demos/src/Examples/Formatting/React/index.spec.js

  • L13: sets ${m.label}
  • L28: sets ${a.label}

../tiptap/demos/src/Examples/Formatting/Vue/index.spec.js

  • L13: sets ${m.label}
  • L28: sets ${a.label}

../tiptap/demos/src/Examples/Images/React/index.spec.js

  • L6: finds image elements inside editor
  • L10: allows removing images
  • L19: allows images to be added via URL

../tiptap/demos/src/Examples/Images/Vue/index.spec.js

  • L7: finds image elements inside editor
  • L11: allows removing images
  • L20: allows images to be added via URL

../tiptap/demos/src/Examples/InteractivityComponent/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should render a custom node
  • L17: should handle count click inside custom node

../tiptap/demos/src/Examples/InteractivityComponent/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should render a custom node
  • L17: should handle count click inside custom node

../tiptap/demos/src/Examples/InteractivityComponentContent/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should render a custom node
  • L17: should allow text editing inside component
  • L25: should allow text editing inside component with markdown text
  • L35: should remove node via selectall

../tiptap/demos/src/Examples/InteractivityComponentContent/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should render a custom node
  • L17: should allow text editing inside component
  • L25: should allow text editing inside component with markdown text
  • L35: should remove node via selectall

../tiptap/demos/src/Examples/InteractivityComponentProvideInject/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should render a custom node
  • L17: should have global and all injected values

../tiptap/demos/src/Examples/JSX/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have paragraphs colored as red

../tiptap/demos/src/Examples/JSX/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have paragraphs colored as red

../tiptap/demos/src/Examples/MarkdownShortcuts/React/index.spec.js

  • L12: should make a h1
  • L16: should make a h2
  • L20: should make a h3
  • L24: should make a h4
  • L28: should make a h5
  • L32: should make a h6
  • L36: should create inline code
  • L40: should create a code block without language
  • L44: should create a bullet list from asteriks
  • L48: should create a bullet list from dashes
  • L52: should create a bullet list from pluses
  • L56: should create a ordered list
  • L60: should create a blockquote

../tiptap/demos/src/Examples/MarkdownShortcuts/Vue/index.spec.js

  • L12: should make a h1
  • L16: should make a h2
  • L20: should make a h3
  • L24: should make a h4
  • L28: should make a h5
  • L32: should make a h6
  • L36: should create inline code
  • L40: should create a code block without language
  • L44: should create a bullet list from asteriks
  • L48: should create a bullet list from dashes
  • L52: should create a bullet list from pluses
  • L56: should create a ordered list
  • L60: should create a blockquote

../tiptap/demos/src/Examples/Menus/React/index.spec.js

  • L12: should show menu when the editor is empty
  • L16: should show menu when text is selected
  • L38: should apply ${mark.button} correctly

../tiptap/demos/src/Examples/Menus/Vue/index.spec.js

  • L12: should show menu when the editor is empty
  • L16: should show menu when text is selected
  • L38: should apply ${mark.button} correctly

../tiptap/demos/src/Examples/Minimal/React/index.spec.js

  • L12: text should be wrapped in a paragraph by default
  • L16: should parse paragraphs correctly
  • L26: enter should make a new paragraph
  • L30: backspace should remove the last paragraph

../tiptap/demos/src/Examples/Minimal/Vue/index.spec.js

  • L12: text should be wrapped in a paragraph by default
  • L16: should parse paragraphs correctly
  • L26: enter should make a new paragraph
  • L30: backspace should remove the last paragraph

../tiptap/demos/src/Examples/MultiMention/React/index.spec.js

  • L6: Person mentions (@)
  • L7: should insert a person mention
  • L17: should open a dropdown menu when I type '@'
  • L22: should display the correct person options in the dropdown menu
  • L35: should insert Cyndi Lauper mention when clicking on her option
  • L46: should close the dropdown menu when I move the cursor outside the editor
  • L53: should close the dropdown menu when I press the escape key
  • L60: should insert Tom Cruise when selecting his option with the arrow keys and pressing the enter key
  • L73: should show a "No result" message when I search for a person that is not in the list
  • L79: should only show the Madonna option in the dropdown when I type "@mado"
  • L86: should insert Madonna when I type "@mado" and hit enter
  • L95: Movie mentions (#)
  • L96: should insert a movie mention
  • L108: should open a dropdown menu when I type '#'
  • L113: should display the correct movie options in the dropdown menu
  • L124: should insert Pirates of the Caribbean mention when clicking on its option
  • L135: should close the dropdown menu when I move the cursor outside the editor
  • L142: should close the dropdown menu when I press the escape key
  • L149: should insert The Matrix when selecting its option with the arrow keys and pressing the enter key
  • L162: should show a "No result" message when I search for a movie that is not in the list
  • L168: should only show the Dirty Dancing option in the dropdown when I type "#dir"
  • L175: should insert Dirty Dancing when I type "#dir" and hit enter
  • L184: Interaction between mention types
  • L185: should support both mention types in the same document
  • L202: should allow switching between mention types
  • L217: should insert both types of mentions in sequence

../tiptap/demos/src/Examples/NodePos/React/index.spec.js

  • L6: should get paragraphs
  • L14: should get list items
  • L22: should get bullet lists
  • L30: should get ordered lists
  • L38: should get blockquotes
  • L46: should get images
  • L54: should get first blockquote
  • L65: when querying by attribute
  • L66: should get square image
  • L75: should get landsape image
  • L84: should get all landscape images
  • L94: should get first landscape image with querySelectorAll
  • L103: should get portrait image inside blockquote
  • L113: should find complex nodes
  • L132: should not find nodes that do not exist in document

../tiptap/demos/src/Examples/Performance/React/index.spec.js

  • L6: should have a working tiptap instance

../tiptap/demos/src/Examples/ResizableImages/React/index.spec.js

  • L13: should add an img tag with the correct URL

../tiptap/demos/src/Examples/ResizableImages/Vue/index.spec.js

  • L13: should add an img tag with the correct URL

../tiptap/demos/src/Examples/Savvy/React/index.spec.js

  • L26: should parse ${test[0]} correctly
  • L31: should parse hex colors correctly

../tiptap/demos/src/Examples/Savvy/Vue/index.spec.js

  • L26: should parse ${test[0]} correctly
  • L31: should parse hex colors correctly

../tiptap/demos/src/Examples/StaticRendering/React/index.spec.js

  • L6: should have a working tiptap instance

../tiptap/demos/src/Examples/StaticRenderingAdvanced/React/index.spec.js

  • L6: should render the content as HTML

../tiptap/demos/src/Examples/Tables/React/index.spec.js

  • L13: adds a table with three columns and three rows
  • L23: adds & delete columns
  • L34: adds & delete rows
  • L45: should delete table
  • L50: should merge cells
  • L56: should split cells
  • L64: should toggle header columns
  • L71: should toggle header row
  • L78: should merge split
  • L86: should set cell attribute
  • L92: should move focus to next or prev cell

../tiptap/demos/src/Examples/Tables/Vue/index.spec.js

  • L13: adds a table with three columns and three rows
  • L23: adds & delete columns
  • L34: adds & delete rows
  • L45: should delete table
  • L50: should merge cells
  • L56: should split cells
  • L64: should toggle header columns
  • L71: should toggle header row
  • L78: should merge split
  • L86: should set cell attribute
  • L92: should move focus to next or prev cell

../tiptap/demos/src/Examples/Tasks/React/index.spec.js

  • L12: should always use task items
  • L16: should create new tasks
  • L21: should check and uncheck tasks on click

../tiptap/demos/src/Examples/Tasks/Vue/index.spec.js

  • L12: should always use task items
  • L16: should create new tasks
  • L21: should check and uncheck tasks on click

../tiptap/demos/src/Examples/TextDirection/React/index.spec.js

  • L6: should apply text direction attributes
  • L10: should change global direction
  • L15: should set direction on selection
  • L21: should unset direction

../tiptap/demos/src/Examples/Transition/Vue/index.spec.js

  • L6: should have two buttons and no active tiptap instance
  • L13: clicking the buttons should show two editors
  • L21: clicking the buttons again should hide the editors

../tiptap/demos/src/Experiments/CollaborationAnnotation/Vue/index.spec.js

  • L6: renders two editors
  • L14: sets an annotation in editor 1 and shows annotations in both editors
  • L25: updates an existing annotation
  • L55: deletes an existing annotation

../tiptap/demos/src/Experiments/Commands/Vue/index.spec.js

  • L12: should open a popup after typing a slash
  • L24: should close the popup without any command via esc
  • L31: should open the popup when the cursor is after a slash

../tiptap/demos/src/Experiments/IsolatingClear/React/index.spec.js

  • L13: should apply the paragraph style when the keyboard shortcut is pressed

../tiptap/demos/src/Extensions/BackgroundColor/React/index.spec.js

  • L13: should set the background color of the selected text
  • L19: should remove the background color of the selected text
  • L29: should change background color with color picker
  • L35: should match background color and color picker color values
  • L41: should preserve background color on new lines
  • L48: should unset background color on new lines after unset clicked

../tiptap/demos/src/Extensions/BackgroundColor/Vue/index.spec.js

  • L13: should set the background color of the selected text
  • L19: should remove the background color of the selected text
  • L29: should change background color with color picker
  • L35: should match background color and color picker color values
  • L41: should preserve background color on new lines
  • L48: should unset background color on new lines after unset clicked

../tiptap/demos/src/Extensions/Collaboration/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a ydoc

../tiptap/demos/src/Extensions/Collaboration/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a ydoc

../tiptap/demos/src/Extensions/CollaborationCaret/React/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a ydoc

../tiptap/demos/src/Extensions/CollaborationCaret/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have a ydoc

../tiptap/demos/src/Extensions/CollaborationWithMenus/React/index.spec.js

  • L7: should have a working tiptap instance
  • L14: should have menu plugins initiated
  • L25: should have a ydoc

../tiptap/demos/src/Extensions/CollaborationWithMenus/Vue/index.spec.js

  • L6: should have a working tiptap instance
  • L13: should have menu plugins initiated
  • L25: should have a ydoc

../tiptap/demos/src/Extensions/Color/React/index.spec.js

  • L13: should set the color of the selected text
  • L19: should remove the color of the selected text
  • L29: should change text color with color picker
  • L35: should match text and color picker color values
  • L41: should preserve color on new lines
  • L48: should unset color on new lines after unset clicked

../tiptap/demos/src/Extensions/Color/Vue/index.spec.js

  • L13: should set the color of the selected text
  • L19: should remove the color of the selected text
  • L29: should change text color with color picker
  • L35: should match text and color picker color values

../tiptap/demos/src/Extensions/FloatingMenu/React/index.spec.js

  • L6: should not render a floating menu on non-empty nodes
  • L15: should render a floating menu on empty nodes

../tiptap/demos/src/Extensions/Focus/React/index.spec.js

  • L6: should have class

../tiptap/demos/src/Extensions/Focus/Vue/index.spec.js

  • L6: should have class

../tiptap/demos/src/Extensions/FontFamily/React/index.spec.js

  • L13: should set the font-family of the selected text
  • L19: should remove the font-family of the selected text
  • L29: should allow CSS variables as a font-family
  • L38: should allow fonts containing multiple font families
  • L47: should allow fonts containing a space and number as a font-family

../tiptap/demos/src/Extensions/FontSize/React/index.spec.js

  • L13: should set the font-size of the selected text
  • L19: should remove the font-size of the selected text

../tiptap/demos/src/Extensions/FontSize/Vue/index.spec.js

  • L13: should set the font-size of the selected text
  • L19: should remove the font-size of the selected text

../tiptap/demos/src/Extensions/InvisibleCharacters/React/index.spec.js

  • L6: should have invisible characters

../tiptap/demos/src/Extensions/InvisibleCharacters/Vue/index.spec.js

  • L6: should have invisible characters

../tiptap/demos/src/Extensions/LineHeight/React/index.spec.js

  • L13: should set line-height 1.5 for the selected text
  • L19: should set line-height 2.0 for the selected text
  • L25: should set line-height 4.0 for the selected text
  • L31: should remove the line-height of the selected text

../tiptap/demos/src/Extensions/LineHeight/Vue/index.spec.js

  • L13: should set line-height 1.5 for the selected text
  • L19: should set line-height 2.0 for the selected text
  • L25: should set line-height 4.0 for the selected text
  • L31: should remove the line-height of the selected text

../tiptap/demos/src/Extensions/Mathematics/React/index.spec.js

  • L6: should include katex-rendered inline and block nodes

../tiptap/demos/src/Extensions/Mathematics/Vue/index.spec.js

  • L6: should include katex-rendered inline and block nodes

../tiptap/demos/src/Extensions/Selection/React/index.spec.js

  • L6: should have class

../tiptap/demos/src/Extensions/Selection/Vue/index.spec.js

  • L6: should have class

../tiptap/demos/src/Extensions/TextAlign/React/index.spec.js

  • L12: should parse a null alignment correctly
  • L19: should parse left align text correctly
  • L26: should parse center align text correctly
  • L33: should parse right align text correctly
  • L40: should parse left justify text correctly
  • L47: should keep the text aligned when toggling headings
  • L62: aligns the text left on the 1st button
  • L68: aligns the text center on the 2nd button
  • L74: aligns the text right on the 3rd button
  • L80: aligns the text justified on the 4th button
  • L86: aligns the text default on the 5th button
  • L92: toggle the text to right on the 6th button
  • L100: aligns the text left when pressing the keyboard shortcut
  • L107: aligns the text center when pressing the keyboard shortcut
  • L114: aligns the text right when pressing the keyboard shortcut
  • L121: aligns the text justified when pressing the keyboard shortcut

../tiptap/demos/src/Extensions/TextAlign/Vue/index.spec.js

  • L12: should parse a null alignment correctly
  • L19: should parse left align text correctly (and not render)
  • L26: should parse center align text correctly
  • L33: should parse right align text correctly
  • L40: should parse left justify text correctly
  • L47: should keep the text aligned when toggling headings
  • L62: aligns the text left on the 1st button
  • L68: aligns the text center on the 2nd button
  • L74: aligns the text right on the 3rd button
  • L80: aligns the text justified on the 4th button
  • L86: aligns the text default on the 5th button
  • L92: toggle the text to right on the 6th button
  • L102: toggle the text to right on the 6th button
  • L112: aligns the text left when pressing the keyboard shortcut
  • L119: aligns the text center when pressing the keyboard shortcut
  • L126: aligns the text right when pressing the keyboard shortcut
  • L133: aligns the text justified when pressing the keyboard shortcut

../tiptap/demos/src/Extensions/Typography/React/index.spec.js

  • L12: should keep dates as they are
  • L16: should make a fraction only with spaces afterwards
  • L21: should make an em dash from two dashes
  • L25: should make an ellipsis from three dots
  • L29: should make a correct open double quote
  • L33: should make a correct close double quote
  • L37: should make a correct open single quote
  • L41: should make a correct close single quote
  • L45: should make a left arrow
  • L49: should make a right arrow
  • L53: should make a copyright sign
  • L57: should make a registered trademark sign
  • L61: should make a trademark sign
  • L65: should make a one half
  • L69: should make a plus/minus sign
  • L73: should make a not equal sign
  • L77: should make a laquo
  • L81: should make a raquo
  • L85: should make a multiplication sign from an asterisk
  • L89: should make a multiplication sign from an x
  • L93: should make a multiplication sign from an asterisk with spaces
  • L97: should make a multiplication sign from an x with spaces

../tiptap/demos/src/Extensions/Typography/Vue/index.spec.js

  • L12: should make an em dash from two dashes
  • L16: should make an ellipsis from three dots
  • L20: should make a correct open double quote
  • L24: should make a correct close double quote
  • L28: should make a correct open single quote
  • L32: should make a correct close single quote
  • L36: should make a left arrow
  • L40: should make a right arrow
  • L44: should make a copyright sign
  • L48: should make a registered trademark sign
  • L52: should make a trademark sign
  • L56: should make a one half
  • L60: should make a plus/minus sign
  • L64: should make a not equal sign
  • L68: should make a laquo
  • L72: should make a raquo
  • L76: should make a multiplication sign from an asterisk
  • L80: should make a multiplication sign from an x
  • L84: should make a multiplication sign from an asterisk with spaces
  • L88: should make a multiplication sign from an x with spaces

../tiptap/demos/src/Extensions/TypographyWithOverrides/React/index.spec.js

  • L12: should use correct override for rightArrow

../tiptap/demos/src/Extensions/TypographyWithOverrides/Vue/index.spec.js

  • L12: should use correct override for rightArrow

../tiptap/demos/src/Extensions/UndoRedo/React/index.spec.js

  • L9: should make the last change undone
  • L19: should make the last change undone with the keyboard shortcut
  • L25: should make the last change undone with the keyboard shortcut (russian)
  • L33: should apply the last undone change again with the keyboard shortcut
  • L43: should apply the last undone change again with the keyboard shortcut (russian)
  • L53: should apply the last undone change again
  • L69: should disable undo button when there are no more changes to undo
  • L79: should disable redo button when there are no more changes to redo

../tiptap/demos/src/Extensions/UndoRedo/Vue/index.spec.js

  • L9: should make the last change undone
  • L19: should make the last change undone with the keyboard shortcut
  • L25: should make the last change undone with the keyboard shortcut (russian)
  • L33: should apply the last undone change again with the keyboard shortcut
  • L43: should apply the last undone change again with the keyboard shortcut (russian)
  • L53: should apply the last undone change again
  • L69: should disable undo button when there are no more changes to undo
  • L79: should disable redo button when there are no more changes to redo

../tiptap/demos/src/Extensions/UniqueID/React/index.spec.js

  • L6: has a heading with an unique ID
  • L10: has a paragraph with an unique ID

../tiptap/demos/src/Extensions/UniqueID/Vue/index.spec.js

  • L6: has a heading with an unique ID
  • L10: has a paragraph with an unique ID

../tiptap/demos/src/Extensions/UniqueIDWithYdoc/React/index.spec.js

  • L6: has a heading with an unique ID
  • L10: has a paragraph with an unique ID

../tiptap/demos/src/GuideContent/ExportHTML/React/index.spec.js

  • L12: should return html

../tiptap/demos/src/GuideContent/ExportHTML/Vue/index.spec.js

  • L12: should return html

../tiptap/demos/src/GuideContent/ExportJSON/React/index.spec.js

  • L12: should return json

../tiptap/demos/src/GuideContent/ExportJSON/Vue/index.spec.js

  • L12: should return json

../tiptap/demos/src/GuideContent/GenerateHTML/React/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/GenerateHTML/Vue/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/GenerateJSON/React/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/GenerateJSON/Vue/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/ReadOnly/React/index.spec.js

  • L12: should be read-only
  • L23: should be editable

../tiptap/demos/src/GuideContent/ReadOnly/Vue/index.spec.js

  • L12: should be read-only
  • L21: should be editable

../tiptap/demos/src/GuideContent/StaticRenderHTML/React/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/StaticRenderHTML/Vue/index.spec.js

  • L6: should render the content as an HTML string

../tiptap/demos/src/GuideContent/StaticRenderReact/React/index.spec.js

  • L6: should render the content as HTML

../tiptap/demos/src/GuideMarkViews/ReactComponent/React/index.spec.js

  • L12: should show the markview
  • L16: should show the markview content in the markview
  • L21: should allow clicking the button
  • L33: should update the attributes of the mark on button click

../tiptap/demos/src/GuideMarkViews/VueComponent/Vue/index.spec.js

  • L12: should show the markview
  • L16: should allow clicking the button
  • L28: should update the attributes of the mark on button click

../tiptap/demos/src/Marks/Bold/React/index.spec.js

  • L13: should transform b tags to strong tags
  • L20: sould omit b tags with normal font weight inline style
  • L27: should transform any tag with bold inline style to strong tags
  • L43: the button should make the selected text bold
  • L49: the button should toggle the selected text bold
  • L56: should make the selected text bold when the keyboard shortcut is pressed
  • L60: should toggle the selected text bold when the keyboard shortcut is pressed
  • L68: should make a bold text from the default markdown shortcut
  • L72: should make a bold text from the alternative markdown shortcut

../tiptap/demos/src/Marks/Bold/Vue/index.spec.js

  • L13: should transform b tags to strong tags
  • L20: sould omit b tags with normal font weight inline style
  • L27: should transform any tag with bold inline style to strong tags
  • L43: the button should make the selected text bold
  • L49: the button should toggle the selected text bold
  • L56: should make the selected text bold when the keyboard shortcut is pressed
  • L60: should toggle the selected text bold when the keyboard shortcut is pressed
  • L68: should make a bold text from the default markdown shortcut
  • L72: should make a bold text from the alternative markdown shortcut

../tiptap/demos/src/Marks/Code/React/index.spec.js

  • L13: should parse code tags correctly
  • L23: should mark the selected text as inline code
  • L29: should toggle the selected text as inline code
  • L39: should make the selected text bold when the keyboard shortcut is pressed
  • L43: should toggle the selected text bold when the keyboard shortcut is pressed
  • L51: should make inline code from the markdown shortcut
  • L55: should not create inline code when using space
  • L59: should create code when closing with backtick

../tiptap/demos/src/Marks/Code/Vue/index.spec.js

  • L13: should parse code tags correctly
  • L23: should mark the selected text as inline code
  • L29: should toggle the selected text as inline code
  • L39: should make the selected text bold when the keyboard shortcut is pressed
  • L43: should toggle the selected text bold when the keyboard shortcut is pressed
  • L51: should make inline code from the markdown shortcut

../tiptap/demos/src/Marks/Highlight/React/index.spec.js

  • L12: the button should highlight the selected text
  • L18: should highlight the text in a specific color
  • L26: should update the attributes of existing marks
  • L39: should remove existing marks with the same attributes
  • L52: is active for mark with any attributes
  • L60: is active for mark with same attributes
  • L76: isn’t active for mark with other attributes
  • L92: the button should toggle the selected text highlighted
  • L102: should highlight the selected text when the keyboard shortcut is pressed
  • L109: should toggle the selected text highlighted when the keyboard shortcut is pressed

../tiptap/demos/src/Marks/Highlight/Vue/index.spec.js

  • L12: the button should highlight the selected text
  • L18: should highlight the text in a specific color
  • L26: should update the attributes of existing marks
  • L39: should remove existing marks with the same attributes
  • L52: is active for mark with any attributes
  • L60: is active for mark with same attributes
  • L76: isn’t active for mark with other attributes
  • L92: the button should toggle the selected text highlighted
  • L102: should highlight the selected text when the keyboard shortcut is pressed
  • L109: should toggle the selected text highlighted when the keyboard shortcut is pressed

../tiptap/demos/src/Marks/Italic/React/index.spec.js

  • L13: i tags should be transformed to em tags
  • L20: i tags with normal font style should be omitted
  • L27: generic tags with italic style should be transformed to strong tags
  • L34: the button should make the selected text italic
  • L40: the button should toggle the selected text italic
  • L50: the keyboard shortcut should make the selected text italic
  • L54: the keyboard shortcut should toggle the selected text italic

../tiptap/demos/src/Marks/Italic/Vue/index.spec.js

  • L13: i tags should be transformed to em tags
  • L20: i tags with normal font style should be omitted
  • L27: generic tags with italic style should be transformed to strong tags
  • L34: the button should make the selected text italic
  • L40: the button should toggle the selected text italic
  • L50: the keyboard shortcut should make the selected text italic
  • L54: the keyboard shortcut should toggle the selected text italic
  • L13: should parse a tags correctly
  • L22: should parse a tags with target attribute correctly
  • L31: should parse a tags with rel attribute correctly
  • L40: the button should add a link to the selected text
  • L55: should allow exiting the link once set
  • L64: detects autolinking
  • L72: detects autolinking with numbers
  • L80: uses the default protocol
  • L88: uses a non-default protocol if present
  • L96: detects a pasted URL within a text
  • L107: detects a pasted URL
  • L116: detects a pasted URL with query params
  • L125: correctly detects multiple pasted URLs
  • L138: should not allow links with disallowed protocols
  • L149: should not allow links with disallowed domains
  • L160: should not auto-link a URL from a disallowed domain
  • L13: should parse a tags correctly
  • L22: should parse a tags with target attribute correctly
  • L31: should parse a tags with rel attribute correctly
  • L38: the button should add a link to the selected text
  • L53: detects a pasted URL within a text
  • L61: detects a pasted URL
  • L70: should allow exiting the link once set
  • L79: detects autolinking
  • L87: detects autolinking with numbers
  • L95: uses the default protocol
  • L103: uses a non-default protocol if present
  • L111: detects a pasted URL with query params
  • L120: correctly detects multiple pasted URLs

../tiptap/demos/src/Marks/Strike/React/index.spec.js

  • L13: should parse s tags correctly
  • L20: should transform del tags to s tags
  • L27: should transform strike tags to s tags
  • L34: should transform any tag with text decoration line through to s tags
  • L41: the button should strike the selected text
  • L47: the button should toggle the selected text striked
  • L57: should strike the selected text when the keyboard shortcut is pressed
  • L64: should toggle the selected text striked when the keyboard shortcut is pressed
  • L72: should make a striked text from the markdown shortcut

../tiptap/demos/src/Marks/Strike/Vue/index.spec.js

  • L13: should parse s tags correctly
  • L20: should transform del tags to s tags
  • L27: should transform strike tags to s tags
  • L34: should transform any tag with text decoration line through to s tags
  • L41: the button should strike the selected text
  • L47: the button should toggle the selected text striked
  • L57: should strike the selected text when the keyboard shortcut is pressed
  • L64: should toggle the selected text striked when the keyboard shortcut is pressed
  • L72: should make a striked text from the markdown shortcut

../tiptap/demos/src/Marks/Subscript/React/index.spec.js

  • L13: should transform inline style to sub tags
  • L20: sould omit inline style with a different vertical align
  • L27: the button should make the selected text bold
  • L33: the button should toggle the selected text bold

../tiptap/demos/src/Marks/Subscript/Vue/index.spec.js

  • L13: should transform inline style to sub tags
  • L20: sould omit inline style with a different vertical align
  • L27: the button should make the selected text bold
  • L33: the button should toggle the selected text bold

../tiptap/demos/src/Marks/Superscript/React/index.spec.js

  • L13: should transform inline style to sup tags
  • L20: sould omit inline style with a different vertical align
  • L27: the button should make the selected text bold
  • L33: the button should toggle the selected text bold

../tiptap/demos/src/Marks/Superscript/Vue/index.spec.js

  • L13: should transform inline style to sup tags
  • L20: sould omit inline style with a different vertical align
  • L27: the button should make the selected text bold
  • L33: the button should toggle the selected text bold

../tiptap/demos/src/Marks/TextStyle/React/index.spec.js

  • L6: mergeNestedSpanStyles
  • L7: should merge styles of a span with one child span
  • L13: should merge styles of a span with one nested child span into the descendant span
  • L19: should merge styles of a span with multiple child spans into all child spans
  • L28: should merge styles of descendant spans into each descendant span when the parent span has no style
  • L40: should merge styles of a span with nested root text and descendant spans into each descendant span
  • L55: should merge styles of descendant spans into each descendant span when the parent span has other tags

../tiptap/demos/src/Marks/TextStyle/Vue/index.spec.js

  • L6: mergeNestedSpanStyles
  • L7: should merge styles of a span with one child span
  • L13: should merge styles of a span with one nested child span into the descendant span
  • L19: should merge styles of a span with multiple child spans into all child spans
  • L28: should merge styles of descendant spans into each descendant span when the parent span has no style
  • L40: should merge styles of a span with nested root text and descendant spans into each descendant span
  • L55: should merge styles of descendant spans into each descendant span when the parent span has other tags

../tiptap/demos/src/Marks/Underline/React/index.spec.js

  • L13: should parse u tags correctly
  • L20: should transform any tag with text decoration underline to u tags
  • L27: the button should underline the selected text
  • L33: the button should toggle the selected text underline
  • L43: should underline the selected text when the keyboard shortcut is pressed
  • L47: should toggle the selected text underline when the keyboard shortcut is pressed

../tiptap/demos/src/Marks/Underline/Vue/index.spec.js

  • L13: should parse u tags correctly
  • L20: should transform any tag with text decoration underline to u tags
  • L27: the button should underline the selected text
  • L33: the button should toggle the selected text underline
  • L43: should underline the selected text when the keyboard shortcut is pressed
  • L47: should toggle the selected text underline when the keyboard shortcut is pressed

../tiptap/demos/src/Nodes/Blockquote/React/index.spec.js

  • L13: should parse blockquote tags correctly
  • L20: should parse blockquote tags without paragraphs correctly
  • L27: the button should make the selected line a blockquote
  • L35: the button should wrap all nodes in one blockquote
  • L46: the button should toggle the blockquote
  • L60: should make the selected line a blockquote when the keyboard shortcut is pressed
  • L67: should toggle the blockquote when the keyboard shortcut is pressed
  • L80: should make a blockquote from markdown shortcuts

../tiptap/demos/src/Nodes/Blockquote/Vue/index.spec.js

  • L13: should parse blockquote tags correctly
  • L20: should parse blockquote tags without paragraphs correctly
  • L27: the button should make the selected line a blockquote
  • L35: the button should wrap all nodes in one blockquote
  • L46: the button should toggle the blockquote
  • L60: should make the selected line a blockquote when the keyboard shortcut is pressed
  • L67: should toggle the blockquote when the keyboard shortcut is pressed
  • L80: should make a blockquote from markdown shortcuts

../tiptap/demos/src/Nodes/BulletList/React/index.spec.js

  • L13: should parse unordered lists correctly
  • L20: should parse unordered lists without paragraphs correctly
  • L27: the button should make the selected line a bullet list item
  • L39: the button should toggle the bullet list
  • L51: should leave the list with double enter
  • L63: should make the paragraph a bullet list keyboard shortcut is pressed
  • L70: should make a bullet list from an asterisk
  • L82: should make a bullet list from a dash
  • L94: should make a bullet list from a plus
  • L106: should remove the bullet list after pressing backspace

../tiptap/demos/src/Nodes/BulletList/Vue/index.spec.js

  • L13: should parse unordered lists correctly
  • L20: should parse unordered lists without paragraphs correctly
  • L27: the button should make the selected line a bullet list item
  • L39: the button should toggle the bullet list
  • L51: should leave the list with double enter
  • L63: should make the paragraph a bullet list keyboard shortcut is pressed
  • L70: should make a bullet list from an asterisk
  • L82: should make a bullet list from a dash
  • L94: should make a bullet list from a plus
  • L106: should remove the bullet list after pressing backspace

../tiptap/demos/src/Nodes/CodeBlock/React/index.spec.js

  • L13: should parse code blocks correctly
  • L20: should parse code blocks with language correctly
  • L27: the button should make the selected line a code block
  • L33: the button should toggle the code block
  • L45: the keyboard shortcut should make the selected line a code block
  • L52: the keyboard shortcut should toggle the code block
  • L63: should parse the language from a HTML code block
  • L71: should make a code block from backtick markdown shortcuts
  • L79: should make a code block from tilde markdown shortcuts
  • L87: should make a code block for js with backticks
  • L95: should make a code block for js with tildes
  • L103: should make a code block from backtick markdown shortcuts followed by enter
  • L111: reverts the markdown shortcut when pressing backspace
  • L121: removes the code block when pressing backspace
  • L133: removes the code block when pressing backspace, even with blank lines
  • L145: removes the code block when pressing backspace, even at start of document

../tiptap/demos/src/Nodes/CodeBlock/Vue/index.spec.js

  • L13: should parse code blocks correctly
  • L20: should parse code blocks with language correctly
  • L27: the button should make the selected line a code block
  • L33: the button should toggle the code block
  • L45: the keyboard shortcut should make the selected line a code block
  • L52: the keyboard shortcut should toggle the code block
  • L63: should parse the language from a HTML code block
  • L71: should make a code block from backtick markdown shortcuts
  • L79: should make a code block from tilde markdown shortcuts
  • L87: should make a code block for js with backticks
  • L95: should make a code block for js with tildes
  • L103: should make a code block from backtick markdown shortcuts followed by enter
  • L111: reverts the markdown shortcut when pressing backspace
  • L121: removes the code block when pressing backspace
  • L133: removes the code block when pressing backspace, even with blank lines
  • L145: removes the code block when pressing backspace, even at start of document

../tiptap/demos/src/Nodes/Details/Vue/index.spec.js

  • L10: should parse details tags correctly
  • L19: should parse details tags without paragraphs correctly
  • L28: setDetails should make the selected line a details node
  • L36: unsetDetails should make the selected line a paragraph node

../tiptap/demos/src/Nodes/Document/React/index.spec.js

  • L12: should return the document in as json

../tiptap/demos/src/Nodes/Document/Vue/index.spec.js

  • L12: should return the document in as json

../tiptap/demos/src/Nodes/Emoji/React/index.spec.js

  • L13: insert :smile: via typing
  • L19: insert button inserts an emoji node
  • L24: pasting a URL containing :x: does not convert the shortcode
  • L32: pasting a standalone shortcode converts to an emoji node

../tiptap/demos/src/Nodes/HardBreak/React/index.spec.js

  • L12: should parse hard breaks correctly
  • L19: should parse hard breaks with self-closing tag correctly
  • L26: the button should add a line break
  • L34: the default keyboard shortcut should add a line break
  • L42: the alternative keyboard shortcut should add a line break

../tiptap/demos/src/Nodes/HardBreak/Vue/index.spec.js

  • L12: should parse hard breaks correctly
  • L19: should parse hard breaks with self-closing tag correctly
  • L26: the button should add a line break
  • L34: the default keyboard shortcut should add a line break
  • L42: the alternative keyboard shortcut should add a line break

../tiptap/demos/src/Nodes/Heading/React/index.spec.js

  • L16: should parse headings correctly (${html})
  • L24: should omit disabled heading levels
  • L31: the button should make the selected line a h1
  • L39: the button should make the selected line a h2
  • L47: the button should make the selected line a h3
  • L55: the button should toggle the heading
  • L67: should make the paragraph a h1 keyboard shortcut is pressed
  • L74: should make the paragraph a h2 keyboard shortcut is pressed
  • L81: should make the paragraph a h3 keyboard shortcut is pressed
  • L88: should make a h1 from the default markdown shortcut
  • L96: should make a h2 from the default markdown shortcut
  • L104: should make a h3 from the default markdown shortcut

../tiptap/demos/src/Nodes/Heading/Vue/index.spec.js

  • L16: should parse headings correctly (${html})
  • L24: should omit disabled heading levels
  • L31: the button should make the selected line a h1
  • L39: the button should make the selected line a h2
  • L47: the button should make the selected line a h3
  • L55: the button should toggle the heading
  • L67: should make the paragraph a h1 keyboard shortcut is pressed
  • L74: should make the paragraph a h2 keyboard shortcut is pressed
  • L81: should make the paragraph a h3 keyboard shortcut is pressed
  • L88: should make a h1 from the default markdown shortcut
  • L96: should make a h2 from the default markdown shortcut
  • L104: should make a h3 from the default markdown shortcut

../tiptap/demos/src/Nodes/HorizontalRule/React/index.spec.js

  • L12: should parse horizontal rules correctly
  • L19: should parse horizontal rules with self-closing tag correctly
  • L26: the button should add a horizontal rule
  • L34: the default markdown shortcut should add a horizontal rule
  • L46: the alternative markdown shortcut should add a horizontal rule
  • L58: should replace selection correctly

../tiptap/demos/src/Nodes/HorizontalRule/Vue/index.spec.js

  • L12: should parse horizontal rules correctly
  • L19: should parse horizontal rules with self-closing tag correctly
  • L26: the button should add a horizontal rule
  • L34: the default markdown shortcut should add a horizontal rule
  • L46: the alternative markdown shortcut should add a horizontal rule
  • L58: should replace selection correctly

../tiptap/demos/src/Nodes/Image/React/index.spec.js

  • L13: should add an img tag with the correct URL

../tiptap/demos/src/Nodes/Image/Vue/index.spec.js

  • L13: should add an img tag with the correct URL

../tiptap/demos/src/Nodes/ListItem/React/index.spec.js

  • L12: should add a new list item on Enter
  • L20: should sink the list item on Tab
  • L28: should lift the list item on Shift+Tab

../tiptap/demos/src/Nodes/ListItem/Vue/index.spec.js

  • L12: should add a new list item on Enter
  • L20: should sink the list item on Tab
  • L28: should lift the list item on Shift+Tab

../tiptap/demos/src/Nodes/Mention/React/index.spec.js

  • L6: should insert a mention
  • L16: should insert multiple mentions
  • L28: should open a dropdown menu when I type '@'
  • L33: should display the correct options in the dropdown menu
  • L44: should insert Cyndi Lauper mention when clicking on her option
  • L55: should close the dropdown menu when I move the cursor outside the editor
  • L62: should close the dropdown menu when I press the exit key
  • L69: should insert Tom Cruise when selecting his option with the arrow keys and pressing the enter key
  • L82: should show a "No result" message when I search for an option that is not in the list
  • L88: should not hide the dropdown or insert any mention if I search for an option that is not in the list and hit enter
  • L98: should only show the Madonna option in the dropdown when I type "@mado"
  • L105: should insert Madonna when I type "@mado" and hit enter

../tiptap/demos/src/Nodes/OrderedList/React/index.spec.js

  • L13: should parse ordered lists correctly
  • L20: should parse ordered lists without paragraphs correctly
  • L27: the button should make the selected line a ordered list item
  • L39: the button should toggle the ordered list
  • L51: should make the paragraph an ordered list keyboard shortcut is pressed
  • L58: should leave the list with double enter
  • L70: should make a ordered list from a number
  • L82: should make a ordered list from a number other than number one
  • L93: should remove the ordered list after pressing backspace

../tiptap/demos/src/Nodes/OrderedList/Vue/index.spec.js

  • L13: should parse ordered lists correctly
  • L20: should parse ordered lists without paragraphs correctly
  • L27: the button should make the selected line a ordered list item
  • L39: the button should toggle the ordered list
  • L51: should make the paragraph an ordered list keyboard shortcut is pressed
  • L58: should leave the list with double enter
  • L70: should make a ordered list from a number
  • L82: should make a ordered list from a number other than number one
  • L93: should remove the ordered list after pressing backspace

../tiptap/demos/src/Nodes/Paragraph/React/index.spec.js

  • L12: should parse paragraphs correctly
  • L25: text should be wrapped in a paragraph by default
  • L29: enter should make a new paragraph
  • L37: backspace should remove the second paragraph

../tiptap/demos/src/Nodes/Paragraph/Vue/index.spec.js

  • L12: should parse paragraphs correctly
  • L25: text should be wrapped in a paragraph by default
  • L29: enter should make a new paragraph
  • L37: backspace should remove the second paragraph

../tiptap/demos/src/Nodes/Table/React/index.spec.js

  • L12: creates a table (1x1)
  • L21: creates a table (3x1)
  • L30: creates a table (1x3)
  • L39: creates a table with header row (1x3)
  • L49: creates a table with correct defaults (3x3, th)
  • L59: sets the minimum width on the colgroups by default (3x1)
  • L67: generates correct markup for a table (1x1)
  • L79: generates correct markup for a table (1x1, th)

../tiptap/demos/src/Nodes/Table/Vue/index.spec.js

  • L12: creates a table (1x1)
  • L21: creates a table (3x1)
  • L30: creates a table (1x3)
  • L39: creates a table with header row (1x3)
  • L49: creates a table with correct defaults (3x3, th)
  • L59: sets the minimum width on the colgroups by default (3x1)
  • L67: generates correct markup for a table (1x1)
  • L79: generates correct markup for a table (1x1, th)

../tiptap/demos/src/Nodes/TaskList/React/index.spec.js

  • L13: should parse unordered lists correctly
  • L24: should parse unordered lists without paragraphs correctly
  • L35: the button should make the selected line a task list item
  • L47: the button should toggle the task list
  • L59: should make the paragraph a task list when the keyboard shortcut is pressed
  • L66: should leave the list with double enter
  • L78: should make a task list from square brackets
  • L96: should make a task list from checked square brackets

../tiptap/demos/src/Nodes/TaskList/Vue/index.spec.js

  • L13: should parse unordered lists correctly
  • L24: should parse unordered lists without paragraphs correctly
  • L35: the button should make the selected line a task list item
  • L47: the button should toggle the task list
  • L59: should make the paragraph a task list when the keyboard shortcut is pressed
  • L66: should leave the list with double enter
  • L78: should make a task list from square brackets
  • L96: should make a task list from checked square brackets

../tiptap/demos/src/Nodes/Text/React/index.spec.js

  • L12: text should be wrapped in a paragraph by default

../tiptap/demos/src/Nodes/Text/Vue/index.spec.js

  • L12: text should be wrapped in a paragraph by default

../tiptap/demos/src/Nodes/Youtube/React/index.spec.js

  • L10: adds a video
  • L28: adds a video with 320 width and 240 height
  • L50: replaces a video

../tiptap/demos/src/Nodes/Youtube/Vue/index.spec.js

  • L10: adds a video
  • L28: adds a video with 320 width and 240 height
  • L50: replaces a video

../tiptap/packages/core/__tests__/can.spec.ts

  • L11: can
  • L18: not undo
  • L28: undo
  • L40: not chain undo
  • L50: chain undo
  • L62: returns false for non-applicable marks when cursor is positioned in node that disallows marks
  • L80: returns false for non-applicable marks when selection contains node in conflict
  • L98: returns false for non-applicable marks when selection contains marks in conflict
  • L110: returns false for non-applicable marks when stored marks in conflict
  • L122: returns false for non-applicable marks when selecting multiple nodes in conflict
  • L134: returns true for applicable marks when selection does not contain nodes in conflict
  • L153: returns true for applicable marks when stored marks are not in conflict
  • L165: returns true for applicable marks when selection does not contain marks in conflict
  • L177: returns true for applicable marks if at least one node in selection has no marks in conflict
  • L189: builds and passes down an undefined dispatch for nested "can" chain

../tiptap/packages/core/__tests__/createNodeFromContent.spec.ts

  • L7: createNodeFromContent
  • L8: creates a fragment from a schema and HTML content
  • L26: if errorOnInvalidContent is true, creates a fragment from a schema and HTML content
  • L46: creates a fragment from a schema and JSON content
  • L70: if errorOnInvalidContent is true, creates a fragment from a schema and JSON content
  • L96: creates a fragment from a schema and JSON array of content
  • L142: if errorOnInvalidContent is true, creates a fragment from a schema and JSON array of content
  • L190: returns empty content when a schema does not have matching node types for JSON content
  • L206: returns empty content when a schema does not have matching node types for HTML content
  • L214: if errorOnInvalidContent is true, will throw an error when a schema does not have matching node types for HTML content
  • L224: if errorOnInvalidContent is true, will throw an error when a schema does not have matching node types for JSON content
  • L242: if errorOnInvalidContent is true, will throw an error when a schema does not have matching mark types for JSON content
  • L265: if errorOnInvalidContent is true, will throw an error, when the JSON content does not follow the nesting rules of the schema

../tiptap/packages/core/__tests__/dispatchTransaction.spec.ts

  • L7: dispatchTransaction
  • L8: should call dispatchTransaction from an extension
  • L26: should call multiple dispatchTransaction hooks in priority order
  • L56: should block transaction if next is not called
  • L75: should allow user-provided dispatchTransaction as base
  • L102: should bypass extensions if enableExtensionDispatchTransaction is false

../tiptap/packages/core/__tests__/editorProps.spec.ts

  • L7: editorProps
  • L8: editorProps can be set while constructing Editor
  • L21: editorProps can be set through setOptions

../tiptap/packages/core/__tests__/extendExtensions.spec.ts

  • L12: extend extensions
  • L15: should define a config
  • L31: should overwrite a config
  • L53: should have a parent
  • L75: should merge configs
  • L99: should merge configs multiple times
  • L133: should set parents multiple times
  • L164: should merge configs without direct parent configuration
  • L190: should call ancestors only once
  • L233: should call ancestors only once on configure
  • L279: should use grandparent as parent on configure (not parent)
  • L305: should use parent's config on configure
  • L332: should allow extending a configure
  • L348: should allow calling this.parent when extending a configure
  • L375: should configure to be in addition to the parent options
  • L392: should deeply merge options when extending a configured extension

../tiptap/packages/core/__tests__/extendMarkRange.spec.ts

  • L9: extendMarkRange
  • L10: should extend full mark
  • L77: should extend to mark with specific attributes
  • L150: should not extend at all if selection contains no mark
  • L217: should not extend at all if selection contains any non-matching mark

../tiptap/packages/core/__tests__/extensionOptions.spec.ts

  • L4: extension options
  • L7: should set options
  • L23: should pass through
  • L41: should be configurable
  • L59: should be extendable
  • L85: should be extendable multiple times
  • L119: should be overwritable
  • L140: should configure nested objects
  • L169: should configure retaining existing config
  • L185: should create its own instance on configure

../tiptap/packages/core/__tests__/extensionStorage.spec.ts

  • L4: extension storage
  • L7: should be an empty object if not defined
  • L13: should be be the return of addStorage if defined
  • L23: should be able to be extended
  • L33: should be able to be configured
  • L45: should be able to be extended and configured
  • L59: should be overwrite parents addStorage
  • L74: grandchild should overwrite grandparent & parents addStorage
  • L96: should return a new object on each access

../tiptap/packages/core/__tests__/fromString.spec.ts

  • L4: fromString
  • L5: should return a string
  • L11: should return an empty string
  • L17: should convert to a number
  • L23: should convert to a floating number
  • L29: should not convert to a number with exponent
  • L35: should convert to true
  • L41: should convert to false
  • L47: should return non-strings

../tiptap/packages/core/__tests__/generateHTML.spec.ts

  • L7: generateHTML
  • L8: generate HTML from JSON without an editor instance

../tiptap/packages/core/__tests__/generateJSON.spec.ts

  • L7: generateJSON
  • L8: generate JSON from HTML without an editor instance

../tiptap/packages/core/__tests__/generateText.spec.ts

  • L9: generates Text from JSON without an editor instance

../tiptap/packages/core/__tests__/getAttributesFromExtensions.spec.ts

  • L4: getAttributesFromExtensions
  • L5: node attributes
  • L6: should extract attributes from node extensions
  • L31: should merge default attribute values
  • L56: should handle function defaults
  • L74: should handle required attributes without default
  • L95: mark attributes
  • L96: should extract attributes from mark extensions
  • L122: global attributes with types
  • L123: should apply global attributes to specified types
  • L166: should apply global attributes to multiple types
  • L199: global attributes with shorthand types
  • L200: should apply global attributes to all nodes and marks when types is "*"
  • L247: should apply global attributes to all nodes when types is "nodes"
  • L300: should apply global attributes to all marks when types is "marks"
  • L343: combining node and global attributes
  • L344: should include both node-specific and global attributes
  • L386: extensions without attributes
  • L387: should handle extensions without addAttributes
  • L398: should handle extensions without addGlobalAttributes
  • L409: multiple global attribute definitions
  • L410: should handle multiple global attribute groups

../tiptap/packages/core/__tests__/getMarkRange.spec.ts

  • L9: getMarkRange
  • L26: gets the correct range for a position inside the mark
  • L37: gets the correct range for a position at the start of the mark
  • L48: gets the correct range for a position at the end of the mark
  • L59: gets undefined if a mark is not found
  • L67: doesnt cross node boundaries on backward check
  • L99: doesnt cross node boundaries on forward check
  • L130: can distinguish mark boundaries

../tiptap/packages/core/__tests__/getTextContentFromNodes.spec.ts

  • L10: gets text

../tiptap/packages/core/__tests__/isActive.spec.ts

  • L9: isActive
  • L10: should check the current node
  • L18: should check non-existent nodes
  • L26: should check the current mark for correct values
  • L37: should check the current mark for false values
  • L48: should check the current mark for any values
  • L59: should check the current mark for correct values (multiple)
  • L70: should check the current mark for false values (multiple)
  • L81: should skip code blocks when checking the current mark

../tiptap/packages/core/__tests__/isNodeEmpty.spec.ts

  • L19: isNodeEmpty
  • L20: ignoreWhitespace=true
  • L21: should return true when text has only whitespace
  • L27: should return false when multi-line text contains non-whitespace content
  • L33: should return true when a paragraph has only whitespace
  • L42: should return true for a hardbreak
  • L48: should return true when a paragraph has only a hardbreak
  • L58: with default schema
  • L59: should return false when text has content
  • L65: should return false when a paragraph has text
  • L74: should return false when a paragraph has hardbreaks
  • L83: should return false when a paragraph has a mention
  • L100: should return true when a paragraph has no content
  • L109: should return true when a paragraph has additional attrs & no content
  • L121: should return true when a paragraph has additional marks & no content
  • L134: should return false when a document has text
  • L147: should return true when a document has an empty paragraph
  • L162: with modified schema
  • L163: should return false when a document has a filled heading
  • L177: should return false when a document has a filled paragraph
  • L192: should return true when a document has an empty heading
  • L204: should return true when a document has an empty heading with attrs
  • L213: should return true when a document has an empty heading & paragraph
  • L224: should return true when a document has an empty heading & paragraph with attributes
  • L236: can handle an image node

../tiptap/packages/core/__tests__/mergeAttributes.spec.ts

  • L4: mergeAttributes
  • L5: should merge two objects
  • L14: should merge multiple objects
  • L24: should overwrite values
  • L32: should merge classes
  • L40: should merge styles
  • L48: should merge classes and styles
  • L57: should ignore falsy values
  • L65: should overwrite styles
  • L73: should merge several styles
  • L84: should handle styles with only property names
  • L95: should handle styles with only values
  • L103: should handle complex font-family style declarations
  • L114: should handle styles with HTTP URLs
  • L126: should handle styles with data URLs
  • L141: should handle quoted style values

../tiptap/packages/core/__tests__/mergeDeep.spec.ts

  • L4: mergeDeep
  • L5: should merge
  • L21: should merge when source has null value
  • L36: should not merge array
  • L51: should allow nulling a value
  • L66: should merge deep

../tiptap/packages/core/__tests__/nodePos.spec.ts

  • L38: NodePos
  • L45: $nodes
  • L46: should return text nodes
  • L59: should return multiple text nodes across paragraphs
  • L74: should return inline atom nodes
  • L87: should return multiple inline nodes
  • L100: should return inline nodes with attribute filtering
  • L115: should return paragraph nodes
  • L127: should return inline nodes nested in multiple paragraphs
  • L143: should find paragraphs inside blockquotes
  • L156: should find blockquote nodes
  • L168: should find text nodes inside nested block structures
  • L182: should find list items in bullet lists
  • L194: should find text nodes inside list items
  • L208: should find inline nodes inside list items
  • L221: should handle empty paragraphs
  • L233: should return empty array for text nodes when paragraph is empty
  • L245: should find all node types in mixed content
  • L264: $node
  • L265: should find a single text node
  • L277: should find a single inline node
  • L290: children
  • L291: should include text nodes as children of paragraph
  • L308: should include inline atom nodes as children of paragraph
  • L329: should return correct node reference for inline nodes
  • L343: querySelector
  • L344: should return first matching node
  • L357: should return all matching nodes with querySelectorAll
  • L369: should filter correctly with attributes
  • L383: node position properties
  • L384: should return correct from/to positions for inline nodes
  • L397: should return correct from/to positions for text nodes
  • L410: should return correct range for nodes
  • L424: firstChild and lastChild
  • L425: should return correct firstChild for paragraph with text
  • L439: should return correct lastChild for paragraph with mixed content
  • L452: should return null for firstChild/lastChild on empty paragraph
  • L465: parent
  • L466: should return parent for paragraph node
  • L479: should return parent for blockquote node
  • L492: should return parent for nested paragraph in blockquote
  • L506: $doc
  • L507: should correctly traverse $doc children
  • L521: should handle deeply nested structures

../tiptap/packages/core/__tests__/onContentError.spec.ts

  • L7: onContentError
  • L8: does not emit a contentError on invalid content (by default)
  • L34: does not emit a contentError on invalid content (when enableContentCheck = false)
  • L61: emits a contentError on invalid content (when enableContentCheck = true)
  • L100: does not emit a contentError on valid content
  • L128: removes the collaboration extension when has invalid content (when enableContentCheck = true)
  • L170: does not remove the collaboration extension when has valid content (when enableContentCheck = true)

../tiptap/packages/core/__tests__/requiredAttributes.spec.ts

  • L7: Required Attributes
  • L8: should mark node attributes as required when isRequired is true and no default is set
  • L40: should mark mark attributes as required when isRequired is true and no default is set
  • L73: should not mark attributes as required when they have an explicit default value
  • L112: should only include validate property when it is defined
  • L143: should handle attributes with isRequired and validate together

../tiptap/packages/core/__tests__/unmounted.spec.ts

  • L7: unmounted
  • L8: should not throw an error when the editor is unmounted
  • L20: should have a view property that is not null
  • L29: should emit a mount event when the editor is mounted
  • L48: should inject CSS when the editor is mounted
  • L69: should emit an unmount event when the editor is unmounted
  • L89: should only remove injected CSS when the editor is unmounted if no other editors exist
  • L128: should emit a destroy event when the editor is destroyed
  • L148: should emit an update event when the editor is updated
  • L166: should emit a transaction event when the editor is updated
  • L184: should emit a selectionUpdate event when the editor is updated
  • L202: should be able to make changes to the editor
  • L216: should be able to make multiple changes to the editor
  • L232: should be able to read state from the editor view
  • L245: should have some commonly accessed properties that are not null

../tiptap/packages/core/src/__tests__/transformPastedHTML.test.ts

  • L7: transformPastedHTML
  • L8: priority ordering
  • L9: should execute transforms in priority order (higher priority first)
  • L51: should execute transforms in default priority order when priorities are equal
  • L84: transform chaining
  • L85: should chain transforms correctly
  • L115: should pass transformed HTML through entire chain
  • L153: baseTransform integration
  • L154: should run baseTransform before extension transforms
  • L181: should work when baseTransform is undefined
  • L204: extensions without transforms
  • L205: should skip extensions without transformPastedHTML
  • L235: should return original HTML when no transforms are defined
  • L258: extension context
  • L259: should provide correct context to transformPastedHTML
  • L303: should allow accessing editor state in transformPastedHTML
  • L327: edge cases
  • L328: should handle empty HTML string
  • L350: should handle HTML with special characters
  • L372: should handle very long HTML strings
  • L396: should handle malformed HTML gracefully
  • L420: view parameter
  • L421: should pass view parameter to baseTransform
  • L441: should work when view parameter is undefined
  • L459: real-world scenarios
  • L460: should remove inline styles and dangerous attributes
  • L483: should normalize whitespace from word processors
  • L508: should chain multiple practical transforms
  • L546: performance
  • L547: should handle many extensions efficiently

../tiptap/packages/extension-audio/__tests__/audio.spec.ts

  • L8: extension-audio
  • L28: does not output html for javascript schema or invalid links
  • L53: allows base64 sources only when enabled
  • L97: respects audio attributes and options
  • L146: does not insert invalid audio sources via command
  • L183: creates audio node when pasting a valid audio URL
  • L203: does not create audio node when paste handler is disabled
  • L221: renders audio node as inline when inline option is enabled
  • L255: renders audio node as block by default

../tiptap/packages/extension-bold/__tests__/bold.spec.ts

  • L4: bold regex test
  • L5: star input regex matches
  • L9: star paste regex matches
  • L13: underscore input regex matches
  • L17: underscore paste regex matches

../tiptap/packages/extension-bubble-menu/__tests__/bubble-menu-plugin.spec.ts

  • L30: BubbleMenuView cross-contamination
  • L31: should only process updateOptions for its own pluginKey (string)
  • L57: should only process updateOptions for its own pluginKey (PluginKey instance)
  • L86: should only process updatePosition for its own pluginKey
  • L104: should not cross-contaminate options between two instances
  • L140: should maintain backward compatibility with default "bubbleMenu" pluginKey

../tiptap/packages/extension-code-block-lowlight/__tests__/codeBlockLowlight.spec.ts

  • L11: code block highlight
  • L72: executes lowlight plugin in extensions that inherit from code-block-lowlight

../tiptap/packages/extension-collaboration-caret/__tests__/collaboration-caret.spec.ts

  • L18: extension-collaboration-caret
  • L39: should not crash when initialized with HTML content containing tables
  • L102: should not crash when initialized with simple HTML content
  • L148: should work correctly when initialized without content

../tiptap/packages/extension-details/__tests__/details.spec.ts

  • L9: Details
  • L16: adds a default aria-label to the toggle button
  • L49: supports custom toggle button rendering and updates it when the node open state changes

../tiptap/packages/extension-drag-handle/__tests__/defaultRules.spec.ts

  • L38: listItemFirstChild
  • L39: should have correct id
  • L43: inside listItem
  • L44: should exclude first child of listItem
  • L57: should not exclude non-first child of listItem
  • L71: inside taskItem
  • L72: should exclude first child of taskItem
  • L85: should not exclude non-first child of taskItem
  • L99: outside list items
  • L100: should not exclude first child of other containers
  • L113: should not exclude when parent is null
  • L125: should not affect nodes in bulletList directly
  • L140: inlineContent
  • L141: should have correct id
  • L145: should exclude inline nodes
  • L159: should exclude text nodes
  • L173: should not exclude block nodes
  • L187: should not exclude heading nodes
  • L201: should not exclude listItem nodes
  • L216: listWrapperDeprioritize
  • L217: should have correct id
  • L221: should exclude nodes with listItem as first child
  • L237: should exclude nodes with taskItem as first child
  • L253: should not affect nodes with other first children
  • L269: should not affect nodes with no children
  • L285: tableStructure
  • L286: should have correct id
  • L290: should exclude tableRow nodes
  • L304: should exclude tableCell nodes
  • L318: should exclude tableHeader nodes
  • L332: should not affect table wrapper nodes
  • L346: should exclude content inside tableHeader
  • L363: should not exclude content inside tableCell
  • L380: should not affect paragraph nodes
  • L395: defaultRules
  • L396: should contain listItemFirstChild rule
  • L400: should contain listWrapperDeprioritize rule
  • L404: should contain tableStructure rule
  • L408: should contain inlineContent rule
  • L412: should have exactly 4 rules

../tiptap/packages/extension-drag-handle/__tests__/drag-handle.spec.ts

  • L9: DragHandle
  • L35: data-dragging attribute
  • L36: should initialize data-dragging attribute to false
  • L40: should set data-dragging to true on dragstart
  • L52: should set data-dragging to false on dragend
  • L73: should maintain data-dragging state through multiple drag cycles
  • L97: element properties
  • L98: should have draggable set to true
  • L102: should have pointer events set to auto initially

../tiptap/packages/extension-drag-handle/__tests__/edgeDetection.spec.ts

  • L5: normalizeEdgeDetection
  • L6: presets
  • L7: should return default config for undefined
  • L17: should return left preset config
  • L27: should return right preset config
  • L37: should return both preset config
  • L47: should return none preset config
  • L58: custom config
  • L59: should merge partial config with defaults
  • L69: should merge partial config with custom edges
  • L79: should merge partial config with custom strength
  • L89: should accept full custom config
  • L103: should handle negative threshold values
  • L115: isNearEdge
  • L130: left edge
  • L133: should return true when cursor is near left edge
  • L139: should return false when cursor is far from left edge
  • L145: should return true when cursor is exactly at threshold
  • L151: should return false when cursor is just beyond threshold
  • L158: right edge
  • L161: should return true when cursor is near right edge
  • L167: should return false when cursor is far from right edge
  • L174: top edge
  • L177: should return true when cursor is near top edge
  • L183: should return false when cursor is far from top edge
  • L190: bottom edge
  • L193: should return true when cursor is near bottom edge
  • L199: should return false when cursor is far from bottom edge
  • L206: multiple edges
  • L209: should return true when near any configured edge
  • L214: should return false when not near any configured edge
  • L221: empty edges
  • L224: should return false when edges array is empty
  • L231: negative threshold
  • L234: should require cursor to be further inside with negative threshold
  • L243: calculateEdgeDeduction
  • L260: should return 0 when element is null
  • L266: should return 0 when edges array is empty
  • L273: should return 0 when cursor is not near edge
  • L279: should return strength * depth when cursor is near edge
  • L285: should scale deduction with depth
  • L291: should use custom strength value

../tiptap/packages/extension-drag-handle/__tests__/findBestDragTarget.spec.ts

  • L38: findBestDragTarget
  • L41: coordinate validation
  • L42: should return null for non-finite x coordinate
  • L49: should return null for non-finite y coordinate
  • L57: posAtCoords failure
  • L58: should return null when posAtCoords returns null
  • L68: ancestor-based candidates
  • L69: should return a block node at depth 1
  • L98: atom node candidates via nodeAfter
  • L99: should find a block atom node via $pos.nodeAfter
  • L138: should find a horizontalRule atom node via $pos.nodeAfter
  • L172: should not add inline atom nodes as candidates
  • L202: should not add atom node when nodeDOM returns null
  • L233: allowedContainers with atom nodes
  • L234: should skip atom node when not inside an allowed container
  • L267: should include atom node when inside an allowed container
  • L330: scoring and selection
  • L331: should prefer atom node with higher score over ancestor

../tiptap/packages/extension-drag-handle/__tests__/normalizeOptions.spec.ts

  • L6: normalizeNestedOptions
  • L7: disabled states
  • L8: should return disabled config for undefined
  • L18: should return disabled config for false
  • L29: simple enable
  • L30: should return enabled config with defaults for true
  • L45: custom config
  • L46: should accept custom rules
  • L59: should accept defaultRules: false
  • L66: should default defaultRules to true when not specified
  • L72: should accept allowedContainers
  • L81: should accept edge detection preset
  • L92: should accept edge detection config object
  • L105: should accept edge detection "none"
  • L116: should handle full custom config
  • L140: should default rules to empty array when not specified

../tiptap/packages/extension-drag-handle/__tests__/scoring.spec.ts

  • L37: BASE_SCORE
  • L38: should be 1000
  • L43: calculateScore
  • L52: without rules
  • L53: should return base score when no rules are applied
  • L61: with rules
  • L62: should apply single rule deduction
  • L71: should apply multiple rule deductions
  • L83: should return -1 when score drops to 0 or below
  • L92: should return -1 when score goes negative
  • L101: should stop evaluating rules after exclusion
  • L114: should support negative deductions (score boosts)
  • L123: should pass context to rule evaluate function
  • L145: with edge detection
  • L146: should apply edge deduction when near edge
  • L184: should not apply edge deduction when not near edge
  • L220: should combine rule deductions with edge deductions

../tiptap/packages/extension-emoji/__tests__/emoji.spec.ts

  • L4: emoji extension
  • L5: inputRegex matches typical shortcode
  • L9: pasteRegex matches standalone shortcode
  • L13: pasteRegex does NOT match shortcode inside url-like text
  • L18: pasteRegex matches when preceded by space

../tiptap/packages/extension-floating-menu/__tests__/floating-menu-plugin.spec.ts

  • L31: FloatingMenuView cross-contamination
  • L32: should only process updateOptions for its own pluginKey (string)
  • L58: should only process updateOptions for its own pluginKey (PluginKey instance)
  • L87: should only process updatePosition for its own pluginKey
  • L105: should not cross-contaminate options between two instances
  • L141: should use pluginKey in updateFloatingMenuPosition command
  • L170: should maintain backward compatibility with default "floatingMenu" pluginKey

../tiptap/packages/extension-horizontal-rule/__tests__/horizontalRule.spec.ts

  • L9: extension-horizontal-rule
  • L24: should be inserted after block leaf nodes correctly
  • L12: extension-link
  • L34: does output href tag for valid JSON schemas
  • L71: does output href tag for valid HTML schemas
  • L181: does not output href for :javascript links in JSON schema
  • L220: does not output href for :javascript links in HTML schema
  • L236: custom protocols
  • L237: allows using additional custom protocols
  • L261: should return false when clicking on non-link elements
  • L311: shouldAutoLink
  • L312: default shouldAutoLink rejects bare hostnames without TLD
  • L351: default shouldAutoLink rejects bare IP addresses
  • L378: allows custom shouldAutoLink to override default behavior

../tiptap/packages/extension-list/__tests__/taskItem.spec.ts

  • L9: TaskItem
  • L16: preserves custom HTML attributes on node update
  • L74: removes attributes when set to null
  • L126: updates multiple custom attributes simultaneously
  • L197: preserves HTMLAttributes from configure() options during updates
  • L243: restores static HTMLAttributes when dynamic attribute with same key is removed

../tiptap/packages/extension-table/__tests__/tableCell.spec.ts

  • L8: extension table cell
  • L21: should start with a Table
  • L47: should parse a single colWidth
  • L74: should parse multiple colWidths

../tiptap/packages/extension-table/__tests__/tableHeader.spec.ts

  • L8: extension table header
  • L21: should start with a Table
  • L47: should parse a single colWidth
  • L74: should parse multiple colWidths

../tiptap/packages/extension-text-style/__tests__/background-color.spec.ts

  • L8: background-color parseHTML
  • L9: parses rgb(...) inline style
  • L18: parses hex inline style
  • L27: parses hsla inline style

../tiptap/packages/extension-text-style/__tests__/color.spec.ts

  • L8: color parseHTML
  • L9: parses rgb(...) inline style
  • L18: parses hex inline style
  • L27: parses hsla inline style

../tiptap/packages/extension-twitch/__tests__/twitch.spec.ts

  • L11: extension-twitch
  • L35: does not output html for javascript schema or non-twitch links for url ${url}
  • L59: outputs html with iframe for valid twitch video id
  • L91: outputs html with iframe for twitch clip url
  • L123: outputs html with iframe for twitch channel url
  • L154: respects allowFullscreen option
  • L186: respects custom width and height
  • L222: can insert a video using the setTwitchVideo command
  • L245: does not insert video with invalid URL using setTwitchVideo command
  • L261: handles video URL with search parameters
  • L293: handles clip URL with search parameters
  • L325: respects muted option
  • L357: respects time option for videos
  • L389: respects attribute overrides for autoplay
  • L423: respects attribute overrides for muted
  • L456: respects attribute overrides for time

../tiptap/packages/extension-unique-id/__tests__/unique-id-collab.spec.ts

  • L49: UniqueID collaboration handling
  • L58: does not assign IDs immediately when collaboration extension is present without provider
  • L73: assigns IDs after y-sync$ transaction when collaboration has no provider
  • L103: assigns IDs when y-sync$ transaction arrives before onCreate runs
  • L128: still assigns IDs immediately when no collaboration extension

../tiptap/packages/extension-youtube/__tests__/youtube.spec.ts

  • L13: extension-youtube
  • L36: does not output html for javascript schema or non-youtube links for url ${url}
  • L60: when nocookie youtube url is passed, still outputs html with iframe with the url
  • L83: YouTube Shorts URL handling
  • L84: generates correct embed URL for YouTube Shorts with rel parameter
  • L94: generates correct embed URL for YouTube Shorts without www prefix
  • L104: generates correct embed URL for YouTube Shorts with multiple parameters
  • L115: generates correct embed URL for YouTube Shorts with nocookie option
  • L126: generates correct embed URL for YouTube Shorts without extra parameters
  • L136: YouTube Playlist URL handling
  • L137: generates correct embed URL for playlist with additional parameters using & separator

../tiptap/packages/extensions/__tests__/placeholder.spec.ts

  • L12: extension-placeholder
  • L33: uses the default data-placeholder attribute when not passing any dataAttribute option
  • L44: falls back to the default when passing in an empty string
  • L56: uses a custom data-placeholder attribute when passing a dataAttribute option
  • L68: auto-replaces spaces with dashes to keep a valid html element
  • L80: auto-repairs an invalid attribute string
  • L96: extension-placeholder with includeChildren and wrapper nodes
  • L105: should not show placeholder on non-textblock wrapper nodes (bulletList, listItem)
  • L133: should not show placeholder on non-textblock nodes for taskList structures
  • L161: should not show placeholder on non-textblock nodes and not traverse their children when includeChildren is false

../tiptap/packages/extensions/__tests__/trailing-node.spec.ts

  • L34: extension-trailing-node
  • L62: adds a trailing paragraph when the document ends with a heading
  • L70: skips trailing node insertion for unique id transactions
  • L78: only skips trailing node insertion for the current transaction cycle

../tiptap/packages/html/__tests__/generateHTML.spec.ts

  • L10: generateHTML
  • L11: generate HTML from JSON without an editor instance
  • L32: can convert from & to html
  • L69: can convert from & to HTML with a complex schema

../tiptap/packages/html/__tests__/generateJSON.spec.ts

  • L8: generateJSON
  • L9: generate JSON from HTML without an editor instance
  • L33: generate JSON with style attributes
  • L60: should not crash when HTML contains link, script, or style tags with resource references

../tiptap/packages/html/__tests__/server-with-jsdom.spec.ts

  • L16: server exports with jsdom/happy-dom environment (issue #6951)
  • L18: should have global window defined (test environment check)
  • L23: generateJSON should work even when global window is defined
  • L46: generateHTML should work even when global window is defined

../tiptap/packages/markdown/__tests__/conversion.spec.ts

  • L19: Markdown Conversion Tests
  • L69: convert simple taskList from and to markdown
  • L117: should convert simple markdown to expected JSON structure
  • L122: should convert simple JSON structure back to expected markdown
  • L128: convert taskList with leading paragraph from and to markdown
  • L158: should convert markdown with leading paragraph to expected JSON structure
  • L163: should convert JSON structure back to expected markdown
  • L170: convert ${file.name} from and to markdown
  • L171: should convert ${file.name} markdown to expected JSON structure
  • L180: should convert ${file.name} JSON structure back to expected markdown
  • L187: multiple empty paragraphs
  • L190: should preserve two empty paragraphs with blank spacing plus one   marker when converting to markdown
  • L218: should parse markdown with one preserved blank paragraph back correctly
  • L232: should reserialize parsed empty paragraphs using blank spacing plus preserved markers
  • L267: should roundtrip five consecutive empty paragraphs without losing one
  • L290: should handle empty paragraphs without content field (real editor output)
  • L319: should parse literal NBSP character (\u00A0) as empty paragraph
  • L338: tilde fenced code blocks
  • L361: should parse tilde fenced code blocks
  • L367: should parse tilde fenced code blocks with language
  • L373: should parse backtick fenced code blocks
  • L379: should parse backtick fenced code blocks with language
  • L385: should produce the same result for tilde and backtick fenced code blocks

../tiptap/packages/markdown/__tests__/extensions/blockquote.spec.ts

  • L10: Blockquote Markdown Conversion
  • L21: should convert a single-level blockquote to markdown
  • L29: should convert a single-level blockquote with multiple paragraphs to markdown
  • L37: should convert nested blockquotes to markdown
  • L45: should handle blockquotes with varying nesting depths
  • L53: should convert nested blockquotes with multiple paragraphs
  • L61: should handle a blockquote that jumps multiple levels deep
  • L69: should handle blockquotes going back to shallower nesting
  • L77: should handle blockquotes with text content at different levels
  • L85: should handle blockquotes with mixed content including headings

../tiptap/packages/markdown/__tests__/inline-marks-punctuation.spec.ts

  • L10: Inline marks containing only punctuation
  • L14: Bold marks with punctuation - whitespace-separated (CommonMark compliant)
  • L15: should parse standalone bold punctuation marks
  • L36: should parse bold punctuation when preceded by whitespace
  • L61: should parse bold punctuation when followed by whitespace
  • L86: should parse bold punctuation when surrounded by whitespace
  • L115: should parse bold punctuation when preceded by other punctuation
  • L144: should parse multiple bold punctuation marks
  • L175: Bold marks without required whitespace (CommonMark limitation)
  • L176: should NOT parse bold punctuation when directly preceded by alphanumeric characters
  • L197: should NOT parse bold punctuation when directly followed by alphanumeric characters
  • L218: should NOT parse bold punctuation when surrounded by alphanumeric characters
  • L240: Italic marks with punctuation
  • L241: should parse standalone italic punctuation
  • L262: should parse italic punctuation with whitespace
  • L291: should NOT parse italic punctuation without whitespace
  • L312: Roundtrip serialization
  • L313: should maintain bold punctuation through parse-serialize cycle
  • L321: should maintain italic punctuation through parse-serialize cycle

../tiptap/packages/markdown/__tests__/manager.spec.ts

  • L93: MarkdownManager Direct Tests
  • L134: Basic Markdown Parsing
  • L141: should parse simple text
  • L151: should parse headings
  • L167: should parse multiple paragraphs
  • L180: keeps inline tokens after ordered list tokenization
  • L206: matches isolated Marked instance output for ordered-list parsing
  • L221: keeps later inline parsing stable after a custom tokenizer uses inlineTokens
  • L262: simple nested Marks parsing
  • L290: should convert nested markdown to expected JSON structure
  • L295: should convert nested JSON structure back to expected markdown
  • L300: complex nested Marks parsing
  • L333: should convert nested markdown to expected JSON structure
  • L338: should convert nested JSON structure back to expected markdown
  • L343: Extended Markdown Parsing
  • L349: should parse mentions
  • L360: should parse YouTube videos
  • L368: should handle complex documents with mixed content
  • L392: Markdown Rendering
  • L398: should render simple text
  • L413: should return empty string when serializing empty document
  • L429: should preserve blank lines between paragraphs with content
  • L453: should move trailing whitespace outside of mark closing (Issue #7180)
  • L480: should move leading whitespace outside of mark opening (Issue #7180)
  • L507: should handle both leading and trailing whitespace in marked text (Issue #7180)
  • L538: should handle trailing whitespace in italic marks (Issue #7180)
  • L563: should handle whitespace at end of paragraph with mark (Issue #7180)
  • L586: should render nested marks with correct tag order
  • L640: should render headings
  • L661: should render mentions
  • L682: should render YouTube videos
  • L698: Round-trip Tests
  • L729: should round-trip ${name}
  • L741: Extension Integration
  • L742: should work with different extension combinations
  • L760: should handle unknown markdown gracefully
  • L782: Performance Tests
  • L788: should handle large documents efficiently
  • L814: should handle deeply nested content

../tiptap/packages/markdown/__tests__/mixed-html.spec.ts

  • L13: MarkdownManager Mixed Markdown + HTML
  • L21: parses heading with inline HTML <em> as italic
  • L40: parses standalone inline HTML <em>world</em> as italic
  • L55: parses markdown italic next to HTML italic correctly

../tiptap/packages/markdown/__tests__/overlapping-marks.spec.ts

  • L12: Overlapping marks serialization
  • L46: should correctly serialize overlapping bold and italic marks
  • L88: should correctly serialize italic starting before bold
  • L126: should correctly serialize bold and italic on the same text
  • L150: keeps html-reopened italic open across later text nodes before closing
  • L188: closes html-reopened italic correctly before a hard break
  • L214: does not switch non-bold-italic marks to html reopen mode

../tiptap/packages/markdown/__tests__/paragraph.spec.ts

  • L11: Paragraph Markdown Rendering
  • L31: empty paragraphs at doc level
  • L32: should omit a lone empty paragraph at doc root
  • L42: should preserve a single empty paragraph between two content paragraphs as blank markdown lines
  • L56: should use   to preserve additional blank paragraphs between two content paragraphs
  • L71: should keep a preserved blank paragraph marker after the first blank paragraph
  • L78: should preserve a trailing empty paragraph as trailing markdown spacing
  • L96: empty paragraphs inside nested nodes
  • L97: should not emit   for an empty paragraph inside a bullet list item
  • L117: should not emit   for an empty paragraph inside an ordered list item
  • L137: should keep the first empty paragraph inside a blockquote empty
  • L152: should preserve multiple empty paragraphs inside a blockquote with   after the first
  • L175: should roundtrip multiple empty paragraphs inside a blockquote without losing any
  • L204: should render content paragraphs inside bullet list items normally
  • L222: should roundtrip consecutive empty paragraphs inside a bullet list item

../tiptap/packages/markdown/__tests__/server-side-parsing.spec.ts

  • L14: MarkdownManager Server-side Parsing
  • L22: parses inline code with HTML-like tags and strike marks without error
  • L52: parses inline code with HTML-like tags and double strike marks without error
  • L80: parses strike marks in normal text
  • L88: parses HTML heading tags with strike marks
  • L113: parses multiple inline code segments with HTML-like content and strike
  • L142: parses HTML tags as plain text in server environment
  • L161: still parses markdown syntax correctly alongside HTML

../tiptap/packages/markdown/__tests__/utilities.spec.ts

  • L5: Markdown Utilities
  • L6: createInlineMarkdownSpec
  • L7: should create a valid spec for self-closing inline nodes
  • L20: should create a valid spec for inline nodes with content
  • L33: should handle tokenizer start detection
  • L56: should tokenize self-closing shortcodes correctly
  • L74: should tokenize shortcodes with content correctly
  • L95: should render self-closing shortcodes correctly
  • L114: should render shortcodes with content correctly
  • L132: should skip attributes with default values when skipIfDefault is specified
  • L164: should support custom parseAttributes and serializeAttributes for attribute name mapping
  • L238: createBlockMarkdownSpec
  • L239: should create a valid spec for block nodes
  • L250: should handle tokenizer start detection
  • L272: should tokenize block syntax correctly
  • L294: should render block syntax correctly
  • L316: createAtomBlockMarkdownSpec
  • L317: should create a valid spec for atomic block nodes
  • L328: should handle tokenizer start detection
  • L348: should tokenize atom block syntax correctly
  • L367: should validate required attributes
  • L384: should render atom block syntax correctly
  • L402: should apply default attributes

../tiptap/packages/react/src/menus/BubbleMenu.spec.ts

  • L33: BubbleMenu
  • L42: applies html props to the actual menu element
  • L135: creates unique plugin keys when none are provided

../tiptap/packages/react/src/menus/FloatingMenu.spec.ts

  • L33: FloatingMenu
  • L42: applies html props to the actual menu element
  • L125: creates unique plugin keys when none are provided

../tiptap/packages/static-renderer/__tests__/json-string.spec.ts

  • L12: static render json to string (no prosemirror)
  • L13: generate an HTML string from JSON without an editor instance
  • L48: supports mapping nodes & marks
  • L93: gives access to the original JSON node or mark
  • L175: static render json to string (with prosemirror)
  • L176: generates an HTML string from JSON without an editor instance
  • L207: supports custom mapping for nodes & marks
  • L250: gives access to a prosemirror node or mark instance
  • L297: renders youtube extension followed by other nodes correctly

../tiptap/packages/static-renderer/__tests__/md-string.spec.ts

  • L6: static render json to string (no prosemirror)
  • L7: should return empty string for empty content
  • L19: should render empty paragraph
  • L36: should render a simple paragraph
  • L58: should render a simple table

../tiptap/packages/static-renderer/__tests__/react-string.spec.ts

  • L11: static renderer: react
  • L12: mapAttrsToHTMLAttributes maps attributes to React attributes
  • L30: static render json to react elements (with prosemirror)
  • L31: generates a React element from JSON without an editor instance
  • L71: supports custom mapping for nodes & marks
  • L125: gives access to a prosemirror node or mark instance

../tiptap/packages/suggestion/src/__tests__/suggestion.test.ts

  • L7: suggestion integration
  • L8: should respect shouldShow returning false
  • L48: should respect shouldShow returning true
  • L88: should pass transaction to shouldShow

../tiptap/packages/vue-3/__tests__/VueMarkViewRenderer.spec.ts

  • L38: VueMarkViewRenderer IME composition
  • L60: should handle rapid content changes without errors
  • L91: should allow multiple destroy calls without errors
  • L116: should handle content replacement without errors

../tiptap/packages/vue-3/__tests__/VueRenderer.spec.ts

  • L10: VueRenderer
  • L36: should initialize with destroyed flag set to false
  • L52: should set destroyed flag to true after destroy
  • L68: should allow multiple destroy calls without errors
  • L88: should not update props when destroyed
  • L114: should not render when destroyed
  • L134: should handle props updates before destroy
  • L162: should create and render element

../tiptap/tests/cypress/integration/core/pluginOrder.spec.ts

  • L8: pluginOrder
  • L9: should run keyboard shortcuts in correct order

../tiptap/tests/cypress/integration/core/transformPastedHTML.spec.ts

  • L8: transformPastedHTML
  • L9: should run transforms in correct priority order (higher priority first)
  • L59: should chain transforms correctly
  • L98: should integrate with baseTransform from editorProps
  • L134: should handle extensions without transforms
  • L168: should return original HTML if no transforms are defined
  • L197: should have access to extension context
  • L244: should work with multiple transforms modifying HTML structure
  • L281: should handle empty HTML
  • L310: should handle view parameter being passed through