All files

92.54% Statements 14951/16157
81.79% Branches 11022/13476
88.62% Functions 2344/2645
92.35% Lines 14013/15174

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 37.5% 24/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.22% 229/238 92.22% 154/167 97.14% 34/35 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.29% 165/175 89.4% 135/151 92.59% 25/27 94.05% 158/168
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
96.62% 257/266 82.99% 200/241 93.02% 40/43 96.37% 239/248
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 81.01% 64/79 95.24% 20/21 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
80.58% 224/278 69.87% 109/156 78.26% 18/23 80.3% 216/269
roosterjs-content-model-api/lib/publicApi/utils
99.53% 214/215 93.22% 110/118 100% 33/33 99.46% 185/186
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
96.73% 148/153 87.69% 114/130 100% 17/17 96.5% 138/143
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.08% 133/137 84.76% 139/164 100% 11/11 96.99% 129/133
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% 22/22 100% 12/12 50% 1/2 100% 21/21
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.93% 464/494 80.98% 379/468 98.55% 68/69 93.7% 446/476
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.13% 88/101 71.94% 100/139 72.73% 16/22 87% 87/100
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
95.85% 370/386 83.66% 425/508 94.59% 35/37 95.66% 353/369
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.56% 120/123 97.56% 40/41 94.44% 34/36 97.48% 116/119
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 92.86% 91/98 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% 278/278 100% 0/0 91.41% 149/163 100% 159/159
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.83% 591/598 91.11% 338/371 100% 63/63 98.75% 551/558
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.8% 242/250 90.28% 195/216 97.83% 45/46 96.71% 235/243
roosterjs-content-model-dom/lib/domUtils/event
93.1% 54/58 97.96% 48/49 94.44% 17/18 93.1% 54/58
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
91.67% 22/24 86.67% 26/30 100% 5/5 91.67% 22/24
roosterjs-content-model-dom/lib/domUtils/style
94.44% 51/54 92.11% 35/38 100% 11/11 94.34% 50/53
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% 55/55 100% 0/0 100% 2/2 100% 55/55
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.24% 130/131 95.12% 117/123 100% 30/30 99.24% 130/131
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.17% 161/164 95.9% 187/195 100% 27/27 98.17% 161/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
98.2% 109/111 95.56% 129/135 100% 12/12 98.06% 101/103
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.32% 293/295 93.98% 250/266 100% 58/58 99.29% 280/282
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.65% 836/865 86.18% 661/767 97.04% 131/135 96.69% 789/816
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% 86/86 100% 50/50 100% 20/20 100% 86/86
roosterjs-content-model-dom/lib/modelApi/selection
97.3% 288/296 96.7% 293/303 100% 51/51 97.08% 266/274
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.58% 472/474 94.34% 367/389 100% 33/33 99.55% 442/444
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% 39/39 95.83% 23/24 100% 7/7 100% 39/39
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
97.73% 43/44 90% 27/30 100% 7/7 97.44% 38/39
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% 60/60 100% 0/0 8.11% 3/37 100% 38/38
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.65% 63/68 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/edit
88.26% 248/281 77.22% 200/259 83.72% 36/43 88.19% 239/271
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% 81/81 86.15% 56/65 100% 10/10 100% 79/79
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
93.19% 356/382 78.11% 232/297 98.08% 51/52 93.05% 348/374
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.54% 107/112 93.1% 81/87 100% 15/15 95.41% 104/109
roosterjs-content-model-plugins/lib/paste/WordDesktop
95.72% 179/187 93.98% 156/166 100% 17/17 95.51% 170/178
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.26% 71/73 98.28% 57/58 100% 13/13 96.88% 62/64
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
100% 12/12 66.67% 4/6 100% 7/7 100% 12/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 58.97% 46/78 62.5% 10/16 66.25% 53/80
roosterjs-content-model-plugins/lib/tableEdit/editors
76.11% 137/180 59.51% 97/163 67.74% 21/31 75.84% 135/178
roosterjs-content-model-plugins/lib/tableEdit/editors/features
86.63% 350/404 67.7% 218/322 92.68% 38/41 87.15% 339/389
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.43% 12/105 0% 0/90 12.5% 1/8 11.11% 11/99
roosterjs-content-model-plugins/lib/utils
75% 12/16 55.56% 10/18 100% 1/1 75% 12/16
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