This run took 148 seconds.
$ date --- stdout --- Sat Mar 25 18:39:09 UTC 2023 --- end --- $ git clone file:///srv/git/VisualEditor-VisualEditor.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- 85c2352a598c12e0ba65dd0a9791866c3452f604 refs/heads/master --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1091459, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" } ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2 }, "dependencies": { "prod": 1, "dev": 654, "optional": 3, "peer": 0, "peerOptional": 0, "total": 654 } } } --- end --- $ /usr/bin/npm audit --json --legacy-peer-deps --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1091459, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" } ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2 }, "dependencies": { "prod": 1, "dev": 654, "optional": 3, "peer": 0, "peerOptional": 0, "total": 654 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --legacy-peer-deps --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production --- stdout --- { "added": 654, "removed": 0, "changed": 0, "audited": 655, "funding": 88, "audit": { "auditReportVersion": 2, "vulnerabilities": { "grunt-css-url-embed": { "name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": [ "request" ], "effects": [], "range": ">=1.1.0", "nodes": [ "node_modules/grunt-css-url-embed" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } }, "request": { "name": "request", "severity": "moderate", "isDirect": false, "via": [ { "source": 1091459, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": [ "CWE-918" ], "cvss": { "score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N" }, "range": "<=2.88.2" } ], "effects": [ "grunt-css-url-embed" ], "range": "*", "nodes": [ "node_modules/request" ], "fixAvailable": { "name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2 }, "dependencies": { "prod": 1, "dev": 654, "optional": 3, "peer": 0, "peerOptional": 0, "total": 654 } } } } --- end --- {"added": 654, "removed": 0, "changed": 0, "audited": 655, "funding": 88, "audit": {"auditReportVersion": 2, "vulnerabilities": {"grunt-css-url-embed": {"name": "grunt-css-url-embed", "severity": "moderate", "isDirect": true, "via": ["request"], "effects": [], "range": ">=1.1.0", "nodes": ["node_modules/grunt-css-url-embed"], "fixAvailable": {"name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "moderate", "isDirect": false, "via": [{"source": 1091459, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}], "effects": ["grunt-css-url-embed"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "grunt-css-url-embed", "version": "1.0.4", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 2, "high": 0, "critical": 0, "total": 2}, "dependencies": {"prod": 1, "dev": 654, "optional": 3, "peer": 0, "peerOptional": 0, "total": 654}}}} $ /usr/bin/npm audit fix --only=dev --legacy-peer-deps --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 --- stdout --- added 653 packages, and audited 654 packages in 12s 88 packages are looking for funding run `npm fund` for details # npm audit report request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 fix available via `npm audit fix --force` Will install grunt-css-url-embed@1.0.4, which is a breaking change node_modules/request grunt-css-url-embed >=1.1.0 Depends on vulnerable versions of request node_modules/grunt-css-url-embed 2 moderate severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- Verifying that tests still pass $ /usr/bin/npm ci --legacy-peer-deps --- stderr --- npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated kad-fs@0.0.4: This package is no longer maintained. npm WARN deprecated kad-memstore@0.0.1: This package is no longer maintained. --- stdout --- > visualeditor@0.0.0 postinstall > cd rebaser && npm ci added 196 packages, and audited 197 packages in 4s 13 packages are looking for funding run `npm fund` for details 8 vulnerabilities (5 moderate, 2 high, 1 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. > visualeditor@0.0.0 prepare > grunt build Running "clean:dist" (clean) task >> 0 paths cleaned. Running "concat:rebaser.build" (concat) task Running "concat:visualEditor.rebase.scripts" (concat) task Running "concat:visualEditor.rebase.styles" (concat) task Running "concat:js" (concat) task Running "concat:css-apex" (concat) task Running "concat:css-wikimediaui" (concat) task Running "concat:jquery.i18n" (concat) task Running "concat:jquery.uls.data" (concat) task Running "cssjanus:apex" (cssjanus) task File "dist/visualEditor-apex.rtl.css" created. Running "cssjanus:wikimediaui" (cssjanus) task File "dist/visualEditor-wikimediaui.rtl.css" created. Running "cssUrlEmbed:dist" (cssUrlEmbed) task Processing source file "dist/visualEditor-apex.css" 2 embeddable URLs found Processing source file "dist/visualEditor-apex.rtl.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.rtl.css" 2 embeddable URLs found >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.rtl.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.rtl.css" created Running "copy:i18n" (copy) task Copied 218 files Running "copy:lib" (copy) task Created 27 directories, copied 1419 files Running "buildloader:iframe" (buildloader) task >> File ".jsduck/eg-iframe.html" written. Running "buildloader:desktopDemoApex" (buildloader) task >> File "demos/ve/desktop.html" written. Running "buildloader:desktopDemoApexDist" (buildloader) task >> File "demos/ve/desktop-dist.html" written. Running "buildloader:desktopDemoWikimediaUI" (buildloader) task >> File "demos/ve/desktop-wikimediaui.html" written. Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task >> File "demos/ve/desktop-wikimediaui-dist.html" written. Running "buildloader:mobileDemo" (buildloader) task >> File "demos/ve/mobile.html" written. Running "buildloader:mobileDemoDist" (buildloader) task >> File "demos/ve/mobile-dist.html" written. Running "buildloader:minimalDemo" (buildloader) task >> File "demos/ve/minimal.html" written. Running "buildloader:minimalDemoRtl" (buildloader) task >> File "demos/ve/minimal-rtl.html" written. Running "buildloader:performanceTest" (buildloader) task >> File "demos/ve/performance.html" written. Running "buildloader:test" (buildloader) task >> File "tests/index.html" written. Done. added 653 packages, and audited 654 packages in 19s 88 packages are looking for funding run `npm fund` for details 2 moderate severity vulnerabilities To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. --- end --- $ /usr/bin/npm test --- stdout --- > visualeditor@0.0.0 test > grunt test Running "tyops:src" (tyops) task >> No typos found; 609 files checked for 19 typos. Running "eslint:all" (eslint) task Running "stylelint:all" (stylelint) task >> Linted 70 files without errors Running "banana:all" (banana) task >> 1 message directory checked. Running "git-build" task Running "clean:dist" (clean) task >> 12 paths cleaned. Running "concat:rebaser.build" (concat) task Running "concat:visualEditor.rebase.scripts" (concat) task Running "concat:visualEditor.rebase.styles" (concat) task Running "concat:js" (concat) task Running "concat:css-apex" (concat) task Running "concat:css-wikimediaui" (concat) task Running "concat:jquery.i18n" (concat) task Running "concat:jquery.uls.data" (concat) task Running "cssjanus:apex" (cssjanus) task File "dist/visualEditor-apex.rtl.css" created. Running "cssjanus:wikimediaui" (cssjanus) task File "dist/visualEditor-wikimediaui.rtl.css" created. Running "cssUrlEmbed:dist" (cssUrlEmbed) task Processing source file "dist/visualEditor-apex.css" 2 embeddable URLs found Processing source file "dist/visualEditor-apex.rtl.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.css" 2 embeddable URLs found Processing source file "dist/visualEditor-wikimediaui.rtl.css" 2 embeddable URLs found >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-nw-se.svg" embedded >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-apex.rtl.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.css" created >> "../../../ui/styles/images/resize-ne-sw.svg" embedded File "dist/visualEditor-wikimediaui.rtl.css" created Running "copy:i18n" (copy) task Copied 218 files Running "copy:lib" (copy) task Created 27 directories, copied 1419 files Running "buildloader:iframe" (buildloader) task >> File ".jsduck/eg-iframe.html" written. Running "buildloader:desktopDemoApex" (buildloader) task >> File "demos/ve/desktop.html" written. Running "buildloader:desktopDemoApexDist" (buildloader) task >> File "demos/ve/desktop-dist.html" written. Running "buildloader:desktopDemoWikimediaUI" (buildloader) task >> File "demos/ve/desktop-wikimediaui.html" written. Running "buildloader:desktopDemoWikimediaUIDist" (buildloader) task >> File "demos/ve/desktop-wikimediaui-dist.html" written. Running "buildloader:mobileDemo" (buildloader) task >> File "demos/ve/mobile.html" written. Running "buildloader:mobileDemoDist" (buildloader) task >> File "demos/ve/mobile-dist.html" written. Running "buildloader:minimalDemo" (buildloader) task >> File "demos/ve/minimal.html" written. Running "buildloader:minimalDemoRtl" (buildloader) task >> File "demos/ve/minimal-rtl.html" written. Running "buildloader:performanceTest" (buildloader) task >> File "demos/ve/performance.html" written. Running "buildloader:test" (buildloader) task >> File "tests/index.html" written. Running "karma:chrome" (karma) task START: [33m25 03 2023 18:40:43.114:WARN [filelist]: [39mAll files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers. [32m25 03 2023 18:40:51.484:INFO [karma-server]: [39mKarma v6.4.1 server started at http://localhost:9876/ [32m25 03 2023 18:40:51.484:INFO [launcher]: [39mLaunching browsers ChromeCustom with concurrency unlimited [32m25 03 2023 18:40:51.488:INFO [launcher]: [39mStarting browser ChromeHeadless [32m25 03 2023 18:40:55.048:INFO [Chrome Headless 109.0.5414.119 (Linux x86_64)]: [39mConnected on socket sU4oWYH7I_zTwF79AAAB with id 94219672 ve ✔ compareClassLists ✔ isInstanceOfAny ✔ getDomAttributes ✔ setDomAttributes ✔ sparseSplice ✔ batchSplice ✔ batchPush ✔ insertIntoArray ✔ escapeHtml ✔ addHeadTag ✔ createDocumentFromHtml ✔ resolveUrl ✔ resolveAttributes ✔ fixBase ✔ isUriComponentValid ✔ safeDecodeURIComponent ✔ isBlockElement/isVoidElement ✔ graphemeSafeSubstring ✔ transformStyleAttributes ✔ normalizeNode ✔ getCommonAncestor ✔ getCommonStartSequenceLength ✔ adjacentDomPosition ✔ deepFreeze ✔ deepFreeze (on cyclic structure) ✔ deepFreeze (recursive, aliased) ve.DiffMatchPatch ✔ indexOf/lastIndexOf ve.EventSequencer ✔ EventSequencer ve.Scheduler ✔ Call with no real async ✔ Call with delay ✔ Test that throws an exception ✔ Test that never succeeds ve.Range ✔ Basic usage (isCollapsed, isBackwards, getLength, equals, equalsSelection, containsOffset, containsRange, touchesRange) ✔ Modification (flip, truncate, expand, translate) ✔ Factory methods & serialization (newCoveringRange, newFromJSON, toJSON) ve.Document ✔ getDocumentNode ve.Node ✔ getType ✔ getParent ✔ getRoot ve.BranchNode ✔ getChildren ✔ indexOf ✔ setDocument ve.sanitize ✔ ve.sanitizeHtml ✔ ve.sanitizeHtmlToDocument ✔ ve.setAttributeSafe ve.dm.Annotation ✔ getHashObject ve.dm.AnnotationSet ✔ Basic usage ✔ Comparable ve.dm.LinkAnnotation ✔ getFragment ve.dm.NodeFactory ✔ getChildNodeTypes ✔ getParentNodeTypes ✔ canNodeHaveChildren ✔ canNodeTakeAnnotation ✔ canNodeHaveChildrenNotContent ✔ initialization ve.dm.Node ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ getLength ✔ getOuterLength ✔ setLength ✔ adjustLength ✔ getAttribute ✔ setRoot ✔ attach ✔ detach ✔ canBeMergedWith ✔ getClonedElement ve.dm.Converter ✔ getModelFromDom ✔ getModelFromDom with store argument ✔ getDomFromModel ✔ getFullData ✔ roundTripMetadata ve.dm.SourceConverter ✔ conversion ve.dm.BranchNode ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ setRoot ✔ setDocument ✔ push ✔ pop ✔ unshift ✔ shift ✔ splice ve.dm.LeafNode ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ getAnnotations ve.dm.TextNode ✔ getOuterLength ve.dm.Document ✔ constructor ✔ newBlankDocument ✔ getData ✔ getFullData ✔ cloneFromRange ✔ getRelativeOffset ✔ getRelativeRange ✔ getBranchNodeFromOffset ✔ hasSlugAtOffset ✔ getDataFromNode ✔ getOuterLength ✔ selectNodes ✔ rangeInsideOneLeafNode ✔ shallowCloneFromRange ✔ protection against double application of transactions ✔ getNearestCursorOffset ✔ Selection equality ✔ findText (plain text) ✔ findText (non-text content) ✔ fixupInsertion ✔ read-only and offset caching ve.dm.HashValueStore ✔ hash(es) ✔ value(s) ✔ slice ve.dm.InternalList ✔ getDocument ✔ queueItemHtml/getItemHtmlQueue ✔ convertToData ✔ clone ve.dm.LinearData ✔ basic usage ✔ slice(Object)/splice(Object)/batchSplice ve.dm.Transaction ✔ translateOffset ✔ translateRange ✔ getModifiedRange ✔ Metadata transactions ve.dm.TransactionBuilder ✔ newFromInsertion ✔ newFromRemoval ✔ newFromReplacement ✔ newFromDocumentInsertion ✔ newFromAttributeChanges ✔ newFromAnnotation ✔ newFromContentBranchConversion ✔ newFromWrap ✔ pushRetain ✔ pushReplacement ✔ pushReplaceElementAttribute ✔ isNoOp ✔ operations/build from operations ✔ newFromRemoval preserving metadata ve.dm.TransactionSquasher ✔ squash ve.dm.Change ✔ rebaseTransactions ✔ Change operations ✔ Rebase with conflicting annotations ✔ toJSON/deserialize/unsafeDeserialize ✔ Minified serialization ✔ Same-offset typing ve.dm.RebaseServer ✔ Rebase ve.dm.DocumentStore ✔ Create ve.dm.TransportServer ✔ Create ve.dm.TreeModifier ✔ treeDiff ✔ modify ✔ bare content ✔ applyTreeOperation: ensureNotText ✔ setupBlockSlugs ✔ checkEqualData ✔ TreeCursor#crossIgnoredNodes ✔ TreeCursor#normalizeCursor ve.dm.TransactionProcessor ✔ commit ✔ undo clear annotation ve.dm.Surface ✔ getDocument ✔ getSelection ✔ setSelection out of range ✔ contextChange events ✔ documentUpdate/select events ✔ breakpoint/undo/redo ✔ multi-user undo ✔ change rollback ✔ range translation ✔ staging ✔ getOffsetFromSourceOffset / getSourceOffsetFromOffset / getRangeFromSourceOffsets ✔ autosave ve.dm.SurfaceFragment ✔ constructor ✔ update ✔ getSelectedModels ✔ getAnnotations ✔ hasAnnotations ✔ adjustLinearSelection ✔ truncateLinearSelection ✔ collapseToStart/End ✔ expandLinearSelection (annotation) ✔ expandLinearSelection (closest) ✔ expandLinearSelection (word) ✔ removeContent ✔ delete ✔ insertContent/insertDocument ✔ changeAttributes ✔ wrapNodes/unwrapNodes ✔ rewrapNodes ✔ wrapAllNodes ✔ rewrapAllNodes ✔ isolateAndUnwrap ve.dm.SourceSurfaceFragment ✔ insertContent/insertDocument ve.dm.ModelRegistry ✔ register/unregister/matchElement ✔ isAnnotation ve.dm.MetaList ✔ constructor/getItems/getItemsInGroup/indexOf ✔ onNodeAttached/onNodeDetached ve.dm.Scalable ✔ construction/clone/getters/setters/toggleDefault/clearers ✔ getBoundedDimensions/getCurrentScale/isCurrentDimensionsValid/isTooSmall/isTooLarge ✔ isDefault/toggleDefault ✔ isDimensionsObjectValid ✔ getDimensionsFromValue ve.dm.LinearSelection ✔ Construction and getters (getRange(s)) ✔ Basic methods (collapse*, isCollased, equals, isNull) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.NullSelection ✔ Construction and getters (getDocument, getRanges) ✔ Basic methods (collapse*, isCollased, equals, isNull) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.TableSelection ✔ Construction and getters (getDocument, getRanges, getOuterRanges, getTableNode) ✔ Basic methods (expand, collapse*, getRange(s), isCollased, isSingleCell, equals, isNull, isFullRow/Col, getRow/ColCount) ✔ Factory methods & serialization (newFromJSON, toJSON, getDescription) ve.dm.FlatLinearData ✔ getType/isOpenElementData/isCloseElementData ✔ isElementData ✔ containsElementData ve.dm.ElementLinearData ✔ getAnnotationsFromOffset ✔ getAnnotationsFromRange ✔ getInsertionAnnotationsFromRange ✔ getAnnotatedRangeFromOffset ✔ trimOuterSpaceFromRange ✔ isContentOffset ✔ isStructuralOffset ✔ getCharacterData ✔ isPlainText ✔ getText ✔ getSourceText ✔ isContentData ✔ getRelativeOffset ✔ getRelativeContentOffset ✔ getNearestContentOffset ✔ getRelativeStructuralOffset ✔ getNearestStructuralOffset ✔ getWordRange ✔ sanitize ✔ countNonInternalElements ✔ hasContent ✔ getAnnotationHashesFromOffset ✔ getUsedStoreValues ✔ compareElements and compareElementsUnannotated ve.ce ✔ getDomHash/getDomText (with ve.dm.Converter) ✔ getDomHash/getDomText (without ve.dm.Converter) ✔ getOffset ✔ isShortcutKey ✔ nextCursorOffset ✔ resolveTestOffset ✔ fakeImes ✔ isAfterAnnotationBoundary ve.ce.Document ✔ Converter tests ✔ getNodeAndOffset ✔ attachedRoot ve.ce.Surface ✔ handleObservedChanges (content changes) ✔ handleDataTransfer/handleDataTransferItems ✔ getClipboardHash ✔ onCopy [33m25 03 2023 18:41:01.247:WARN [web-server]: [39m404: /null ✔ beforePaste/afterPaste ✔ onDocumentDragStart/onDocumentDrop ✔ getSelectionState ✔ findBlockSlug ✔ selectFirstSelectableContentOffset/selectLastSelectableContentOffset ✔ getViewportRange ve.ce.RangeState ✔ Basic tests ve.ce.TextState ✔ getChangeTransaction ve.ce.NodeFactory ✔ splitNodeOnEnter/getDescription ✔ initialization ve.ce.AnnotationFactory ✔ canAnnotationBeActive/getDescription ✔ initialization ve.ce.Node ✔ getModel ✔ getParent ✔ attach ✔ detach ve.ce.BranchNode ✔ splitOnEnter ✔ canHaveChildren ✔ canHaveChildrenNotContent ✔ updateTagName ✔ getDomPosition ✔ onSplice ve.ce.ContentBranchNode ✔ getRenderedContents ve.ce.LeafNode ✔ splitOnEnter ✔ canHaveChildren ✔ canHaveChildrenNotContent ve.ce.Selection ✔ Rects ✔ getDirectionality ✔ equals ve.ce.LinearArrowKeyDownHandler ✔ special key down: linear arrow keys ve.ce.LinearDeleteKeyDownHandler ✔ special key down: linear backspace/delete ve.ce.LinearEnterKeyDownHandler ✔ special key down: linear enter ve.ce.LinearEscapeKeyDownHandler ✔ special key down: linear escape ve.ce.TableArrowKeyDownHandler ✔ special key down: table arrow keys (complex movements) ✔ special key down: table arrow keys (simple movements) ve.ce.TableDeleteKeyDownHandler ✔ special key down: table backspace/delete ve.ce.TableEnterKeyDownHandler ✔ special key down: table enter ve.ce.TableF2KeyDownHandler ✔ special key down: table f2 ve.ce.ResizableNode ✔ updateSizeLabel ✔ resize events ✔ notResizable ve.ce.TextNode ✔ getAnnotatedHtml ve.ce.TableNode ✔ getNearestCellNode ✔ getFirstSectionNode ✔ onTableMouseDown/onTableMouseMove/onTableMouseUp/onTableDblClick ✔ onTableMouseDown ve.init.Target ✔ createModelFromDom/parseDocument (source mode) ve.init.sa.Platform ✔ getUserConfig ✔ setUserConfig ✔ messages ✔ parsedMessage ve.init.ConflictableStorage ✔ Basic methods ✔ Conflict handling ve.ui.DataTransferHandlerFactory ✔ getHandlerNameForItem ve.ui.Trigger ✔ constructor ve.ui.Sequence ✔ findAndExecuteSequences ve.ui.DiffElement ✔ Diffing ✔ compareAttributes/describeChanges ve.ui.PreviewElement ✔ Basic tests ve.ui.AnnotationAction ✔ toggle ve.ui.BlockquoteAction ✔ wrap/unwrap/toggle ve.ui.ContentAction ✔ insert/remove/select/selectAll ve.ui.FormatAction ✔ convert ve.ui.IndentationAction ✔ increase/decrease ve.ui.LinkAction ✔ autolink ve.ui.ListAction ✔ (un)wrap ve.ui.TableAction ✔ create / insert / mergeCells / delete / changeCellStyle / moveRelative ve.ui.WindowAction ✔ Basic open/close ve.ui.DSVFileTransferHandler ✔ getInsertableData ve.ui.UrlStringTransferHandler ✔ paste ve.ui.FindAndReplaceDialog ✔ find fragments ✔ replace all ve.ui.FragmentInspector ✔ Different selections and inputs Finished in 13.816 secs / 13.498 secs @ 18:41:10 GMT+0000 (Coordinated Universal Time) SUMMARY: ✔ 320 tests completed =============================== Coverage summary =============================== Statements : 81.62% ( 18386/22524 ) Branches : 73.39% ( 7958/10842 ) Functions : 73.53% ( 2301/3129 ) Lines : 81.45% ( 18042/22149 ) ================================================================================ Running "karma:firefox" (karma) task [33m25 03 2023 18:41:11.156:WARN [filelist]: [39mAll files matched by "/src/repo/node_modules/qunit/qunit/qunit.js" were excluded or matched by prior matchers. [32m25 03 2023 18:41:11.214:INFO [karma-server]: [39mKarma v6.4.1 server started at http://localhost:9876/ [32m25 03 2023 18:41:11.214:INFO [launcher]: [39mLaunching browsers FirefoxHeadless with concurrency unlimited [32m25 03 2023 18:41:11.217:INFO [launcher]: [39mStarting browser FirefoxHeadless [32m25 03 2023 18:41:15.546:INFO [Firefox 102.0 (Linux x86_64)]: [39mConnected on socket J5dSomMjYGngzfKGAAAD with id 11641044 ................................................................................ ................................................................................ ................................................................................ .......[33m25 03 2023 18:41:21.293:WARN [web-server]: [39m404: /null ......................................................................... Firefox 102.0 (Linux x86_64): Executed 320 of 320 SUCCESS (16.047 secs / 15.888 secs) Done. --- end --- $ package-lock-lint package-lock.json --- stdout --- Checking package-lock.json --- end --- [DNM] there are no updates $ git add . --- stdout --- --- end --- $ git commit -F /tmp/tmpa83yjd2i --- stdout --- On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean --- end ---