mediawiki/extensions/MobileFrontend (master)

sourcepatches
$ date
Fri Mar  5 03:19:38 UTC 2021

$ git clone file:///srv/git/mediawiki-extensions-MobileFrontend.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
7b71ca3a30d092b0452d22cb65760ea164c8a425 refs/heads/master

$ composer install
Loading composer repositories with package information
Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. See https://getcomposer.org/2
Updating dependencies (including require-dev)
Package operations: 31 installs, 0 updates, 0 removals
  - Installing php-parallel-lint/php-parallel-lint (v1.2.0): Loading from cache
  - Installing squizlabs/php_codesniffer (3.5.8): Loading from cache
  - Installing composer/spdx-licenses (1.5.5): Loading from cache
  - Installing composer/semver (3.2.4): Loading from cache
  - Installing mediawiki/mediawiki-codesniffer (v35.0.0): 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 symfony/polyfill-php80 (v1.22.1): Loading from cache
  - Installing symfony/polyfill-mbstring (v1.22.1): Loading from cache
  - Installing symfony/polyfill-intl-normalizer (v1.22.1): Loading from cache
  - Installing symfony/polyfill-intl-grapheme (v1.22.1): Loading from cache
  - Installing symfony/polyfill-ctype (v1.22.1): Loading from cache
  - Installing symfony/string (v5.2.4): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing symfony/service-contracts (v2.2.0): Loading from cache
  - Installing symfony/polyfill-php73 (v1.22.1): Loading from cache
  - Installing symfony/console (v5.2.4): Loading from cache
  - Installing mediawiki/minus-x (1.1.0): Loading from cache
  - Installing psr/log (1.1.3): Loading from cache
  - Installing sabre/event (5.1.2): Loading from cache
  - Installing netresearch/jsonmapper (v2.1.0): 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.9.1): 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.0): Loading from cache
  - Installing composer/xdebug-handler (1.4.5): 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
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.)
Writing lock file
Generating autoload files
12 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

Upgrading c:mediawiki/minus-x from 1.1.0 -> 1.1.1
$ composer update
Loading composer repositories with package information
Warning from https://repo.packagist.org: You are using an outdated version of Composer. Composer 2 is now available and you should upgrade. See https://getcomposer.org/2
Updating dependencies (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Updating mediawiki/minus-x (1.1.0 => 1.1.1): Loading from cache
Writing lock file
Generating autoload files
12 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
12 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

$ composer test
> parallel-lint . --exclude vendor --exclude node_modules
PHP 7.3.19 | 10 parallel jobs
............................................................ 60/99 (60 %)
.......................................                      99/99 (100 %)


Checked 99 files in 0.5 seconds
No syntax error found
> phpcs -p -s
............................................................ 60 / 99 (61%)
.......................................                      99 / 99 (100%)


Time: 2.34 secs; Memory: 18MB

> minus-x check .
MinusX
======
Processing /src/repo...
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
...............................
All good!

Attempting to npm audit fix
$ npm audit fix --only=dev
npm WARN deprecated iltorb@2.4.5: The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.

> 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

> iltorb@2.4.5 install /src/repo/node_modules/iltorb
> node ./scripts/install.js || node-gyp rebuild

info looking for cached prebuild @ /cache/_prebuilds/2a34dd-iltorb-v2.4.5-node-v64-linux-x64.tar.gz
info found cached prebuild 
info unpacking @ /cache/_prebuilds/2a34dd-iltorb-v2.4.5-node-v64-linux-x64.tar.gz
info unpack resolved to /src/repo/node_modules/iltorb/build/bindings/iltorb.node
info unpack required /src/repo/node_modules/iltorb/build/bindings/iltorb.node successfully
info install Successfully installed iltorb binary!

> pre-commit@1.2.2 install /src/repo/node_modules/pre-commit
> node install.js


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/addon-actions/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.6.2 postinstall /src/repo/node_modules/@storybook/addons/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/api/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/channel-postmessage/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/channels/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/client-api/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/client-logger/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/components/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/core-events/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/core/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/html/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/node-logger/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/router/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/theming/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/ui/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@2.6.11 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js-pure@3.6.2 postinstall /src/repo/node_modules/core-js-pure
> node -e "try{require('./postinstall')}catch(e){}"


> ejs@2.7.4 postinstall /src/repo/node_modules/ejs
> node ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)


> core-js@3.6.2 postinstall /src/repo/node_modules/lazy-universal-dotenv/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/simplebar/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> ejs@3.1.3 postinstall /src/repo/node_modules/@wdio/cli/node_modules/ejs
> node --harmony ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)


> sinon@4.5.0 postinstall /src/repo/node_modules/sinon
> node scripts/support-sinon.js

Have some ❤️ for Sinon? You can support the project via Open Collective:
 > https://opencollective.com/sinon/donate


