This run took 118 seconds.
$ date Mon Nov 29 06:42:17 UTC 2021 $ git clone file:///srv/git/mediawiki-extensions-WikibaseLexeme.git repo --depth=1 -b REL1_36 Cloning into 'repo'... $ git config user.name libraryupgrader $ git config user.email tools.libraryupgrader@tools.wmflabs.org $ git submodule update --init $ grr init Installed commit-msg hook. $ git show-ref refs/heads/REL1_36 8f8fb1c18fd2fed038e094e70a61b8fa4b9ee259 refs/heads/REL1_36 $ composer install Loading composer repositories with package information Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/ Updating dependencies (including require-dev) Package operations: 56 installs, 0 updates, 0 removals - Installing giorgiosironi/eris (0.10.0): Loading from cache - Installing patchwork/utf8 (v1.3.3): Loading from cache - Installing doctrine/lexer (1.2.1): Loading from cache - Installing psr/cache (1.0.1): Loading from cache - Installing doctrine/annotations (1.13.2): Loading from cache - Installing doctrine/reflection (1.2.2): Loading from cache - Installing doctrine/event-manager (1.1.1): Loading from cache - Installing doctrine/collections (1.6.8): Loading from cache - Installing doctrine/cache (1.12.1): Loading from cache - Installing doctrine/persistence (1.3.8): Loading from cache - Installing doctrine/inflector (1.4.4): Loading from cache - Installing doctrine/common (2.13.3): Loading from cache - Installing icomefromthenet/reverse-regex (v0.0.6.3): Loading from cache - Installing squizlabs/php_codesniffer (3.5.8): Loading from cache - Installing composer/spdx-licenses (1.5.6): Loading from cache - Installing composer/semver (3.2.6): Loading from cache - Installing mediawiki/mediawiki-codesniffer (v35.0.0): Loading from cache - Installing symfony/polyfill-php80 (v1.23.1): Loading from cache - Installing symfony/polyfill-mbstring (v1.23.1): Loading from cache - Installing symfony/polyfill-intl-normalizer (v1.23.0): Loading from cache - Installing symfony/polyfill-intl-grapheme (v1.23.1): Loading from cache - Installing symfony/polyfill-ctype (v1.23.0): Loading from cache - Installing symfony/string (v5.3.10): Loading from cache - Installing symfony/deprecation-contracts (v2.5.0): Loading from cache - Installing psr/container (1.1.1): Loading from cache - Installing symfony/service-contracts (v2.5.0): Loading from cache - Installing symfony/polyfill-php73 (v1.23.0): Loading from cache - Installing symfony/console (v5.3.11): Loading from cache - Installing psr/log (1.1.4): Loading from cache - Installing sabre/event (5.1.4): Loading from cache - Installing netresearch/jsonmapper (v3.1.1): Loading from cache - Installing microsoft/tolerant-php-parser (v0.0.23): Loading from cache - Installing phpdocumentor/reflection-common (2.2.0): Loading from cache - Installing webmozart/assert (1.10.0): Loading from cache - Installing phpdocumentor/type-resolver (1.5.1): Loading from cache - Installing phpdocumentor/reflection-docblock (5.3.0): Loading from cache - Installing felixfbecker/advanced-json-rpc (v3.2.1): Loading from cache - Installing composer/xdebug-handler (1.4.6): Loading from cache - Installing phan/phan (3.2.6): Loading from cache - Installing mediawiki/phan-taint-check-plugin (3.2.1): Loading from cache - Installing mediawiki/mediawiki-phan-config (0.10.6): Loading from cache - Installing mediawiki/minus-x (1.1.1): Loading from cache - Installing php-parallel-lint/php-console-color (v0.3): Loading from cache - Installing php-parallel-lint/php-console-highlighter (v0.5): Loading from cache - Installing php-parallel-lint/php-parallel-lint (v1.2.0): Loading from cache - Installing serialization/serialization (4.0.0): Loading from cache - Installing data-values/data-values (3.0.0): Loading from cache - Installing data-values/serialization (1.2.4): Loading from cache - Installing wikimedia/assert (v0.5.0): Loading from cache - Installing wikibase/data-model (9.6.1): Loading from cache - Installing wikibase/data-model-serialization (2.9.1): Loading from cache - Installing diff/diff (3.2.0): Loading from cache - Installing wikibase/data-model-services (5.4.0): Loading from cache - Installing wmde/php-vuejs-templating (1.0.3): Loading from cache - Installing davidrjonas/composer-lock-diff (1.6.1): Loading from cache - Installing hamcrest/hamcrest-php (v2.0.1): Loading from cache giorgiosironi/eris suggests installing phpunit/phpunit (Standard way to run generated test cases) patchwork/utf8 suggests installing ext-wfio (Use WFIO for UTF-8 filesystem access on Windows) doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver) symfony/service-contracts suggests installing symfony/service-implementation symfony/console suggests installing symfony/event-dispatcher symfony/console suggests installing symfony/lock symfony/console suggests installing symfony/process phan/phan suggests installing ext-ast (Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed, 1.0.8+ is recommended.) wikibase/data-model-serialization suggests installing data-values/geo (Needed for deserialization of geographical values) wikibase/data-model-serialization suggests installing data-values/number (Needed for deserialization of numerical values) wikibase/data-model-serialization suggests installing data-values/time (Needed for deserialization of time values) Package patchwork/utf8 is abandoned, you should avoid using it. Use symfony/polyfill-mbstring or symfony/string instead. Package doctrine/reflection is abandoned, you should avoid using it. Use roave/better-reflection instead. Writing lock file Generating autoload files 21 packages you are using are looking for funding. Use the `composer fund` command to find out more! Attempting to npm audit fix $ npm audit fix --only=dev > fibers@4.0.3 install /src/repo/node_modules/fibers > node build.js || nodejs build.js `linux-x64-64-glibc` exists; testing Binary is fine; exiting > core-js@2.6.12 postinstall /src/repo/node_modules/core-js > node -e "try{require('./postinstall')}catch(e){}" [96mThank you for using core-js ([94m https://github.com/zloirock/core-js [96m) for polyfilling JavaScript standard library![0m [96mThe project needs your help! Please consider supporting of core-js on Open Collective or Patreon: [0m [96m>[94m https://opencollective.com/core-js [0m [96m>[94m https://www.patreon.com/zloirock [0m [96mAlso, the author of core-js ([94m https://github.com/zloirock [96m) is looking for a good job -)[0m > core-js@3.9.1 postinstall /src/repo/node_modules/eslint-plugin-compat/node_modules/core-js > node -e "try{require('./postinstall')}catch(e){}" npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.1 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) added 915 packages from 1180 contributors in 24.011s 101 packages are looking for funding run `npm fund` for details fixed 0 of 6 vulnerabilities in 918 scanned packages 3 vulnerabilities required manual review and could not be updated 3 package updates for 3 vulnerabilities involved breaking changes (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually) $ npm audit fix --only=dev npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.1 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) up to date in 4.439s 101 packages are looking for funding run `npm fund` for details fixed 0 of 6 vulnerabilities in 918 scanned packages 3 vulnerabilities required manual review and could not be updated 3 package updates for 3 vulnerabilities involved breaking changes (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually) $ npm audit fix --only=dev npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.1 (node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) up to date in 3.959s 101 packages are looking for funding run `npm fund` for details fixed 0 of 6 vulnerabilities in 918 scanned packages 3 vulnerabilities required manual review and could not be updated 3 package updates for 3 vulnerabilities involved breaking changes (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually) $ package-lock-lint package-lock.json Checking package-lock.json Verifying that tests still pass $ npm ci npm WARN prepare removing existing node_modules/ before installation > core-js@2.6.12 postinstall /src/repo/node_modules/core-js > node -e "try{require('./postinstall')}catch(e){}" > core-js@3.9.1 postinstall /src/repo/node_modules/eslint-plugin-compat/node_modules/core-js > node -e "try{require('./postinstall')}catch(e){}" > fibers@4.0.3 install /src/repo/node_modules/fibers > node build.js || nodejs build.js `linux-x64-64-glibc` exists; testing Binary is fine; exiting added 916 packages in 14.066s $ npm test > @ test /src/repo > grunt test && npm run test:mwlibs Running "eslint:all" (eslint) task /src/repo/resources/datamodel/LexemeSubEntityId.js 9:3 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/focusElement.js 4:2 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/jquery.wikibase.lexemeformview.js 286:2 warning Missing JSDoc @return declaration jsdoc/require-returns 290:0 warning Missing JSDoc @param "lemmas" type jsdoc/require-param-type 291:0 warning Missing JSDoc @param "formIndex" type jsdoc/require-param-type 292:0 warning Missing JSDoc @param "formId" type jsdoc/require-param-type 293:0 warning Missing JSDoc @param "representations" type jsdoc/require-param-type /src/repo/resources/jquery.wikibase.senselistview.js 63:3 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/services/LanguageFromItemExtractor.js 30:3 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/view/ViewFactoryFactory.js 21:0 warning Syntax error in type: [] jsdoc/valid-types /src/repo/resources/widgets/GlossWidget.js 32:0 warning Syntax error in type: [{ value: string, language: string }] jsdoc/valid-types /src/repo/resources/widgets/GrammaticalFeatureListWidget.js 7:0 warning Invalid JSDoc tag name "mixins" jsdoc/check-tag-names 77:3 warning Missing JSDoc @return declaration jsdoc/require-returns 92:3 warning Missing JSDoc @return declaration jsdoc/require-returns 99:3 warning Missing JSDoc @return declaration jsdoc/require-returns 100:0 warning Missing JSDoc @param "response" type jsdoc/require-param-type 108:0 warning Missing JSDoc @param "term" type jsdoc/require-param-type 151:0 warning Missing JSDoc @param "menuItem" type jsdoc/require-param-type /src/repo/resources/widgets/ItemSelectorWidget.js 91:3 warning Missing JSDoc @return declaration jsdoc/require-returns 126:3 warning Missing JSDoc @return declaration jsdoc/require-returns 127:0 warning Missing JSDoc @param "response" type jsdoc/require-param-type 134:3 warning Missing JSDoc @return declaration jsdoc/require-returns 135:0 warning Missing JSDoc @param "data" type jsdoc/require-param-type 166:0 warning Missing JSDoc @param "item" type jsdoc/require-param-type /src/repo/resources/widgets/LanguageAndLexicalCategoryWidget.js 6:2 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/widgets/LemmaWidget.newLemmaWidget.js 11:2 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/widgets/LexemeHeader.newLexemeHeader.js 6:2 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/widgets/LexemeHeader.newLexemeHeaderStore.js 55:2 warning Missing JSDoc @return declaration jsdoc/require-returns /src/repo/resources/widgets/RepresentationWidget.js 18:0 warning Missing JSDoc @param "mw" type jsdoc/require-param-type 120:0 warning Missing JSDoc @param "mw" type jsdoc/require-param-type /src/repo/tests/selenium/pageobjects/lexeme.page.js 236:0 warning Missing JSDoc @param "input" type jsdoc/require-param-type 237:0 warning Missing JSDoc @param "value" type jsdoc/require-param-type /src/repo/tests/selenium/specs/header.edit.js 11:25 warning "../../../../Wikibase/repo/tests/selenium/wdio-wikibase/wikibase.api" is not found node/no-missing-require /src/repo/tests/selenium/specs/special/recentchanges.js 5:31 warning "../../../../../../tests/selenium/pageobjects/recentchanges.page" is not found node/no-missing-require /src/repo/tests/selenium/specs/special/watchlist.js 8:27 warning "../../../../../../tests/selenium/pageobjects/watchlist.page" is not found node/no-missing-require 9:27 warning "../../../../../../tests/selenium/pageobjects/watchable.page" is not found node/no-missing-require ✖ 36 problems (0 errors, 36 warnings) Running "banana:WikibaseLexeme" (banana) task >> 2 message directories checked. Running "jasmine_nodejs:all" (jasmine_nodejs) task >> Executing 121 defined specs... Test Suites & Specs: 1) focusElement ✔ returns a callback without doing anything else 2) callback Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools You are running Vue in development mode. Make sure to turn on production mode when deploying for production. See more tips at https://vuejs.org/guide/deployment.html ✔ calls focus on selected element ✔ can handle missing element 3) actionTypes ✔ uses unique ids for all action types 4) RedundantLanguageIndicator ✔ creates mixin watch handler that can find multiple redundant languages ✔ creates mixin watch handler that updates redundantLanguages with respective language values ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages ✔ creates mixin definition providing method to determine if language isRedundantLanguage ✔ creates mixin definition with watch that fires immediately ✔ creates mixin definition with watch on desired property ✔ creates mixin definition that adds a redundantLanguages property to data ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages ✔ creates mixin definition providing computed property hasRedundantLanguage ✔ creates mixin watch handler not taking offence in repeated empty language ✔ creates mixin definition with watch that monitors the property recursively 5) RepresentationWidget [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ switches to edit mode when editing [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ adds a new empty representation when editing the widget with no representations and multiple lemmas [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ adds an empty representation on add [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) ✔ is not in edit mode after being created [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ can carry redundant representations [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) ✔ cannot remove representation if not in edit mode [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ adds a new representation with lemma language when editing the widget with no representations and one lemma [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ shows only the representation it contains when editing the widget with some representation [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ can remove a representation [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) ✔ cannot add representation if not in edit mode [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ adds a representation with unique lemmas language on add after delete [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ detects redundant representation languages and can mark the individual languages [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ detects redundant representation languages and marks the widget [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build. (found in <Root>) [Vue warn]: Error in nextTick: "TypeError: this.$el.querySelector is not a function" (found in <Root>) TypeError: this.$el.querySelector is not a function at Vue.<anonymous> (/src/repo/resources/focusElement.js:15:27) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1976:12) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.runtime.common.dev.js:1902:14) at process._tickCallback (internal/process/next_tick.js:68:7) ✔ is not in edit mode after editing is stopped 6) LexemeHeader.newLexemeHeaderStore ✔ mutation finishSaving switches the isSaving flag to false ✔ action save calls API with correct parameters when removing an item from the state ✔ action save calls API with correct parameters and changes state using data from response ✔ action save on success mutates the state to start saving, updates state and finishes saving ✔ mutation startSaving switches the isSaving flag to true ✔ mutation updateLemmas changes lemmas to given values ✔ mutation updateRevisionId changes baseRevId to given value ✔ mutation updateLanguage changes lexical category and the link to given values ✔ failed save returns rejected promise with first error object if API returns multiple errors ✔ failed save returns rejected promise with a single error object ✔ mutation updateLanguage changes language and languageLink to given values 7) LanguageAndLexicalCategoryWidget [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at VueComponent.Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) at process._tickCallback (internal/process/next_tick.js:68:7) [Vue warn]: Error in mounted hook: "TypeError: api.formatValue is not a function" found in ---> <ItemSelector> <Root> TypeError: api.formatValue is not a function at formatEntityLabel (/src/repo/resources/widgets/ItemSelectorWrapper.js:13:7) at VueComponent.mounted (/src/repo/resources/widgets/ItemSelectorWrapper.js:37:5) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at VueComponent.Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) at process._tickCallback (internal/process/next_tick.js:68:7) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read property 'destroy' of undefined" found in ---> <ItemSelector> <Root> TypeError: Cannot read property 'destroy' of undefined at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at VueComponent.Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:4004:7) at destroy (/src/repo/node_modules/vue/dist/vue.js:3166:29) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6109:61) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6125:13) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6230:9) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6188:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6188:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6475:11) at VueComponent.Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) [Vue warn]: Error in destroyed hook: "TypeError: Cannot read property 'destroy' of undefined" found in ---> <ItemSelector> <Root> TypeError: Cannot read property 'destroy' of undefined at VueComponent.destroyed (/src/repo/resources/widgets/ItemSelectorWrapper.js:66:43) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at VueComponent.Vue.$destroy (/src/repo/node_modules/vue/dist/vue.js:4004:7) at destroy (/src/repo/node_modules/vue/dist/vue.js:3166:29) at invokeDestroyHook (/src/repo/node_modules/vue/dist/vue.js:6109:61) at removeVnodes (/src/repo/node_modules/vue/dist/vue.js:6125:13) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6230:9) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6188:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at updateChildren (/src/repo/node_modules/vue/dist/vue.js:6188:11) at patchVnode (/src/repo/node_modules/vue/dist/vue.js:6314:31) at VueComponent.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6475:11) at VueComponent.Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at VueComponent.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) ✔ switches to edit mode and back ✔ shows the language and the lexical category 8) wikibase.lexeme.widgets.LexemeHeader ✔ attempting to save with empty lemmas fails ✔ shows save button enabled when not unsaveable ✔ binds to lemma-widget hasRedundantLanguage event ✔ save lemma list ✔ shows save button disabled when unsaveable ✔ save lemma list with error ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget ✔ updates language and lexical category on save 9) isUnsaveable ✔ returns true when there are no changes ✔ returns true when there are changes but saving is ongoing ✔ returns false by default ✔ returns true when there are changes but also lemmas with redundant languages 10) hasChanges ✔ returns true when lemmas change ✔ ignores added empty lemmas ✔ returns true when language changes ✔ returns true when lexical category changes ✔ returns false by default ✔ passes lemmas to LemmaWidget ✔ switch to edit mode ✔ shows save button disabled without changes ✔ cancel edit mode 11) LemmaList ✔ length ✔ remove ✔ getLemmas 12) equals ✔ returns true for LemmaList with same lemmas ✔ returns false for LemmaList with different lemmas ✔ ignores empty lemmas ✔ returns false for LemmaList of different length ✔ returns false for objects that are not of type LemmaList 13) copy ✔ creates an identical LemmaList ✔ clones Lemmas ✔ add 14) wikibase.lexeme.widgets.LemmaWidget ✔ initialize widget with one lemma ✔ can carry redundant lemma languages ✔ edit mode is false ✔ detects redundant lemma language to mark the individual languages ✔ remove a lemma ✔ detects redundant lemma languages to mark the widget ✔ marks-up the lemma term with the lemma language ✔ add a new lemma ✔ edit mode is true 15) mutationTypes ✔ uses unique ids for all mutation types 16) GlossWidget ✔ removes empty glosses when saved ✔ remove a gloss ✔ stop editing [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:30:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:29:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:30:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:29:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) ✔ add a new gloss [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:30:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:29:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) ✔ create with no glosses - when switched to edit mode empty gloss is added [Vue warn]: Error in mounted hook: "TypeError: mw.message(...).text is not a function" found in ---> <LanguageSelector> <Root> TypeError: mw.message(...).text is not a function at getLanguageLabel (/src/repo/resources/widgets/LanguageSelectorWrapper.js:23:8) at /src/repo/resources/widgets/LanguageSelectorWrapper.js:30:25 at Array.forEach (<anonymous>) at VueComponent.mounted (/src/repo/resources/widgets/LanguageSelectorWrapper.js:29:20) at invokeWithErrorHandling (/src/repo/node_modules/vue/dist/vue.js:1863:59) at callHook (/src/repo/node_modules/vue/dist/vue.js:4220:9) at Object.insert (/src/repo/node_modules/vue/dist/vue.js:3146:9) at invokeInsertHook (/src/repo/node_modules/vue/dist/vue.js:6341:30) at Vue.patch [as __patch__] (/src/repo/node_modules/vue/dist/vue.js:6558:7) at Vue._update (/src/repo/node_modules/vue/dist/vue.js:3949:21) at Vue.updateComponent (/src/repo/node_modules/vue/dist/vue.js:4067:12) at Watcher.get (/src/repo/node_modules/vue/dist/vue.js:4478:27) at Watcher.run (/src/repo/node_modules/vue/dist/vue.js:4553:24) at flushSchedulerQueue (/src/repo/node_modules/vue/dist/vue.js:4311:15) at Array.<anonymous> (/src/repo/node_modules/vue/dist/vue.js:1989:14) at flushCallbacks (/src/repo/node_modules/vue/dist/vue.js:1915:16) ✔ switch to edit mode ✔ initialize widget with one gloss 17) ItemSelectorWrapper ✔ passes the item ID to the entityselector widget on mount 18) store ✔ creates initial state 19) LexemeSubEntityId 20) getIdSuffix ✔ returns the Sense id suffix ✔ returns the Form id suffix 21) actions ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation ✔ REMOVE_REPRESENTATION delegates to mutation ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values 22) mutations ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index ✔ ADD_REPRESENTATION adds a new representation to the right form ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form 23) InvalidLanguageIndicator ✔ creates mixin watch handler that updates InvalidLanguages with respective language values ✔ creates mixin definition providing method to determine if language isInvalidLanguage ✔ creates mixin definition with watch on desired property ✔ creates mixin definition that adds an InvalidLanguages property to data ✔ creates mixin definition providing computed property hasInvalidLanguage ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages ✔ creates mixin definition with watch that monitors the property recursively ✔ creates mixin watch handler not taking offence in empty language ✔ creates mixin watch handler that can find multiple invalid languages ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages ✔ creates mixin definition with watch that does not fire immediately >> Done! Summary: Suites: 23 of 23 Specs: 121 of 121 Expects: 0 (0 failures) Finished in 0.503 seconds >> Successful! Running "stylelint:all" (stylelint) task >> Linted 6 files without errors Done. > @ test:mwlibs /src/repo > ZUUL_BRANCH=${ZUUL_BRANCH:-master} lib-version-check Local version of vue is in the same version range as https://raw.githubusercontent.com/wikimedia/mediawiki/master/resources/lib/vue/vue.common.prod.js Local version of vuex is in the same version range as https://raw.githubusercontent.com/wikimedia/mediawiki/master/resources/lib/vuex/vuex.js $ package-lock-lint package-lock.json Checking package-lock.json $ git add . $ git commit -F /tmp/tmp2t31hd8y On branch REL1_36 Your branch is up to date with 'origin/REL1_36'. nothing to commit, working tree clean