mediawiki/extensions/WikibaseLexeme: main (log #449025)

sourcepatches

This run took 130 seconds.

$ date
Wed Sep 15 08:39:47 UTC 2021

$ git clone file:///srv/git/mediawiki-extensions-WikibaseLexeme.git repo --depth=1 -b master
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/master
b03534027a3a423a76a0f95f7d574dc1f0481561 refs/heads/master

$ 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: 52 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.6.0): Loading from cache
  - Installing sebastian/diff (3.0.3): Loading from cache
  - Installing composer/spdx-licenses (1.5.5): Loading from cache
  - Installing composer/semver (3.2.5): Loading from cache
  - Installing mediawiki/mediawiki-codesniffer (v37.0.0): Loading from cache
  - Installing tysonandre/var_representation_polyfill (0.1.1): 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.7): Loading from cache
  - Installing psr/container (1.1.1): Loading from cache
  - Installing symfony/service-contracts (v2.4.0): Loading from cache
  - Installing symfony/polyfill-php73 (v1.23.0): Loading from cache
  - Installing symfony/deprecation-contracts (v2.4.0): Loading from cache
  - Installing symfony/console (v5.3.7): Loading from cache
  - Installing psr/log (1.1.4): Loading from cache
  - Installing sabre/event (5.1.2): Loading from cache
  - Installing netresearch/jsonmapper (v4.0.0): Loading from cache
  - Installing microsoft/tolerant-php-parser (v0.1.1): 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.4.0): Loading from cache
  - Installing phpdocumentor/reflection-docblock (5.2.2): Loading from cache
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Loading from cache
  - Installing composer/xdebug-handler (2.0.2): Loading from cache
  - Installing phan/phan (5.2.0): Loading from cache
  - Installing mediawiki/phan-taint-check-plugin (3.3.2): Loading from cache
  - Installing mediawiki/mediawiki-phan-config (0.11.0): 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.3.1): Loading from cache
  - Installing serialization/serialization (4.0.0): Loading from cache
  - Installing wikimedia/assert (v0.5.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)
tysonandre/var_representation_polyfill suggests installing ext-var_representation (*)
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.14+ is recommended.)
phan/phan suggests installing ext-var_representation (Suggested for converting values to strings in issue messages)
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){}"

Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!

The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 
> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 

Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)


> core-js@3.10.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.1.3 (node_modules/mocha/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
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 993 packages from 1171 contributors in 21.193s

107 packages are looking for funding
  run `npm fund` for details

fixed 0 of 3 vulnerabilities in 998 scanned packages
  2 vulnerabilities required manual review and could not be updated
  1 package update for 1 vulnerability 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 wdio-wikibase@5.1.0 requires a peer of webdriverio@^7.0 but none is installed. You must install peer dependencies yourself.
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"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/mocha/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 5.081s

107 packages are looking for funding
  run `npm fund` for details

fixed 0 of 3 vulnerabilities in 998 scanned packages
  2 vulnerabilities required manual review and could not be updated
  1 package update for 1 vulnerability 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 wdio-wikibase@5.1.0 requires a peer of webdriverio@^7.0 but none is installed. You must install peer dependencies yourself.
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"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/mocha/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 5.168s

107 packages are looking for funding
  run `npm fund` for details

fixed 0 of 3 vulnerabilities in 998 scanned packages
  2 vulnerabilities required manual review and could not be updated
  1 package update for 1 vulnerability 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.10.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 995 packages in 17.816s

$ 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/entityChangers/FormChanger.js
  175:10  warning  'language' used outside of binding context  block-scoped-var
  176:13  warning  'language' used outside of binding context  block-scoped-var
  177:14  warning  'language' used outside of binding context  block-scoped-var
  178:17  warning  'language' used outside of binding context  block-scoped-var

/src/repo/resources/entityChangers/SenseChanger.js
  160:10  warning  'language' used outside of binding context  block-scoped-var
  161:13  warning  'language' used outside of binding context  block-scoped-var
  162:14  warning  'language' used outside of binding context  block-scoped-var
  163:17  warning  'language' used outside of binding context  block-scoped-var

/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/LanguageSelectorWrapper.js
  34:40  warning  '_labels' used outside of binding context  block-scoped-var
  35:34  warning  '_labels' used outside of binding context  block-scoped-var

/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

✖ 43 problems (0 errors, 43 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) InvalidLanguageIndicator
   ✔ creates mixin definition with watch on desired property
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
   ✔ creates mixin watch handler that can find multiple invalid languages
   ✔ creates mixin watch handler not taking offence in empty language
   ✔ creates mixin definition providing computed property hasInvalidLanguage
   ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin definition providing method to determine if language isInvalidLanguage
   ✔ creates mixin watch handler that updates InvalidLanguages with respective language values
   ✔ creates mixin definition with watch that does not fire immediately
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin definition that adds an InvalidLanguages property to data
   ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages

2) LemmaList

   3) copy
      ✔ creates an identical LemmaList
      ✔ clones Lemmas

   4) equals
      ✔ ignores empty lemmas
      ✔ returns true for LemmaList with same lemmas
      ✔ returns false for LemmaList of different length
      ✔ returns false for LemmaList with different lemmas
      ✔ returns false for objects that are not of type LemmaList

   ✔ add

   ✔ remove

   ✔ getLemmas

   ✔ length