> spawn-sync@1.0.15 postinstall /src/repo/node_modules/spawn-sync
> node postinstall

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/corejs-upgrade-webpack-plugin/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/corejs-upgrade-webpack-plugin/node_modules/watchpack/node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/@storybook/core/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules/@storybook/core/node_modules/watchpack/node_modules/watchpack-chokidar2/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.1 (node_modules/mocha/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/watchpack/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@1.2.13 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/@wdio/cli/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"})

+ bundlesize@0.18.1
added 2317 packages from 1666 contributors in 196.819s

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

fixed 466 of 474 vulnerabilities in 2319 scanned packages
  1 vulnerability required manual review and could not be updated
  3 package updates for 7 vulnerabilities involved breaking changes
  (use `npm audit fix --force` to install breaking changes; or refer to `npm audit` for steps to fix these manually)

Verifying that tests still pass
$ npm ci
npm WARN prepare removing existing node_modules/ before installation

> fsevents@1.2.13 install /src/repo/node_modules/fsevents
> node install.js


Skipping 'fsevents' build as platform linux is not supported

> sinon@4.5.0 postinstall /src/repo/node_modules/sinon
> node scripts/support-sinon.js

Have some ❤️ for Sinon? You can support the project via Open Collective:
 > https://opencollective.com/sinon/donate


> spawn-sync@1.0.15 postinstall /src/repo/node_modules/spawn-sync
> node postinstall


> pre-commit@1.2.2 install /src/repo/node_modules/pre-commit
> node install.js

pre-commit:
pre-commit: Detected an existing git pre-commit hook
pre-commit: Old pre-commit hook backuped to pre-commit.old
pre-commit:

> iltorb@2.4.5 install /src/repo/node_modules/iltorb
> node ./scripts/install.js || node-gyp rebuild

info looking for cached prebuild @ /cache/_cacache/_prebuilds/2a34dd-iltorb-v2.4.5-node-v64-linux-x64.tar.gz
info found cached prebuild 
info unpacking @ /cache/_cacache/_prebuilds/2a34dd-iltorb-v2.4.5-node-v64-linux-x64.tar.gz
info unpack resolved to /src/repo/node_modules/iltorb/build/bindings/iltorb.node
info unpack required /src/repo/node_modules/iltorb/build/bindings/iltorb.node successfully
info install Successfully installed iltorb binary!

> 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-pure@3.6.2 postinstall /src/repo/node_modules/core-js-pure
> node -e "try{require('./postinstall')}catch(e){}"


> ejs@3.1.3 postinstall /src/repo/node_modules/@wdio/cli/node_modules/ejs
> node --harmony ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)


> fsevents@1.2.13 install /src/repo/node_modules/@storybook/core/node_modules/watchpack/node_modules/fsevents
> node install.js


Skipping 'fsevents' build as platform linux is not supported

> core-js@3.6.2 postinstall /src/repo/node_modules/lazy-universal-dotenv/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> ejs@2.7.4 postinstall /src/repo/node_modules/ejs
> node ./postinstall.js

Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)


> fsevents@1.2.13 install /src/repo/node_modules/corejs-upgrade-webpack-plugin/node_modules/watchpack/node_modules/fsevents
> node install.js


Skipping 'fsevents' build as platform linux is not supported

> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/core/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/ui/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/simplebar/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@2.6.11 postinstall /src/repo/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/node-logger/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/client-api/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/channel-postmessage/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/html/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/channels/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/api/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/client-logger/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/theming/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/router/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/core-events/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/addons/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/addon-actions/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"


> core-js@3.6.2 postinstall /src/repo/node_modules/@storybook/components/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

added 2327 packages in 77.45s

$ npm test

> @ test /src/repo
> npm -s run lint && bash ./dev-scripts/svg_check.sh && npm -s run coverage && npm -s run test:bundle && npm -s run jsdoc

