mirror of
https://github.com/codex-team/editor.js
synced 2024-06-15 20:25:15 +02:00
6.1 KiB
6.1 KiB
Editor.js specs
This document will describe various test cases of the editor.js functionality. Features will be organized by modules. Cases covered by tests should be marked by the checkmark.
Configuration
-
Zero configuration
- Editor.js should be initialized on the element with the default
editorjs
id. - Editor.js should throw an error in case when there is no element with
editorjs
id. - Editor.js should be initialized with the Paragraph tool only.
- The Inline Toolbar of the Paragraph tool should contain all default Inline Tools -
bold
,italic
,link
.
- Editor.js should be initialized on the element with the default
-
holder
property- Editor.js should be initialized on the element with passed via
holder
property. - Editor.js should throw an error if passed
holder
value is not an Element node.
- Editor.js should be initialized on the element with passed via
-
autofocus
property- With the empty editor
- If
true
passed, the caret should be placed to the first empty block. - If
false
passed, the caret shouldn't be placed anywhere. - If omitted, the caret shouldn't be placed anywhere.
- If
- With the not-empty editor
- If
true
passed, the caret should be placed to the end of the last block. - If
false
passed, the caret shouldn't be placed anywhere. - If omitted, the caret shouldn't be placed anywhere.
- If
- With the empty editor
-
placeholder
property- With the empty editor
- If
string
passed, the string should be placed as a placeholder to the first empty block only. - If
false
passed, the first empty block should be placed without a placeholder. - If omitted, the first empty block should be placed without a placeholder.
- If
- With the empty editor
-
minHeight
property- If
number
passed, the height of the editor's bottom area from the last Block should be thenumber
. - If omitted the height of editor's bottom area from the last Block should be the default
300
.
- If
-
logLevel
property- If
VERBOSE
passed, the editor should output all messages to the console. - If
INFO
passed, the editor should output info and debug messages to the console. - If
WARN
passed, the editor should output only warning messages to the console. - If
ERROR
passed, the editor should output only error messages to the console. - If omitted, the editor should output all messages to the console.
- If
-
defaultBlock
property- If
string
passed- If passed
string
in thetools
option, the passed tool should be used as the default tool. - If passed
string
not in thetools
option, the Paragraph tool should be used as the default tool.
- If passed
- If omitted the Paragraph tool should be used as default tool.
- If
-
sanitizer
property- If
object
passed- The Editor.js should clean the HTML tags according to mentioned configuration.
- If omitted the Editor.js should be initialized with the default
sanitizer
configuration, which allows the tags likeparagraph
,anchor
, andbold
for cleaning HTML.
- If
-
tools
property- If omitted,the Editor.js should be initialized with the Paragraph tool only.
- If
object
passed- Editor.js should be initialized with all the passed tools.
- The keys of the object should be represented as
type
fields for corresponded blocks in output JSON - If value is a JavaScript class, the class should be used as a tool
- If value is an
object
- Checking the
class
property- If omitted, the tool should be skipped with a warning in a console.
- If existed, the value of the
class
property should be used as a tool
- Checking the
config
property- If
object
passed Editor.js should initializetool
and pass this object asconfig
parameter of the tool's constructor
- If
- Checking the
shortcut
property- If
string
passed Editor.js should append thetool
when such keys combination executed.
- If
- Checking the
inilineToolbar
property- If
true
passed, the Editor.js should show the Inline Toolbar for this tool with common settings. - If
false
passed, the Editor.js should not show the Inline Toolbar for this tool. - If
array
passed, the Editor.js should show the Inline Toolbar for this tool with a passed list of tools and their order. - If omitted, the Editor.js should not show the Inline Toolbar for this tool.
- If
- Checking the
toolbox
property- If it contains
title
, this title should be used as a tool title - If it contains
icon
, this HTML code (maybe SVG) should be used as a tool icon
- If it contains
- Checking the
-
onReady
property- If
function
passed, the Editor.js should call thefunction
when it's ready to work. - If omitted, the Editor.js should be initialized with the
tools
only.
- If
-
onChange
property- If
function
passed,the Editor.js should call thefunction
when something changed in Editor.js DOM. - If omitted, the Editor.js should be initialized with the
tools
only.
- If
-
data
property- If omitted
- the Editor.js should be initialized with the
tools
only. - the Editor.js should be empty.
- the Editor.js should be initialized with the
- If
object
passed- Checking the
blocks
property- If
array
ofobject
passed,- for each
object
- Checking the
type
anddata
property- the Editor.js should be initialize with
block
of classtype
- If
type
not present intools
, the Editor.js should throw an error.
- the Editor.js should be initialize with
- Checking the
- for each
- If omitted
- the Editor.js should be initialized with the
tools
only. - the Editor.js should be empty.
- the Editor.js should be initialized with the
- If
- Checking the
- If omitted
-
readOnly
property- If
true
passed,- If any
tool
have not readOnly getter defined,The Editor.js should throw an error. - otherwise, the Editor.js should be initialize with readOnly mode.
- If any
- If
false
passed,the Editor.js should be initialized with thetools
only. - If omitted,the Editor.js should be initialized with the
tools
only.
- If
-
i18n
property