5) focusElement
   ✔ returns a callback without doing anything else

   6) callback
      ✔ calls focus on selected element
      ✔ can handle missing element

7) actionTypes
   ✔ uses unique ids for all action types

8) wikibase.lexeme.widgets.LemmaWidget
   ✔ detects redundant lemma languages to mark the widget
   ✔ detects redundant lemma language to mark the individual languages
   ✔ edit mode is true
   ✔ can carry redundant lemma languages
   ✔ initialize widget with one lemma
   ✔ marks-up the lemma term with the lemma language
   ✔ remove a lemma
   ✔ add a new lemma
   ✔ edit mode is false

9) GlossWidget
   ✔ removes empty glosses when saved
[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
[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
   ✔ remove a 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)
[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
   ✔ stop editing
   ✔ initialize widget with one gloss

10) mutationTypes
   ✔ uses unique ids for all mutation types

11) ItemSelectorWrapper
   ✔ passes the item ID to the entityselector widget on mount

12) 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)
   ✔ 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)
   ✔ 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)
   ✔ 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>)
[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)
   ✔ 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>)
[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)
   ✔ is not in edit mode after editing is stopped
[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)
   ✔ 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)
[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>)
   ✔ 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>)
   ✔ 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 an empty representation on add

13) LanguageAndLexicalCategoryWidget
   ✔ shows the language and the lexical category
[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

14) RedundantLanguageIndicator
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin definition with watch that fires immediately
   ✔ creates mixin definition that adds a redundantLanguages property to data
   ✔ creates mixin watch handler not taking offence in repeated empty language
   ✔ creates mixin definition providing method to determine if language isRedundantLanguage
   ✔ creates mixin definition providing computed property hasRedundantLanguage
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin property hasRedundantLanguage returning true for existing redundantLanguages
   ✔ creates mixin definition method isRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin watch handler that can find multiple redundant languages
   ✔ creates mixin property hasRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin watch handler that updates redundantLanguages with respective language values

15) LexemeSubEntityId

   16) getIdSuffix
      ✔ returns the Sense id suffix
      ✔ returns the Form id suffix

17) 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

18) store
   ✔ creates initial state

19) LexemeHeader.newLexemeHeaderStore
   ✔ mutation updateLanguage changes lexical category and the link to given values
   ✔ mutation updateRevisionId changes baseRevId to given value
   ✔ mutation updateLanguage changes language and languageLink to given values
   ✔ mutation finishSaving switches the isSaving flag to false
   ✔ mutation startSaving switches the isSaving flag to true
   ✔ mutation updateLemmas changes lemmas 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
   ✔ 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
   ✔ action save calls API with correct parameters when removing an item from the state

20) mutations
   ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
   ✔ DERIVE_REPRESENTATION_LANGUAGE_FROM_LEMMA changes representation language correctly
   ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form
   ✔ UPDATE_REPRESENTATION_VALUE changes correct representation value
   ✔ REMOVE_REPRESENTATION removes representation leaving others with updated index
   ✔ ADD_REPRESENTATION adds a new representation to the right form

21) wikibase.lexeme.widgets.LexemeHeader
   ✔ save lemma list
   ✔ attempting to save with empty lemmas fails

   22) hasChanges
      ✔ ignores added empty lemmas
      ✔ returns true when lemmas change
      ✔ returns true when language changes
      ✔ returns true when lexical category changes
      ✔ returns false by default

   ✔ save lemma list with error

   ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget

   ✔ passes lemmas to LemmaWidget

   ✔ updates language and lexical category on save

   ✔ shows save button disabled when unsaveable

   ✔ shows save button disabled without changes

   ✔ binds to lemma-widget hasRedundantLanguage event

   ✔ cancel edit mode

   ✔ shows save button enabled when not unsaveable

   ✔ switch to edit mode

   23) isUnsaveable
      ✔ returns true when there are changes but also lemmas with redundant languages
      ✔ returns true when there are no changes
      ✔ returns true when there are changes but saving is ongoing
      ✔ returns false by default

>> Done!


Summary:

Suites:  23 of 23
Specs:   121 of 121
Expects: 0 (0 failures)
Finished in 0.608 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/tmpaiuurbay
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean
Source code is licensed under the AGPL.