Checked 1 message directory.
Browserslist: caniuse-lite is outdated. Please run the following command: `npm update`
Browserslist: caniuse-lite is outdated. Please run the following command: `npm update`
TAP version 13
ok 1 MobileFrontend imports > All our code is importable in headless Node.js
ok 2 MobileFrontend CategoryGateway.js > getCategories()
ok 3 MobileFrontend CategoryGateway.js > save()
ok 4 MobileFrontend mobile.editor.overlay/EditorGateway > #getContent (no section)
ok 5 MobileFrontend mobile.editor.overlay/EditorGateway > #getContent
ok 6 MobileFrontend mobile.editor.overlay/EditorGateway > #getContent, new page
ok 7 MobileFrontend mobile.editor.overlay/EditorGateway > #getContent, missing section
ok 8 MobileFrontend mobile.editor.overlay/EditorGateway > #getBlockInfo
ok 9 MobileFrontend mobile.editor.overlay/EditorGateway > #save, success
ok 10 MobileFrontend mobile.editor.overlay/EditorGateway > #save, new page
ok 11 MobileFrontend mobile.editor.overlay/EditorGateway > #save, after #setPrependText
ok 12 MobileFrontend mobile.editor.overlay/EditorGateway > #save, submit CAPTCHA
ok 13 MobileFrontend mobile.editor.overlay/EditorGateway > #save, request failure
ok 14 MobileFrontend mobile.editor.overlay/EditorGateway > #save, API failure
ok 15 MobileFrontend mobile.editor.overlay/EditorGateway > #save, CAPTCHA response with image URL
ok 16 MobileFrontend mobile.editor.overlay/EditorGateway > #save, AbuseFilter warning
ok 17 MobileFrontend mobile.editor.overlay/EditorGateway > #save, AbuseFilter disallow
ok 18 MobileFrontend mobile.editor.overlay/EditorGateway > #save, AbuseFilter other
ok 19 MobileFrontend mobile.editor.overlay/EditorGateway > #save, extension errors
ok 20 MobileFrontend mobile.editor.overlay/EditorGateway > #save, read-only error
ok 21 MobileFrontend mobile.editor.overlay/EditorGateway > #save, unknown errors
ok 22 MobileFrontend mobile.editor.overlay/EditorGateway > #save, without changes
ok 23 MobileFrontend mobile.editor.overlay/EditorGateway > #EditorGateway
ok 24 MobileFrontend mobile.editor.overlay/EditorGateway > #EditorGateway, check without sectionLine
ok 25 MobileFrontend mobile.editor.overlay/EditorGateway > #EditorGateway, check with sectionLine
ok 26 MobileFrontend mobile.editor.overlay/EditorGateway > #save, when token has expired
ok 27 MobileFrontend mobile.editor.overlay/SourceEditorOverlay > #initialize, blocked user
ok 28 MobileFrontend mobile.editor.overlay/SourceEditorOverlay > #initialize, with given page and section
ok 29 MobileFrontend mobile.editor.overlay/SourceEditorOverlay > #initialize, without a section
ok 30 MobileFrontend mobile.editor.overlay/SourceEditorOverlay > #preview
ok 31 MobileFrontend mobile.editor.overlay/SourceEditorOverlay > #initialize, as anonymous
ok 32 MobileFrontend mobile.editor.overlay/identifyLeadParagraph > identifyLeadParagraph
ok 33 MobileFrontend mobile.editor.overlay/parseBlockInfo > blockInfo
ok 34 MobileFrontend mobile.editor.overlay/parseBlockInfo > blockInfo2
ok 35 MobileFrontend editorLoadingOverlay.js > editorLoadingOverlay calls the callbacks
ok 36 MobileFrontend LanguageSearcher.js > renders output
ok 37 MobileFrontend LanguageSearcher.js > saves the language count when link is clicked
ok 38 MobileFrontend LanguageSearcher.js > without variants, input event filters languages
ok 39 MobileFrontend LanguageSearcher.js > with variants, input event filters languages
ok 40 MobileFrontend mobile.languages.structured/util.test.js > #getFrequentlyUsedLanguages
ok 41 MobileFrontend mobile.languages.structured/util.test.js > #saveLanguageUsageCount
ok 42 MobileFrontend mobile.languages.structured/util.test.js > #getStructuredLanguages
ok 43 MobileFrontend mobile.languages.structured/util.test.js > #getStructuredLanguages device language
ok 44 MobileFrontend mobile.languages.structured/util.test.js > #getStructuredLanguages variants
ok 45 MobileFrontend mobile.mediaViewer/ImageCarousel.js > Shows details bar and image with successful api response
ok 46 MobileFrontend mobile.mediaViewer/ImageCarousel.js > Shows error message with failed api response
ok 47 MobileFrontend mobile.mediaViewer/ImageCarousel.js > Toggling of details is disabled when overlay has load failure
ok 48 MobileFrontend mobile.mediaViewer/ImageCarousel.js > Toggling of details is enabled when overlay loads successfully
ok 49 MobileFrontend mobile.mediaViewer/ImageGateway > #findSizeBucket
ok 50 MobileFrontend mobile.mediaViewer/ImageGateway > ImageGateway#getThumb (missing page)
ok 51 MobileFrontend NearbyGateway.js > _distanceMessage()
ok 52 MobileFrontend NearbyGateway.js > getPages()
ok 53 MobileFrontend NearbyGateway.js > getPagesAroundPage()
ok 54 MobileFrontend WatchList.js > In watched mode
ok 55 MobileFrontend WatchListGateway.js > loadWatchlist() loads results from the first page
ok 56 MobileFrontend WatchListGateway.js > loadWatchlist() loads results from the second page from last item of first
ok 57 MobileFrontend WatchListGateway.js > loadWatchlist() doesn't throw an error when no pages are returned
ok 58 MobileFrontend WatchListGateway.js > loadWatchlist() marks pages as new if necessary
ok 59 MobileFrontend Browser.js > isIos()
ok 60 MobileFrontend Browser.js > Methods are cached
ok 61 MobileFrontend Browser.js > isWideScreen()
ok 62 MobileFrontend Browser.js > supportsTouchEvents()
ok 63 MobileFrontend Browser.js > supportsGeoLocation()
ok 64 MobileFrontend Button.js > creates a link if passed href option
ok 65 MobileFrontend Button.js > does not add href attribute when not a link
ok 66 MobileFrontend CtaDrawer.js > redirectParams() > empty props, default URL
ok 67 MobileFrontend CtaDrawer.js > redirectParams() > empty props, nondefault URL
ok 68 MobileFrontend CtaDrawer.js > redirectParams() > nonempty props
ok 69 MobileFrontend CtaDrawer.js > signUpParams() > empty props
ok 70 MobileFrontend CtaDrawer.js > signUpParams() > nonempty props
ok 71 MobileFrontend CtaDrawer.js > HTML > defaults
ok 72 MobileFrontend CtaDrawer.js > HTML > overrides
ok 73 MobileFrontend Drawer.js > visible on show()
ok 74 MobileFrontend Drawer.js > accepts onShow and events
ok 75 MobileFrontend Drawer.js > hidden on hide()
ok 76 MobileFrontend Drawer.js > hidden on mask click
ok 77 MobileFrontend Drawer.js > HTML is valid
ok 78 MobileFrontend: Overlay.js > Simple overlay
ok 79 MobileFrontend: Overlay.js > #make
ok 80 MobileFrontend: Overlay.js > HTML overlay
ok 81 MobileFrontend: Overlay.js > headerActions property
ok 82 MobileFrontend: Overlay.js > onBeforeExit
ok 83 MobileFrontend: Overlay.js > Close overlay
ok 84 MobileFrontend mobile.startup/OverlayManager > #getSingleton (hash present and overlay not managed)
ok 85 MobileFrontend mobile.startup/OverlayManager > #getSingleton (hash present and overlay managed)
ok 86 MobileFrontend mobile.startup/OverlayManager > #getSingleton
ok 87 MobileFrontend mobile.startup/OverlayManager > #add
ok 88 MobileFrontend mobile.startup/OverlayManager > #show
ok 89 MobileFrontend mobile.startup/OverlayManager > #add, with current path
ok 90 MobileFrontend mobile.startup/OverlayManager > #add, with string literal (matching)
ok 91 MobileFrontend mobile.startup/OverlayManager > #add, with string literal (not matching)
ok 92 MobileFrontend mobile.startup/OverlayManager > #replaceCurrent
ok 93 MobileFrontend mobile.startup/OverlayManager > route with params
ok 94 MobileFrontend mobile.startup/OverlayManager > hide when route changes
ok 95 MobileFrontend mobile.startup/OverlayManager > go back (change route) if overlay hidden but not by route change
ok 96 MobileFrontend mobile.startup/OverlayManager > go back if overlayManager still matches
ok 97 MobileFrontend mobile.startup/OverlayManager > go back if overlayManager still matches (non-regex)
ok 98 MobileFrontend mobile.startup/OverlayManager > do not go back (change route) if overlay hidden by change in route
ok 99 MobileFrontend mobile.startup/OverlayManager > preventDefault called when you cancel an exit request
ok 100 MobileFrontend mobile.startup/OverlayManager > Browser back can be overidden
ok 101 MobileFrontend mobile.startup/OverlayManager > stacked overlays
ok 102 MobileFrontend mobile.startup/OverlayManager > prevent route change
ok 103 MobileFrontend mobile.startup/OverlayManager > stack increases and decreases at right times
ok 104 MobileFrontend mobile.startup/OverlayManager > replace overlay when route event path is equal to current path
ok 105 MobileFrontend Page.js > #isMainPage
ok 106 MobileFrontend PageGateway > #getPageLanguages (response)
ok 107 MobileFrontend PageGateway > #getPageLanguages (call)
ok 108 MobileFrontend PageGateway > #_getAPIResponseFromHTML
ok 109 MobileFrontend PageGateway > #getSectionsFromHTML malformed (h2 before h1)
ok 110 MobileFrontend PageHTMLParser.js > #findInSectionLead
ok 111 MobileFrontend PageHTMLParser.js > #getThumbnails
ok 112 MobileFrontend ScrollEndEventEmitter.js > initializes properly
ok 113 MobileFrontend ScrollEndEventEmitter.js > emits scroll end event
ok 114 MobileFrontend ScrollEndEventEmitter.js > doesn't emit when disabled
ok 115 MobileFrontend Section.js > initialize with options
ok 116 MobileFrontend Section.js > initialize with subsections
ok 117 MobileFrontend Toggler.js > Mobile mode - Toggle section
ok 118 MobileFrontend Toggler.js > Mobile mode - Clicking a hash link to reveal an already open section
ok 119 MobileFrontend Toggler.js > Mobile mode - Reveal element
ok 120 MobileFrontend Toggler.js > Mobile mode - Clicking hash links
ok 121 MobileFrontend Toggler.js > Mobile mode - Tap event toggles section
ok 122 MobileFrontend Toggler.js > Accessibility - Verify ARIA attributes
ok 123 MobileFrontend Toggler.js > Tablet mode - Open by default
ok 124 MobileFrontend Toggler.js > Tablet mode - Open by default 2
ok 125 MobileFrontend Toggler.js > Accessibility - Pressing space/ enter toggles a heading
ok 126 MobileFrontend Toggler.js > Clicking a link within a heading isn't triggering a toggle
ok 127 MobileFrontend Toggler.js > Toggling a section stores its state.
ok 128 MobileFrontend Toggler.js > Check for and remove obsolete stored sections.
ok 129 MobileFrontend Toggler.js > Expanding already expanded section does not toggle it.
ok 130 MobileFrontend Toggler.js > MobileFrontend toggle.js - Expand stored sections.
ok 131 MobileFrontend mobile.startup/View > View
ok 132 MobileFrontend mobile.startup/View > View, jQuery proxy functions
ok 133 MobileFrontend mobile.startup/View > View#preRender
ok 134 MobileFrontend mobile.startup/View > View#postRender
ok 135 MobileFrontend mobile.startup/View > View#delegateEvents
ok 136 MobileFrontend mobile.startup/View > View#render (with isTemplateMode)
ok 137 MobileFrontend mobile.startup/View > View#render events (with isTemplateMode)
ok 138 MobileFrontend mobile.startup/View > View with className option
ok 139 MobileFrontend mobile.startup/View > View.make()
ok 140 MobileFrontend amcOutreach/AmcEnableForm.js > renders correctly
ok 141 MobileFrontend amcOutreachDrawer.js > returns a drawer
ok 142 MobileFrontend amcOutreachDrawer.js > calls promoCampaign.makeActionIneligible and onBeforeHide callback when dismissed
ok 143 MobileFrontend amcOutreachDrawer.js > calls promoCampaign.makeActionIneligible and toast.showOnPageReload when user enables
ok 144 MobileFrontend cache.js > cache set() and get()
ok 145 MobileFrontend extendSearchParams.js > it throws if the feature is invalid
ok 146 MobileFrontend extendSearchParams.js > it extends the parameters
ok 147 MobileFrontend extendSearchParams.js > it doesn't include Wikibase-specific parameters if the feature is disabled
ok 148 MobileFrontend extendSearchParams.js > it adds the MobileFrontend configuration to given terms types
ok 149 MobileFrontend extendSearchParams.js > it prioritizes MobileFrontend configuration
ok 150 MobileFrontend extendSearchParams.js > it is variadic
ok 151 MobileFrontend icons.js > #cancel()
ok 152 MobileFrontend icons.js > #cancel(variant)
ok 153 MobileFrontend icons.js > #spinner()
ok 154 MobileFrontend getDeviceLanguage > returns language code of device in lowercase
ok 155 MobileFrontend languageOverlay.js > #constructor
ok 156 MobileFrontend lazyImageLoader.js > #queryPlaceholders() empty
ok 157 MobileFrontend lazyImageLoader.js > #queryPlaceholders() nonempty
ok 158 MobileFrontend lazyImageLoader.js > #loadImage() copy attributes
ok 159 MobileFrontend lazyImageLoader.js > #loadImage() loaded
ok 160 MobileFrontend lazyImageLoader.js > #loadImage() load error
ok 161 MobileFrontend lazyImageLoader.js > #loadImages() empty
ok 162 MobileFrontend lazyImageLoader.js > #loadImages() nonempty
ok 163 MobileFrontend lazyImageLoader.js > #loadImages() plural
ok 164 MobileFrontend lazyImageLoader.js > #loadImages() one fails to load, one succeeds
ok 165 MobileFrontend mfExtend.test.js > mfExtend() - extending from constructor
ok 166 MobileFrontend mfExtend.test.js > mfExtend() - extending from object
ok 167 MobileFrontend mfExtend.test.js > mfExtend() - extending from constructor with overrides
ok 168 MobileFrontend ModuleLoader > #require
ok 169 MobileFrontend ModuleLoader > #define
ok 170 MobileFrontend pageJSONParser > .parse()
ok 171 MobileFrontend promisedView.js > #constructor happyView
ok 172 MobileFrontend promisedView.js > #constructor when promise rejects but not to a sadView
ok 173 MobileFrontend promisedView.js > #constructor when promise rejects to a sadView
ok 174 MobileFrontend promoCampaign.js > #showIfEligible throws when invalid
ok 175 MobileFrontend promoCampaign.js > #showIfEligible when campaign off
ok 176 MobileFrontend promoCampaign.js > #showIfEligible when user ineligible
ok 177 MobileFrontend promoCampaign.js > #showIfEligible when storage is not available
ok 178 MobileFrontend promoCampaign.js > #showIfEligible when storage key is ineligible
ok 179 MobileFrontend promoCampaign.js > #showIfEligible when eligible
ok 180 MobileFrontend promoCampaign.js > #showIfEligible when eligible and passed additional args
ok 181 MobileFrontend promoCampaign.js > #makeActionIneligible when successful
ok 182 MobileFrontend promoCampaign.js > #makeActionIneligible when unsuccessful
ok 183 MobileFrontend promoCampaign.js > #makeActionIneligible when invalid action
ok 184 MobileFrontend promoCampaign.js > #makeAllActionsIneligible
ok 185 MobileFrontend promoCampaign.js > #isCampaignActive when true
ok 186 MobileFrontend promoCampaign.js > #isCampaignActive when false
ok 187 MobileFrontend ReferencesHtmlScraperGateway.test.js > getReference() checking good reference
ok 188 MobileFrontend ReferencesHtmlScraperGateway.test.js > getReference() checking bad reference
ok 189 MobileFrontend ReferencesHtmlScraperGateway.test.js > getReference() checking encoded reference
ok 190 MobileFrontend ReferencesHtmlScraperGateway.test.js > getReference() adds an extra class for external links
ok 191 MobileFrontend: references > Bad reference not shown
ok 192 MobileFrontend: references > Good reference causes render
ok 193 MobileFrontend: references > Reference failure renders error in drawer
ok 194 MobileFrontend: references > makeOnNestedReferenceClickHandler runs when associated with link
ok 195 MobileFrontend: MobileWebSearchLogger > it should log when the search is shown
ok 196 MobileFrontend: MobileWebSearchLogger > it should log when the search API request completes
ok 197 MobileFrontend: MobileWebSearchLogger > it should refresh the user session token when the search is shown again
ok 198 MobileFrontend: MobileWebSearchLogger > it should log when the user clicks a result
ok 199 MobileFrontend: MobileWebSearchLogger > it should refresh the search session token when the search API request completes again
ok 200 MobileFrontend: SearchGateway > ._highlightSearchTerm
ok 201 MobileFrontend: SearchGateway > show redirect targets
ok 202 MobileFrontend: SearchGateway > MobileFrontend SearchGateway (Wikidata Descriptions) > Wikidata Description in search results
ok 203 MobileFrontend mobile.startup/SearchOverlay.js > renders correctly
ok 204 MobileFrontend mobile.startup/SearchOverlay.js > resetSearch
ok 205 MobileFrontend mobile.startup/SearchOverlay.js > onClickOverlayContent
ok 206 MobileFrontend mobile.startup/SearchResultsView.js > renders correctly
ok 207 MobileFrontend time.js > timeAgo()
ok 208 MobileFrontend util.js > Promise.all() success
ok 209 MobileFrontend util.js > Promise.all() reject
ok 210 MobileFrontend util.js > escapeSelector()
ok 211 MobileFrontend util.js > grep()
ok 212 MobileFrontend util.js > docReady()
ok 213 MobileFrontend util.js > Deferred() - resolve
ok 214 MobileFrontend util.js > Deferred() - reject
ok 215 MobileFrontend util.js > getDocument()
ok 216 MobileFrontend util.js > getWindow()
ok 217 MobileFrontend util.js > parseHTML()
ok 218 MobileFrontend util.js > isNumeric()
ok 219 MobileFrontend util.js > extend()
ok 220 MobileFrontend util.js > escapeHash()
ok 221 MobileFrontend util.js > isModifiedEvent() - true
ok 222 MobileFrontend util.js > isModifiedEvent() - false
ok 223 MobileFrontend util.js > repeatEvent
ok 224 MobileFrontend Watchstar.js > Render a watchstar
ok 225 MobileFrontend: WatchstarGateway.js > getStatuses(nonempty)
ok 226 MobileFrontend: WatchstarGateway.js > getStatuses(empty)
ok 227 MobileFrontend: WatchstarGateway.js > getStatusesByID(nonempty)
ok 228 MobileFrontend: WatchstarGateway.js > getStatusesByID(empty)
ok 229 MobileFrontend: WatchstarGateway.js > getStatusesByTitle(nonempty)
ok 230 MobileFrontend: WatchstarGateway.js > getStatusesByTitle(empty)
ok 231 MobileFrontend: WatchstarGateway.js > _unmarshalGetResponse(nonempty)
ok 232 MobileFrontend: WatchstarGateway.js > _unmarshalGetResponse(empty)
ok 233 MobileFrontend mobile.startup/WatchstarPageList > Watchlist status check if no ids
ok 234 MobileFrontend mobile.startup/WatchstarPageList > Checks watchlist status once
ok 235 MobileFrontend AddTopicForm > makePanel()
ok 236 MobileFrontend AddTopicForm > AddTopicForm
ok 237 MobileFrontend TalkSectionAddOverlay > save()
ok 238 MobileFrontend TalkSectionOverlay.js - logged in > Check comment box for logged in users
ok 239 MobileFrontend TalkSectionOverlay.js - logged in > Check disabled property on textarea
ok 240 MobileFrontend TalkSectionOverlay.js - logged in > Check api request on save
ok 241 MobileFrontend TalkSectionOverlay.js - anonymous (logged out) > Check comment box for logged out users
ok 242 MobileFrontend autosign.js > #autosign
ok 243 MobileFrontend makeAddTopicForm > makeAddTopicForm
1..243
# pass 243
# skip 0
# todo 0
# fail 0
----------------------------------|---------|----------|---------|---------|------------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s      
----------------------------------|---------|----------|---------|---------|------------------------
All files                         |   63.13 |    48.41 |   59.49 |   63.13 |                        
 mobile.categories.overlays       |   31.06 |     5.56 |   14.81 |   31.06 |                        
  CategoryAddOverlay.js           |   24.32 |        0 |       0 |   24.32 | ...137,138,140,141,143 
  CategoryGateway.js              |   88.89 |       50 |     100 |   88.89 | 63,74                  
  CategoryLookupInputWidget.js    |   24.14 |        0 |       0 |   24.14 | ...,85-87,89,90,94,102 
  CategoryTabs.js                 |   18.75 |        0 |       0 |   18.75 | ...176,178,179,190,191 
 mobile.editor.overlay            |   42.72 |    34.44 |   33.59 |   42.72 |                        
  BlockMessageDetails.js          |    9.43 |        0 |       0 |    9.43 | ...123,126,132,133,140 
  EditorGateway.js                |   92.77 |       85 |   93.75 |   92.77 | 49,90,106,227,282,285  
  EditorOverlayBase.js            |   41.26 |    14.06 |   31.25 |   41.26 | ...683,686,693,697,698 
  SourceEditorOverlay.js          |   41.24 |    33.33 |   31.43 |   41.24 | ...552,555,557,561,572 
  VisualEditorOverlay.js          |   10.42 |        0 |       0 |   10.42 | ...290,291,299,302,304 
  blockMessageDrawer.js           |   21.74 |        0 |      25 |   21.74 | ...0,43-47,49,50,55,56 
  identifyLeadParagraph.js        |     100 |      100 |     100 |     100 |                        
  parseBlockInfo.js               |   92.59 |       85 |      75 |   92.59 | 31,69                  
  saveFailureMessage.js           |   11.11 |        0 |       0 |   11.11 | ...4,15,18,19,22,23,28 
  setPreferredEditor.js           |      20 |        0 |       0 |      20 | 7-9,12                 
 mobile.init                      |   16.12 |        0 |   13.95 |   16.12 |                        
  editor.js                       |    6.91 |        0 |       0 |    6.91 | ...543,545,548,550,553 
  editorLoadingOverlay.js         |     100 |      100 |     100 |     100 |                        
  fakeToolbar.js                  |     100 |      100 |     100 |     100 |                        
  lazyLoadedImages.js             |   11.11 |        0 |       0 |   11.11 | ...1-23,43,44,53,56-58 
  toggling.js                     |    7.69 |        0 |       0 |    7.69 | ...1,25,29,30,33,41,46 
 mobile.init/eventLogging         |    3.41 |        0 |       0 |    3.41 |                        
  schemaEditAttemptStep.js        |    1.49 |        0 |       0 |    1.49 | ...168,169,173,174,176 
  schemaMobileWebSearch.js        |   16.67 |      100 |       0 |   16.67 | 2,4,9,25,26            
  schemaVisualEditorFeatureUse.js |    6.67 |        0 |       0 |    6.67 | ...2,38,41,42,50,51,53 
 mobile.languages.structured      |   93.14 |    82.76 |      95 |   93.14 |                        
  LanguageSearcher.js             |     100 |      100 |     100 |     100 |                        
  mobile.languages.structured.js  |     100 |      100 |     100 |     100 |                        
  rtlLanguages.js                 |     100 |      100 |     100 |     100 |                        
  util.js                         |   89.06 |    76.19 |   92.31 |   89.06 | 45,62,130-132,164,174  
 mobile.mediaViewer               |   81.34 |       52 |   81.82 |   81.34 |                        
  ImageCarousel.js                |   78.43 |    41.67 |      80 |   78.43 | ...284,334,335,342,363 
  ImageGateway.js                 |   95.24 |    78.57 |     100 |   95.24 | 57                     
  LoadErrorMessage.js             |   81.82 |      100 |   66.67 |   81.82 | 74,76                  
 mobile.special.nearby.scripts    |   73.17 |    56.67 |      60 |   73.17 |                        
  LocationProvider.js             |      20 |        0 |       0 |      20 | ...9,51,52,54,56,64,66 
  NearbyGateway.js                |   92.86 |    77.27 |      90 |   92.86 | 121,138,151,156        
  nearbyErrorMessage.js           |   66.67 |        0 |       0 |   66.67 | 35,37                  
 mobile.special.watchlist.scripts |   85.48 |    83.33 |   64.29 |   85.48 |                        
  WatchList.js                    |   74.19 |       50 |   44.44 |   74.19 | ...2-94,96,109,112,125 
  WatchListGateway.js             |   96.77 |     87.5 |     100 |   96.77 | 49                     
 mobile.startup                   |   83.19 |    76.61 |   78.11 |   83.19 |                        
  Anchor.js                       |     100 |      100 |     100 |     100 |                        
  Browser.js                      |   96.77 |    93.75 |     100 |   96.77 | 69                     
  Button.js                       |     100 |      100 |     100 |     100 |                        
  CtaDrawer.js                    |     100 |      100 |     100 |     100 |                        
  Drawer.js                       |     100 |      100 |   90.91 |     100 |                        
  Icon.js                         |   88.46 |    81.25 |      80 |   88.46 | 59,61,114              
  LanguageInfo.js                 |      20 |        0 |       0 |      20 | ...3,45,47-49,60,61,65 
  MessageBox.js                   |     100 |      100 |     100 |     100 |                        
  Overlay.js                      |    89.8 |       70 |   84.62 |    89.8 | 54,110,113,164,165     
  OverlayManager.js               |   99.06 |    94.74 |     100 |   99.06 | 59                     
  Page.js                         |   46.15 |    85.71 |   33.33 |   46.15 | ...151,153,155,168,178 
  PageGateway.js                  |   88.33 |       76 |   93.33 |   88.33 | ...4,25,28,104,123,139 
  PageHTMLParser.js               |   95.65 |    97.14 |    87.5 |   95.65 | 36,201                 
  PageList.js                     |     100 |       50 |     100 |     100 | 60                     
  ScrollEndEventEmitter.js        |   85.71 |    81.82 |    87.5 |   85.71 | 130-133                
  Section.js                      |     100 |      100 |     100 |     100 |                        
  Skin.js                         |      30 |        0 |       0 |      30 | ...1,91,98,108,109,115 
  Thumbnail.js                    |   88.89 |      100 |      75 |   88.89 | 47                     
  Toggler.js                      |      88 |    73.53 |   86.36 |      88 | ...370,371,384,387,391 
  View.js                         |   92.42 |       75 |   88.24 |   92.42 | 184,198,200,201,353    
  actionParams.js                 |     100 |       50 |     100 |     100 | 16                     
  cache.js                        |     100 |      100 |      50 |     100 |                        
  categoryOverlay.js              |   46.15 |        0 |       0 |   46.15 | 20,36,38,39,41,50,51   
  currentPage.js                  |   21.43 |        0 |       0 |   21.43 | ...9,22-26,28,29,32,48 
  currentPageHTMLParser.js        |   33.33 |        0 |       0 |   33.33 | 18,19,22,24            
  eventBusSingleton.js            |     100 |      100 |     100 |     100 |                        
  extendSearchParams.js           |   94.44 |       70 |     100 |   94.44 | 71                     
  headers.js                      |     100 |      100 |     100 |     100 |                        
  icons.js                        |     100 |      100 |     100 |     100 |                        
  loadingOverlay.js               |      50 |      100 |       0 |      50 | 12,16,17               
  mfExtend.js                     |     100 |      100 |     100 |     100 |                        
  mobile.startup.js               |   83.33 |      100 |       0 |   83.33 | 45                     
  moduleLoader.js                 |   78.26 |     62.5 |   66.67 |   78.26 | 45,78,95,97,100        
  moduleLoaderSingleton.js        |     100 |      100 |     100 |     100 |                        
  promisedView.js                 |     100 |      100 |     100 |     100 |                        
  showOnPageReload.js             |   41.67 |       25 |      50 |   41.67 | 14-16,39,40,44,46      
  time.js                         |   24.24 |       10 |   16.67 |   24.24 | ...138-140,142,144,145 
  util.js                         |     100 |       90 |     100 |     100 | 17                     
 mobile.startup/amcOutreach       |   84.38 |       50 |      75 |   84.38 |                        
  AmcEnableForm.js                |     100 |      100 |     100 |     100 |                        
  amcOutreach.js                  |   61.54 |        0 |       0 |   61.54 | 34,35,38,57,77         
  amcOutreachDrawer.js            |     100 |      100 |     100 |     100 |                        
 mobile.startup/languageOverlay   |      80 |      100 |   55.56 |      80 |                        
  getDeviceLanguage.js            |     100 |      100 |     100 |     100 |                        
  languageInfoOverlay.js          |   54.55 |      100 |       0 |   54.55 | 15,16,18,19,38         
  languageOverlay.js              |     100 |      100 |     100 |     100 |                        
 mobile.startup/lazyImages        |   95.83 |    93.75 |     100 |   95.83 |                        
  lazyImageLoader.js              |   95.83 |    93.75 |     100 |   95.83 | 55                     
 mobile.startup/mediaViewer       |   63.64 |      100 |       0 |   63.64 |                        
  overlay.js                      |   63.64 |      100 |       0 |   63.64 | 15,26,27,32            
 mobile.startup/page              |    87.5 |    77.78 |     100 |    87.5 |                        
  pageJSONParser.js               |    87.5 |    77.78 |     100 |    87.5 | 38,39                  
 mobile.startup/promoCampaign     |     100 |      100 |     100 |     100 |                        
  promoCampaign.js                |     100 |      100 |     100 |     100 |                        
 mobile.startup/references        |   83.02 |    77.27 |   78.57 |   83.02 |                        
  ReferencesGateway.js            |     100 |      100 |     100 |     100 |                        
  ReferencesHtmlScraperGateway.js |      95 |     87.5 |     100 |      95 | 41                     
  references.js                   |   71.43 |    71.43 |   66.67 |   71.43 | 54,118,125,126,128-131 
 mobile.startup/search            |   64.36 |       35 |   59.62 |   64.36 |                        
  MobileWebSearchLogger.js        |      75 |      100 |    87.5 |      75 | 120,122-125            
  SearchGateway.js                |    91.3 |    58.33 |   84.62 |    91.3 | 49,50,168,174          
  SearchHeaderView.js             |   57.14 |        0 |   66.67 |   57.14 | 30-33,35,60-62,65      
  SearchOverlay.js                |   37.18 |    13.64 |      20 |   37.18 | ...294,304,308,311,314 
  SearchResultsView.js            |     100 |      100 |     100 |     100 |                        
  searchHeader.js                 |     100 |      100 |     100 |     100 |                        
 mobile.startup/watchstar         |   91.67 |       75 |    91.3 |   91.67 |                        
  WatchstarGateway.js             |      84 |       80 |      90 |      84 | 113,117,118,120        
  WatchstarPageList.js            |   95.45 |       75 |     100 |   95.45 | 93,126                 
  watchstar.js                    |   93.33 |    66.67 |      50 |   93.33 | 26                     
 mobile.talk.overlays             |   67.76 |    25.49 |   60.61 |   67.76 |                        
  AddTopicForm.js                 |     100 |      100 |     100 |     100 |                        
  TalkSectionAddOverlay.js        |      50 |        0 |   41.67 |      50 | ...144,145,148,149,185 
  TalkSectionOverlay.js           |   68.97 |    22.73 |   53.85 |   68.97 | ...237,241,243,246-248 
  autosign.js                     |     100 |      100 |     100 |     100 |                        
  makeAddTopicForm.js             |     100 |      100 |     100 |     100 |                        
