Last modified: 2013-09-18 15:39:36 UTC
In valueview.tests.testExpert.js, fresh expert instances are provided for each test. However, these instances are not destroyed after the individual tests have been performed. Due to that, DOM structures being added to the HTML body element during expert initialization are not removed after the tests have run causing interference with other QUnit tests.
Change 76741 had a related patch set uploaded by Daniel Werner: (bug 48611) valueview expert test setups won't create instances anymore https://gerrit.wikimedia.org/r/76741
This is actually not just about missing experts destruction primarily, it is mostly about experts being constructed outside of the actual tests (in some test definitions) which will even happen if the tests should not even be executed (e.g. because of using ?filter=xxx).
Anyhow, when instantiating certain experts (e.g. time expert) they will use widgets that add some node to the html's body immediately (e.g. inputextender). In the tests of those widgets it is asserted whether the body contains any leftover DOM nodes. This assertion fails in case experts using those widgets got constructed during test setups but not destroyed. My change set will prevent the test setups from initializing experts before the actual test.
Verified in Wikidata demo July 31th.
The according change set has not been merged. How come the fix for this bug got verified?
Does not work properly without additionally applying https://gerrit.wikimedia.org/r/#/c/76744/ https://gerrit.wikimedia.org/r/#/c/77479/
Change 76741 merged by Jeroen De Dauw: (bug 48611) valueview expert test setups won't create instances anymore https://gerrit.wikimedia.org/r/76741