Page MenuHomePhabricator

Reading of LexemeLanguageCodePropertyId in JS before value is set
Closed, ResolvedPublic

Description

window.mw.config.get( 'LexemeLanguageCodePropertyId' ); is read in tests/selenium/specs/new.js via JS - occasional flakyness of this test suggests that sometimes this happens too quickly, before the ResourceLoader(?) set the value accordingly.

Error message is a bit misleading

10:02:00 1) NewLexeme:Page with default LexemeLanguageCodePropertyId configured "before all" hook for "request with "createpage" right shows form":
10:02:00 unknown error: Cannot read property 'get' of null
10:02:00 running chrome
10:02:00 Error: An unknown server-side error occurred while processing the command.
10:02:00     at Promise.F (node_modules/core-js/library/modules/_export.js:36:28)
10:02:00     at execute(<Function>) - at Context.<anonymous> (extensions/WikibaseLexeme/tests/selenium/specs/new.js:30:43)

e.g. https://integration.wikimedia.org/ci/job/mwext-mw-selenium-node-composer-jessie/1380/console

Event Timeline

Pablo-WMDE renamed this task from Reading of LexemeLanguageCodePropertyId in JS before ResourceLoader is finished to Reading of LexemeLanguageCodePropertyId in JS before value is set.Aug 9 2018, 10:14 AM
Pablo-WMDE created this task.

Change 451612 had a related patch set uploaded (by Pablo Grass (WMDE); owner: Pablo Grass (WMDE)):
[mediawiki/extensions/WikibaseLexeme@master] selenium: let NewLexeme test wait for resource loader

https://gerrit.wikimedia.org/r/451612

Patch now ensures that ResourceLoader provided the config value before using it. The waiting for the presence of ResourceLoader itself is a bit cumbersome - all suggestions welcome!

Tried (instead of the JS magic) waiting for

  • .client-js
  • visibility of .page-Special_NewLexeme
  • hidden state of [name=lemma-language]

Change 451612 merged by jenkins-bot:
[mediawiki/extensions/WikibaseLexeme@master] selenium: let NewLexeme test wait for resource loader

https://gerrit.wikimedia.org/r/451612