----------------------------------|---------|----------|---------|---------|------------------------
Checking the contents of resources/dist

I will now check that you built them using the correct Node.js version v10.15.2.
Note: You are using v10.21.0.
Building assets...
You are not running the required node version
npm ERR! Test failed.  See above for more details.

Traceback (most recent call last):
  File "/venv/lib/python3.7/site-packages/libup-0.0.1-py3.7.egg/libup/ng.py", line 1188, in main
    libup.run(args.repo, args.output, args.branch)
  File "/venv/lib/python3.7/site-packages/libup-0.0.1-py3.7.egg/libup/ng.py", line 1136, in run
    self.npm_audit_fix(new_npm_audit)
  File "/venv/lib/python3.7/site-packages/libup-0.0.1-py3.7.egg/libup/ng.py", line 192, in npm_audit_fix
    self.check_call(['npm', 'test'])
  File "/venv/lib/python3.7/site-packages/libup-0.0.1-py3.7.egg/libup/shell.py", line 38, in check_call
    res.check_returncode()
  File "/usr/lib/python3.7/subprocess.py", line 428, in check_returncode
    self.stderr)
subprocess.CalledProcessError: Command '['npm', 'test']' returned non-zero exit status 1.

composer dependencies

Development dependencies

npm dependencies

Development dependencies

Logs

Source code is licensed under the AGPL.