All files

92.72% Statements 15588/16812
82.19% Branches 11482/13970
88.64% Functions 2403/2711
92.55% Lines 14587/15762

Press n or j to go to the next uncovered block, b, p or k for the previous block.

File Statements Branches Functions Lines
roosterjs-color-utils/lib
100% 2/2 100% 0/0 0% 0/1 100% 1/1
roosterjs-color-utils/lib/utils
100% 10/10 50% 2/4 100% 1/1 100% 10/10
roosterjs-content-model-api/lib
100% 127/127 100% 0/0 39.06% 25/64 100% 63/63
roosterjs-content-model-api/lib/modelApi/block
96.34% 237/246 84.24% 139/165 100% 37/37 95.96% 214/223
roosterjs-content-model-api/lib/modelApi/common
96.19% 227/236 92.22% 154/167 96.97% 32/33 95.71% 201/210
roosterjs-content-model-api/lib/modelApi/entity
100% 52/52 92.5% 74/80 100% 2/2 100% 52/52
roosterjs-content-model-api/lib/modelApi/image
100% 35/35 93.75% 15/16 100% 1/1 100% 35/35
roosterjs-content-model-api/lib/modelApi/link
100% 55/55 94% 47/50 100% 8/8 100% 49/49
roosterjs-content-model-api/lib/modelApi/list
94.41% 169/179 89.68% 139/155 92.59% 25/27 94.19% 162/172
roosterjs-content-model-api/lib/modelApi/selection
97.54% 119/122 89.72% 96/107 100% 15/15 97.39% 112/115
roosterjs-content-model-api/lib/modelApi/table
98.08% 358/365 86.05% 253/294 95.74% 45/47 97.84% 317/324
roosterjs-content-model-api/lib/publicApi/block
97.01% 65/67 80.95% 34/42 100% 17/17 96.92% 63/65
roosterjs-content-model-api/lib/publicApi/entity
97.67% 42/43 96.88% 31/32 66.67% 2/3 97.44% 38/39
roosterjs-content-model-api/lib/publicApi/format
100% 28/28 90% 9/10 100% 4/4 100% 28/28
roosterjs-content-model-api/lib/publicApi/image
100% 71/71 77.42% 24/31 100% 18/18 100% 71/71
roosterjs-content-model-api/lib/publicApi/link
89.01% 81/91 80.52% 62/77 95% 19/20 88.89% 80/90
roosterjs-content-model-api/lib/publicApi/list
100% 24/24 50% 2/4 100% 8/8 100% 22/22
roosterjs-content-model-api/lib/publicApi/segment
100% 186/186 91.98% 149/162 100% 47/47 100% 182/182
roosterjs-content-model-api/lib/publicApi/table
81.05% 231/285 70.25% 111/158 78.26% 18/23 80.8% 223/276
roosterjs-content-model-api/lib/publicApi/utils
99.54% 218/219 93.33% 112/120 100% 34/34 99.47% 189/190
roosterjs-content-model-core/lib
100% 14/14 100% 0/0 71.43% 5/7 100% 7/7
roosterjs-content-model-core/lib/command/createModelFromHtml
96.19% 101/105 87.37% 83/95 92.86% 13/14 95.74% 90/94
roosterjs-content-model-core/lib/command/cutCopy
100% 60/60 90.16% 55/61 100% 7/7 100% 58/58
roosterjs-content-model-core/lib/command/exportContent
100% 18/18 88.89% 8/9 100% 2/2 100% 18/18
roosterjs-content-model-core/lib/command/paste
98.84% 171/173 86.78% 105/121 100% 23/23 98.81% 166/168
roosterjs-content-model-core/lib/command/redo
100% 6/6 100% 2/2 100% 1/1 100% 6/6
roosterjs-content-model-core/lib/command/undo
100% 8/8 100% 4/4 100% 1/1 100% 8/8
roosterjs-content-model-core/lib/coreApi
100% 17/17 100% 0/0 100% 0/0 100% 17/17
roosterjs-content-model-core/lib/coreApi/addUndoSnapshot
98.28% 114/116 90.1% 91/101 100% 6/6 98.17% 107/109
roosterjs-content-model-core/lib/coreApi/announce
100% 27/27 90% 27/30 100% 3/3 100% 24/24
roosterjs-content-model-core/lib/coreApi/attachDomEvent
100% 20/20 100% 6/6 100% 6/6 100% 14/14
roosterjs-content-model-core/lib/coreApi/createContentModel
100% 22/22 100% 32/32 100% 1/1 100% 21/21
roosterjs-content-model-core/lib/coreApi/createEditorContext
100% 14/14 100% 28/28 100% 2/2 100% 13/13
roosterjs-content-model-core/lib/coreApi/focus
100% 8/8 100% 12/12 100% 1/1 100% 7/7
roosterjs-content-model-core/lib/coreApi/formatContentModel
100% 64/64 96.58% 113/117 100% 8/8 100% 60/60
roosterjs-content-model-core/lib/coreApi/getDOMSelection
100% 9/9 95.45% 21/22 100% 2/2 100% 8/8
roosterjs-content-model-core/lib/coreApi/getVisibleViewport
100% 15/15 75% 6/8 100% 8/8 100% 14/14
roosterjs-content-model-core/lib/coreApi/restoreUndoSnapshot
99.13% 114/115 86.08% 68/79 100% 10/10 99.09% 109/110
roosterjs-content-model-core/lib/coreApi/setContentModel
100% 19/19 95.45% 21/22 100% 1/1 100% 18/18
roosterjs-content-model-core/lib/coreApi/setDOMSelection
97.45% 153/157 86.05% 148/172 100% 14/14 97.39% 149/153
roosterjs-content-model-core/lib/coreApi/setEditorStyle
100% 45/45 100% 24/24 100% 5/5 100% 43/43
roosterjs-content-model-core/lib/coreApi/setLogicalRoot
100% 17/17 100% 8/8 100% 1/1 100% 16/16
roosterjs-content-model-core/lib/coreApi/switchShadowEdit
100% 25/25 100% 12/12 50% 1/2 100% 24/24
roosterjs-content-model-core/lib/coreApi/triggerEvent
100% 12/12 100% 16/16 100% 4/4 100% 11/11
roosterjs-content-model-core/lib/corePlugin
100% 11/11 100% 0/0 100% 1/1 100% 11/11
roosterjs-content-model-core/lib/corePlugin/cache
93.94% 465/495 81.4% 385/473 98.55% 68/69 93.71% 447/477
roosterjs-content-model-core/lib/corePlugin/contextMenu
95.65% 44/46 75.93% 41/54 91.67% 11/12 95.56% 43/45
roosterjs-content-model-core/lib/corePlugin/copyPaste
93.85% 61/65 77.08% 37/48 94.12% 16/17 93.75% 60/64
roosterjs-content-model-core/lib/corePlugin/copyPaste/utils
94.74% 18/19 85.29% 29/34 100% 3/3 94.44% 17/18
roosterjs-content-model-core/lib/corePlugin/domEvent
87.62% 92/105 72.03% 103/143 73.91% 17/23 87.5% 91/104
roosterjs-content-model-core/lib/corePlugin/entity
91.25% 313/343 76.35% 310/406 91.53% 54/59 90.91% 300/330
roosterjs-content-model-core/lib/corePlugin/format
97.96% 144/147 84.47% 136/161 96.15% 25/26 97.92% 141/144
roosterjs-content-model-core/lib/corePlugin/lifecycle
98.33% 59/60 88.57% 31/35 92.86% 13/14 98.31% 58/59
roosterjs-content-model-core/lib/corePlugin/selection
96.48% 384/398 84.25% 444/527 94.74% 36/38 96.34% 368/382
roosterjs-content-model-core/lib/corePlugin/undo
94.27% 148/157 88.24% 135/153 93.1% 27/29 94.27% 148/157
roosterjs-content-model-core/lib/editor
97.58% 121/124 97.56% 40/41 94.44% 34/36 97.5% 117/120
roosterjs-content-model-core/lib/editor/core
100% 118/118 90.28% 130/144 100% 33/33 100% 115/115
roosterjs-content-model-core/lib/override
100% 98/98 91.51% 97/106 100% 16/16 100% 91/91
roosterjs-content-model-core/lib/utils
96.15% 25/26 100% 6/6 87.5% 7/8 100% 23/23
roosterjs-content-model-dom/lib
100% 288/288 100% 0/0 90.48% 152/168 100% 164/164
roosterjs-content-model-dom/lib/config
100% 3/3 100% 0/0 100% 0/0 100% 3/3
roosterjs-content-model-dom/lib/constants
100% 9/9 100% 0/0 100% 0/0 100% 9/9
roosterjs-content-model-dom/lib/domToModel
100% 9/9 100% 8/8 100% 1/1 100% 9/9
roosterjs-content-model-dom/lib/domToModel/context
100% 53/53 97.62% 41/42 100% 15/15 100% 53/53
roosterjs-content-model-dom/lib/domToModel/processors
98.87% 612/619 91.32% 347/380 100% 65/65 98.78% 568/575
roosterjs-content-model-dom/lib/domToModel/utils
98.85% 86/87 98.57% 69/70 100% 16/16 98.84% 85/86
roosterjs-content-model-dom/lib/domUtils
96.84% 245/253 90.28% 195/216 97.87% 46/47 96.75% 238/246
roosterjs-content-model-dom/lib/domUtils/event
94.44% 68/72 98.51% 66/67 94.74% 18/19 94.44% 68/72
roosterjs-content-model-dom/lib/domUtils/hiddenProperties
100% 25/25 100% 4/4 100% 8/8 100% 25/25
roosterjs-content-model-dom/lib/domUtils/selection
94.17% 113/120 85.86% 85/99 100% 16/16 93.75% 105/112
roosterjs-content-model-dom/lib/domUtils/style
100% 72/72 93.1% 54/58 100% 13/13 100% 71/71
roosterjs-content-model-dom/lib/domUtils/table
100% 21/21 80% 8/10 100% 3/3 100% 15/15
roosterjs-content-model-dom/lib/formatHandlers
100% 57/57 100% 0/0 100% 2/2 100% 57/57
roosterjs-content-model-dom/lib/formatHandlers/block
99.01% 100/101 96.77% 120/124 100% 22/22 99.01% 100/101
roosterjs-content-model-dom/lib/formatHandlers/common
99.36% 156/157 95.74% 135/141 100% 34/34 99.36% 156/157
roosterjs-content-model-dom/lib/formatHandlers/entity
100% 8/8 100% 4/4 100% 2/2 100% 8/8
roosterjs-content-model-dom/lib/formatHandlers/list
100% 71/71 98.51% 66/67 100% 10/10 100% 70/70
roosterjs-content-model-dom/lib/formatHandlers/segment
98.78% 162/164 96.41% 188/195 100% 27/27 98.78% 162/164
roosterjs-content-model-dom/lib/formatHandlers/table
100% 40/40 100% 28/28 87.5% 7/8 100% 40/40
roosterjs-content-model-dom/lib/formatHandlers/utils
97.56% 120/123 94.33% 133/141 100% 15/15 97.39% 112/115
roosterjs-content-model-dom/lib/modelApi/block
100% 17/17 100% 8/8 100% 2/2 100% 14/14
roosterjs-content-model-dom/lib/modelApi/common
99.11% 335/338 93.43% 270/289 100% 63/63 99.04% 310/313
roosterjs-content-model-dom/lib/modelApi/creators
100% 74/74 95.83% 23/24 100% 19/19 100% 73/73
roosterjs-content-model-dom/lib/modelApi/editing
96.76% 927/958 87.09% 769/883 98.58% 139/141 97.22% 873/898
roosterjs-content-model-dom/lib/modelApi/list
100% 37/37 100% 35/35 100% 4/4 100% 34/34
roosterjs-content-model-dom/lib/modelApi/metadata
100% 89/89 100% 50/50 100% 20/20 100% 89/89
roosterjs-content-model-dom/lib/modelApi/selection
97.65% 291/298 97.07% 298/307 100% 51/51 97.46% 269/276
roosterjs-content-model-dom/lib/modelApi/typeCheck
100% 5/5 100% 6/6 100% 2/2 100% 5/5
roosterjs-content-model-dom/lib/modelToDom
94.74% 36/38 74.14% 43/58 100% 3/3 94.59% 35/37
roosterjs-content-model-dom/lib/modelToDom/context
100% 49/49 100% 40/40 100% 16/16 100% 49/49
roosterjs-content-model-dom/lib/modelToDom/handlers
99.6% 495/497 94.51% 379/401 100% 32/32 99.57% 460/462
roosterjs-content-model-dom/lib/modelToDom/optimizers
100% 66/66 92.73% 51/55 100% 6/6 100% 62/62
roosterjs-content-model-dom/lib/modelToDom/utils
100% 40/40 95.83% 23/24 100% 7/7 100% 40/40
roosterjs-content-model-dom/lib/modelToText
95.92% 47/49 73.33% 22/30 86.67% 13/15 95.92% 47/49
roosterjs-content-model-markdown/lib
100% 4/4 100% 0/0 0% 0/2 100% 2/2
roosterjs-content-model-markdown/lib/constants
100% 3/3 100% 0/0 100% 0/0 100% 3/3
roosterjs-content-model-markdown/lib/markdownToModel
100% 4/4 66.67% 4/6 100% 1/1 100% 4/4
roosterjs-content-model-markdown/lib/markdownToModel/appliers
100% 95/95 100% 47/47 100% 10/10 100% 92/92
roosterjs-content-model-markdown/lib/markdownToModel/creators
100% 93/93 93.18% 41/44 100% 13/13 100% 86/86
roosterjs-content-model-markdown/lib/markdownToModel/processor
89.41% 76/85 91.04% 61/67 100% 4/4 92.41% 73/79
roosterjs-content-model-markdown/lib/markdownToModel/utils
96.43% 54/56 95.56% 43/45 100% 8/8 96.08% 49/51
roosterjs-content-model-markdown/lib/modelToMarkdown
100% 3/3 100% 0/0 100% 1/1 100% 3/3
roosterjs-content-model-markdown/lib/modelToMarkdown/creators
92.14% 129/140 81.03% 47/58 100% 8/8 93.1% 108/116
roosterjs-content-model-markdown/lib/modelToMarkdown/processor
100% 17/17 100% 9/9 100% 1/1 100% 14/14
roosterjs-content-model-plugins/lib
100% 62/62 100% 0/0 7.89% 3/38 100% 39/39
roosterjs-content-model-plugins/lib/announce
100% 56/56 97.62% 41/42 100% 7/7 100% 53/53
roosterjs-content-model-plugins/lib/autoFormat
98.44% 126/128 92.86% 65/70 90.91% 20/22 98.17% 107/109
roosterjs-content-model-plugins/lib/autoFormat/horizontalLine
100% 27/27 100% 11/11 100% 6/6 100% 24/24
roosterjs-content-model-plugins/lib/autoFormat/hyphen
100% 21/21 93.75% 15/16 100% 1/1 100% 21/21
roosterjs-content-model-plugins/lib/autoFormat/link
87.5% 21/24 68.75% 11/16 66.67% 4/6 87.5% 21/24
roosterjs-content-model-plugins/lib/autoFormat/list
100% 159/159 84.46% 125/148 100% 23/23 100% 154/154
roosterjs-content-model-plugins/lib/autoFormat/numbers
100% 46/46 90% 36/40 100% 4/4 100% 46/46
roosterjs-content-model-plugins/lib/contextMenuBase
19.51% 8/41 0% 0/34 12.5% 1/8 17.95% 7/39
roosterjs-content-model-plugins/lib/customReplace
72.22% 26/36 78.57% 11/14 70% 7/10 75% 24/32
roosterjs-content-model-plugins/lib/dragAndDrop
100% 34/34 95% 19/20 100% 7/7 100% 32/32
roosterjs-content-model-plugins/lib/dragAndDrop/utils
100% 27/27 87.5% 7/8 100% 3/3 100% 24/24
roosterjs-content-model-plugins/lib/edit
89.63% 268/299 79.58% 226/284 84.09% 37/44 89.62% 259/289
roosterjs-content-model-plugins/lib/edit/deleteSteps
87.26% 226/259 81.57% 177/217 95.24% 20/21 87.55% 204/233
roosterjs-content-model-plugins/lib/edit/inputSteps
98.55% 68/69 83.64% 46/55 100% 9/9 98.44% 63/64
roosterjs-content-model-plugins/lib/edit/tabUtils
98% 98/100 78.57% 77/98 100% 14/14 97.89% 93/95
roosterjs-content-model-plugins/lib/edit/utils
100% 63/63 95.83% 46/48 100% 5/5 100% 63/63
roosterjs-content-model-plugins/lib/findReplace
100% 82/82 85.71% 54/63 100% 10/10 100% 80/80
roosterjs-content-model-plugins/lib/findReplace/utils
100% 108/108 85.87% 79/92 100% 19/19 100% 99/99
roosterjs-content-model-plugins/lib/hiddenProperty
89.66% 26/29 90% 9/10 75% 6/8 88% 22/25
roosterjs-content-model-plugins/lib/hyperlink
94.12% 64/68 84.38% 81/96 84.62% 11/13 95.31% 61/64
roosterjs-content-model-plugins/lib/imageEdit
85.39% 298/349 64.91% 209/322 74.51% 38/51 85.21% 288/338
roosterjs-content-model-plugins/lib/imageEdit/Cropper
93.85% 61/65 87.76% 43/49 92.86% 13/14 95% 57/60
roosterjs-content-model-plugins/lib/imageEdit/Resizer
86.25% 69/80 81.93% 68/83 93.33% 14/15 86.49% 64/74
roosterjs-content-model-plugins/lib/imageEdit/Rotator
78.79% 52/66 62.75% 32/51 87.5% 7/8 79.69% 51/64
roosterjs-content-model-plugins/lib/imageEdit/constants
100% 19/19 100% 0/0 100% 0/0 100% 19/19
roosterjs-content-model-plugins/lib/imageEdit/types
100% 7/7 100% 2/2 100% 1/1 100% 7/7
roosterjs-content-model-plugins/lib/imageEdit/utils
92.78% 360/388 76.97% 244/317 98.08% 51/52 92.63% 352/380
roosterjs-content-model-plugins/lib/markdown
83.67% 82/98 60.26% 47/78 81.82% 9/11 83.33% 80/96
roosterjs-content-model-plugins/lib/markdown/utils
100% 20/20 83.33% 15/18 100% 3/3 100% 20/20
roosterjs-content-model-plugins/lib/paste
97.56% 80/82 93.55% 29/31 90% 9/10 97.5% 78/80
roosterjs-content-model-plugins/lib/paste/Excel
91.23% 52/57 73.33% 44/60 85.71% 6/7 91.07% 51/56
roosterjs-content-model-plugins/lib/paste/PowerPoint
98.28% 57/58 88.89% 48/54 100% 6/6 98.21% 55/56
roosterjs-content-model-plugins/lib/paste/WacComponents
95.58% 108/113 93.33% 84/90 100% 15/15 95.5% 106/111
roosterjs-content-model-plugins/lib/paste/WordDesktop
95.77% 181/189 93.98% 156/166 100% 17/17 95.56% 172/180
roosterjs-content-model-plugins/lib/paste/oneNote
100% 50/50 76.47% 26/34 100% 5/5 100% 45/45
roosterjs-content-model-plugins/lib/paste/parsers
97.62% 82/84 98.44% 63/64 100% 14/14 97.3% 72/74
roosterjs-content-model-plugins/lib/paste/pasteSourceValidations
100% 67/67 91.43% 32/35 100% 11/11 100% 58/58
roosterjs-content-model-plugins/lib/paste/processors
100% 15/15 66.67% 4/6 100% 2/2 100% 13/13
roosterjs-content-model-plugins/lib/paste/utils
87.14% 61/70 71.7% 38/53 84.62% 11/13 86.96% 60/69
roosterjs-content-model-plugins/lib/picker
95.68% 133/139 83.69% 118/141 89.47% 17/19 95.45% 126/132
roosterjs-content-model-plugins/lib/pluginUtils/CreateElement
100% 25/25 95.83% 23/24 100% 4/4 100% 25/25
roosterjs-content-model-plugins/lib/pluginUtils/DragAndDrop
94.92% 56/59 73.53% 25/34 100% 13/13 94.64% 53/56
roosterjs-content-model-plugins/lib/pluginUtils/Rect
16.67% 2/12 0% 0/6 0% 0/7 16.67% 2/12
roosterjs-content-model-plugins/lib/shortcut
96.77% 90/93 94.59% 35/37 92.86% 26/28 96.59% 85/88
roosterjs-content-model-plugins/lib/shortcut/utils
100% 9/9 100% 5/5 100% 2/2 100% 9/9
roosterjs-content-model-plugins/lib/tableEdit
66.28% 57/86 57.5% 46/80 62.5% 10/16 66.25% 53/80
roosterjs-content-model-plugins/lib/tableEdit/editors
74.63% 150/201 60.43% 113/187 69.7% 23/33 74.37% 148/199
roosterjs-content-model-plugins/lib/tableEdit/editors/features
88.09% 451/512 70.21% 271/386 92.86% 52/56 88.44% 436/493
roosterjs-content-model-plugins/lib/tableEdit/editors/utils
100% 7/7 66.67% 4/6 100% 1/1 100% 7/7
roosterjs-content-model-plugins/lib/touch
11.32% 12/106 0% 0/86 12.5% 1/8 11% 11/100
roosterjs-content-model-plugins/lib/watermark
91.14% 72/79 84.62% 55/65 82.35% 14/17 90.67% 68/75
roosterjs-content-model-types/lib
0% 0/0 0% 0/0 0% 0/0 0% 0/0
roosterjs-editor-adapter/lib/corePlugins
87.4% 111/127 68.87% 73/106 90.32% 28/31 87.29% 103/118
roosterjs-editor-adapter/lib/editor
36.05% 137/380 13.81% 50/362 16.25% 13/80 36.31% 134/369
roosterjs-editor-adapter/lib/editor/utils
54.77% 109/199 60.24% 253/420 50% 9/18 54.87% 107/195
roosterjs/lib
100% 15/15 100% 4/4 100% 2/2 100% 14/14