mediawiki/extensions/WikibaseLexeme: REL1_36 (log #550115)

sourcepatches

This run took 120 seconds.

$ date
Mon Nov 29 06:38:32 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){}"

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.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 19.481s

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.462s

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.968s

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.443s

$ 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) wikibase.lexeme.widgets.LemmaWidget
   ✔ remove a lemma
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
   ✔ can carry redundant lemma languages
   ✔ edit mode is true
   ✔ initialize widget with one lemma
   ✔ edit mode is false
   ✔ detects redundant lemma language to mark the individual languages
   ✔ detects redundant lemma languages to mark the widget
   ✔ add a new lemma
   ✔ marks-up the lemma term with the lemma language

2) LexemeHeader.newLexemeHeaderStore
   ✔ mutation startSaving switches the isSaving flag to true
   ✔ action save calls API with correct parameters and changes state using data from response
   ✔ action save calls API with correct parameters when removing an item from the state
   ✔ failed save returns rejected promise with first error object if API returns multiple errors
   ✔ action save on success mutates the state to start saving, updates state and finishes saving
   ✔ mutation updateLemmas changes lemmas to given values
   ✔ failed save returns rejected promise with a single error object
   ✔ mutation updateLanguage changes language and languageLink to given values
   ✔ mutation finishSaving switches the isSaving flag to false
   ✔ mutation updateLanguage changes lexical category and the link to given values
   ✔ mutation updateRevisionId changes baseRevId to given value

3) wikibase.lexeme.widgets.LexemeHeader
   ✔ passes lemmas to LemmaWidget
   ✔ attempting to save with empty lemmas fails
   ✔ updates language and lexical category on save

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

   ✔ passes language and lexical category to LanguageAndLexicalCategoryWidget

   ✔ switch to edit mode

   ✔ cancel edit mode

   ✔ shows save button disabled when unsaveable

   ✔ shows save button disabled without changes

   ✔ binds to lemma-widget hasRedundantLanguage event

   ✔ shows save button enabled when not unsaveable

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

   ✔ save lemma list with error

   ✔ save lemma list

6) actionTypes
   ✔ uses unique ids for all action types

7) mutations
   ✔ UPDATE_REPRESENTATION_LANGUAGE changes correct representation language
   ✔ 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_VALUE changes correct representation value
   ✔ REPLACE_ALL_REPRESENTATIONS replaces representations of correct form

8) GlossWidget
[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
   ✔ 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
   ✔ remove a gloss
   ✔ removes empty glosses when saved

9) store
   ✔ creates initial state

10) LemmaList
   ✔ length
   ✔ add
   ✔ remove

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

   12) copy
      ✔ clones Lemmas
      ✔ creates an identical LemmaList

   ✔ getLemmas

13) mutationTypes
   ✔ uses unique ids for all mutation types

14) 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>)
   ✔ 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)
   ✔ 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>)
[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)
[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>)
   ✔ 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>)
[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)
   ✔ 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)
[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>)
   ✔ 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)
   ✔ can remove a representation

15) actions
   ✔ ADD_REPRESENTATION on state having no representations and one lemma mutates to empty values and derives lemma language
   ✔ ADD_REPRESENTATION on state having no representations and multiple lemmas mutates to empty values
   ✔ REMOVE_REPRESENTATION delegates to mutation
   ✔ ADD_REPRESENTATION on state having existing representation and one lemma mutates to empty values
   ✔ UPDATE_REPRESENTATION_VALUE delegates to mutation
   ✔ REPLACE_ALL_REPRESENTATIONS delegates to mutation
   ✔ UPDATE_REPRESENTATION_LANGUAGE delegates to mutation

16) RedundantLanguageIndicator
   ✔ creates mixin definition with watch that fires immediately
   ✔ creates mixin definition providing method to determine if language isRedundantLanguage
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin definition providing computed property hasRedundantLanguage
   ✔ creates mixin definition that adds a redundantLanguages property to data
   ✔ 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 property hasRedundantLanguage returning false for empty redundantLanguages
   ✔ creates mixin watch handler not taking offence in repeated empty language
   ✔ creates mixin watch handler that updates redundantLanguages with respective language values
   ✔ creates mixin watch handler that can find multiple redundant languages

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

18) focusElement

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

   ✔ returns a callback without doing anything else

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

21) LexemeSubEntityId

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

23) InvalidLanguageIndicator
   ✔ creates mixin definition with watch that does not fire immediately
   ✔ creates mixin definition with watch on desired property
   ✔ creates mixin definition providing method to determine if language isInvalidLanguage
   ✔ creates mixin definition with watch that monitors the property recursively
   ✔ creates mixin definition method isInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin property hasInvalidLanguage returning false for empty InvalidLanguages
   ✔ creates mixin definition providing computed property hasInvalidLanguage
   ✔ creates mixin watch handler that updates InvalidLanguages with respective language values
   ✔ creates mixin property hasInvalidLanguage returning true for existing InvalidLanguages
   ✔ creates mixin watch handler not taking offence in empty language
   ✔ creates mixin watch handler that can find multiple invalid languages
   ✔ creates mixin definition that adds an InvalidLanguages property to data

>> Done!


Summary:

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

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