Page MenuHomePhabricator

IPInfo: Selenium tests are flakily hanging
Closed, ResolvedPublic

Description

Summary

The IP Info selenium tests are flakily timing out. In the latest instance I saw they hung for 20 minutes.

Background

  • The IP Info selenium tests check that the JS frontend works, including setting the IPInfo use agreement
  • Selenium tests are often more flaky than other testing methods, but it is the only option we have for e2e testing in a browser
  • If they are flaky they often can be self-fixed by CI re-running the tests, but this can fail if they fail multiple times
  • Because the test is flaky it suggests that the problem isn't caused by a problem with the code being tested but instead in how the tests are written and/or execute
    • However, we cannot rule out that there is some race condition caused by the code we are testing

Technical notes

The failing gate-and-submit CI build was https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php81/19822/console and the extract is:

20:50:21 INFO:quibble.commands:Running webdriver test in /workspace/src/extensions/IPInfo
20:50:24 npm warn deprecated @types/easy-table@1.2.0: This is a stub types definition. easy-table provides its own type definitions, so you do not need this installed.
20:50:24 npm warn deprecated har-validator@5.1.5: this library is no longer supported
20:50:24 npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
20:50:24 npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
20:50:24 npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
20:50:24 npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
20:50:24 npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
20:50:27 
20:50:27 added 797 packages, and audited 798 packages in 6s
20:50:27 
20:50:27 133 packages are looking for funding
20:50:27   run `npm fund` for details
20:50:27 
20:50:27 16 vulnerabilities (4 moderate, 12 high)
20:50:27 
20:50:27 To address issues that do not require attention, run:
20:50:27   npm audit fix
20:50:27 
20:50:27 To address all issues possible (including breaking changes), run:
20:50:27   npm audit fix --force
20:50:27 
20:50:27 Some issues need review, and may require choosing
20:50:27 a different dependency.
20:50:27 
20:50:27 Run `npm audit` for details.
20:50:27 
20:50:27 > selenium-test
20:50:27 > wdio tests/selenium/wdio.conf.js
20:50:27 
20:50:28 
20:50:28 Execution of 2 workers started at 2025-06-03T19:50:28.332Z
20:50:28 
20:50:28 Setting up modified /workspace/src/LocalSettings.php
20:50:28 Restarting php8.1-fpm
20:50:30 [0-0] RUNNING in chrome - /tests/selenium/specs/contributions.js
20:50:30 [0-1] RUNNING in chrome - /tests/selenium/specs/ipcontributions.js
20:50:51 [0-1] PASSED in chrome - /tests/selenium/specs/ipcontributions.js
20:51:51 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for IP with edits after accepting agreement"
20:51:51 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for IP with edits after accepting agreement" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
20:51:51     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
20:51:51     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
20:51:51     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
20:51:51     at listOnTimeout (node:internal/timers:581:17)
20:51:51     at process.processTimers (node:internal/timers:519:7)
20:52:51 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for IP with edits if agreement was already accepted"
20:52:51 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for IP with edits if agreement was already accepted" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
20:52:51     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
20:52:51     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
20:52:51     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
20:52:51     at listOnTimeout (node:internal/timers:581:17)
20:52:51     at process.processTimers (node:internal/timers:519:7)
20:53:51 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for temp user with edits after accepting agreement"
20:53:51 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for temp user with edits after accepting agreement" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
20:53:51     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
20:53:51     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
20:53:51     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
20:53:51     at listOnTimeout (node:internal/timers:581:17)
20:53:51     at process.processTimers (node:internal/timers:519:7)
20:54:51 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for temp user with edits if agreement was already accepted"
20:54:51 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for temp user with edits if agreement was already accepted" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
20:54:51     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
20:54:51     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
20:54:51     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
20:54:51     at listOnTimeout (node:internal/timers:581:17)
20:54:51     at process.processTimers (node:internal/timers:519:7)
21:13:17 Build was aborted
21:13:17 Aborted by Dreamy Jazz

Acceptance criteria

  • The selenium tests are dropped, along with removal of any supporting code

Event Timeline

Change #1153599 had a related patch set uploaded (by Máté Szabó; author: Máté Szabó):

[mediawiki/extensions/IPInfo@master] selenium: Update to WDIO 8

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

Indeed, the errors from the task description match the symptoms exactly. T395962#10883335 doesn't, but selenium in general has been more flaky lately. I think the consensus is that this is caused by the additional load on CI agents of 1) parallel PHPUnit and 2) testing on both PHP 7.4 and 8.1. In fact, I began observing flakiness, as reported in T388416, right when we enabled PHP 8.1 in CI.

I'm really unsure what can be done about it (aside from e.g. waiting for T328921: Drop PHP 7.4 and PHP 8.0 support from MediaWiki). I hoped that upgrading to wdio v9 would fix some of the issues, or at least prevent "normal" timeouts from turning into the entire jobs being stuck, but it's just that: hoping. Other than that, I don't think much can be done about the individual tests or repos.

I think that one may indeed be a failing test (that should be fixed) and not a problem due to slowness in the pipelines?

The recording here https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php81-selenium/5193/artifact/log/IPInfo-on-Special%253AContributions-should-show-geo-data-for-IP-with-edits-after-accepting-agreement-2025-06-04T11-07-12-466Z.mp4 shows that the IP info was shown without showing the agreement first, but the test does this

                await LoginPage.loginAdmin();
		await ContributionsWithIPInfoPage.open( utils.IP_WITH_EDITS );
		await ContributionsWithIPInfoPage.expandPanel();
		await ContributionsWithIPInfoPage.acceptAgreement();
		await ContributionsWithIPInfoPage.propertiesTable.waitForDisplayed();

acceptAgreement() does this

        async acceptAgreement() {
		await this.submitButton.waitForDisplayed();
		await this.ipInfoAgreeCheckbox.click();
		await this.submitButton.click();
        }

but in the recording it does not seem the IPInfo agreement to be shown at all (hence the timeout waiting for button[name=submit-agreement] to show up).

hector.arroyo changed the task status from In Progress to Open.Jun 10 2025, 11:30 AM
hector.arroyo removed hector.arroyo as the assignee of this task.

I'm not being able to reproduce this locally, but getting a different error related to permissions instead that I've not been able to track down (likely due to some misconfiguration).

I propose we drop this from the sprint.

Not hanging, but failing in a flaky manner
https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1172136
https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php81/31802/console

16:12:50 [0-1] Error in "IPInfo on Special:IPContributions.should show geo data for IP with edits"
16:12:50 Error: element (".ext-ipinfo-widget-properties") still not displayed after 5000ms
16:12:50     at async Context.<anonymous> (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js:90:3)
16:12:50 [0-1] RETRYING in chrome - /tests/selenium/specs/ipcontributions.js
16:12:51 [0-1] RUNNING in chrome - /tests/selenium/specs/ipcontributions.js
16:13:05 [0-0] PASSED in chrome - /tests/selenium/specs/contributions.js
16:13:12 [0-1] Error in "IPInfo on Special:IPContributions.should show an error for IPs without edits after accepting agreement"
16:13:12 Error: element ("button[name=submit-agreement]") still not displayed after 5000ms
16:13:12     at async IPContributionsWithIPInfoPage.acceptAgreement (/workspace/src/extensions/IPInfo/tests/selenium/pageobjects/IPContributionsWithIPInfoPage.js:44:3)
16:13:12     at async Context.<anonymous> (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js:76:3)
16:13:15 [0-1] FAILED in chrome - /tests/selenium/specs/ipcontributions.js (1 retries)
...
16:13:15 [Chrome 120.0.0.0 linux #0-1] » /tests/selenium/specs/ipcontributions.js
16:13:15 [Chrome 120.0.0.0 linux #0-1] IPInfo on Special:IPContributions
16:13:15 [Chrome 120.0.0.0 linux #0-1]    ✓ should not be shown to users without necessary permissions
16:13:15 [Chrome 120.0.0.0 linux #0-1]    ✓ should show an error for IPs without edits after accepting agreement
16:13:15 [Chrome 120.0.0.0 linux #0-1]    ✖ should show geo data for IP with edits
16:13:15 [Chrome 120.0.0.0 linux #0-1]
16:13:15 [Chrome 120.0.0.0 linux #0-1] 2 passing (23.9s)
16:13:15 [Chrome 120.0.0.0 linux #0-1] 1 failing
16:13:15 [Chrome 120.0.0.0 linux #0-1]
16:13:15 [Chrome 120.0.0.0 linux #0-1] 1) IPInfo on Special:IPContributions should show geo data for IP with edits
16:13:15 [Chrome 120.0.0.0 linux #0-1] element (".ext-ipinfo-widget-properties") still not displayed after 5000ms
16:13:15 [Chrome 120.0.0.0 linux #0-1] Error: element (".ext-ipinfo-widget-properties") still not displayed after 5000ms
16:13:15 [Chrome 120.0.0.0 linux #0-1]     at async Context.<anonymous> (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js:90:3)

https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1175580
https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php81/32089/console

14:56:52 [Chrome 120.0.0.0 linux #0-1] » /tests/selenium/specs/ipcontributions.js
14:56:52 [Chrome 120.0.0.0 linux #0-1] IPInfo on Special:IPContributions
14:56:52 [Chrome 120.0.0.0 linux #0-1]    ✓ should not be shown to users without necessary permissions
14:56:52 [Chrome 120.0.0.0 linux #0-1]    ✖ should show an error for IPs without edits after accepting agreement
14:56:52 [Chrome 120.0.0.0 linux #0-1]    ✓ should show geo data for IP with edits
14:56:52 [Chrome 120.0.0.0 linux #0-1]
14:56:52 [Chrome 120.0.0.0 linux #0-1] 2 passing (24.2s)
14:56:52 [Chrome 120.0.0.0 linux #0-1] 1 failing
14:56:52 [Chrome 120.0.0.0 linux #0-1]
14:56:52 [Chrome 120.0.0.0 linux #0-1] 1) IPInfo on Special:IPContributions should show an error for IPs without edits after accepting agreement
14:56:52 [Chrome 120.0.0.0 linux #0-1] element ("button[name=submit-agreement]") still not displayed after 5000ms
14:56:52 [Chrome 120.0.0.0 linux #0-1] Error: element ("button[name=submit-agreement]") still not displayed after 5000ms
14:56:52 [Chrome 120.0.0.0 linux #0-1]     at async IPContributionsWithIPInfoPage.acceptAgreement (/workspace/src/extensions/IPInfo/tests/selenium/pageobjects/IPContributionsWithIPInfoPage.js:44:3)
14:56:52 [Chrome 120.0.0.0 linux #0-1]     at async Context.<anonymous> (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js:76:3)

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/1178018
https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php81-selenium/22731/console

[Chrome 120.0.0.0 linux #0-1] » /tests/selenium/specs/ipcontributions.js
[Chrome 120.0.0.0 linux #0-1] IPInfo on Special:IPContributions
[Chrome 120.0.0.0 linux #0-1]    ✓ should not be shown to users without necessary permissions
[Chrome 120.0.0.0 linux #0-1]    ✖ should show an error for IPs without edits after accepting agreement
[Chrome 120.0.0.0 linux #0-1]    ✓ should show geo data for IP with edits
[Chrome 120.0.0.0 linux #0-1]
[Chrome 120.0.0.0 linux #0-1] 2 passing (19.5s)
[Chrome 120.0.0.0 linux #0-1] 1 failing
[Chrome 120.0.0.0 linux #0-1]
[Chrome 120.0.0.0 linux #0-1] 1) IPInfo on Special:IPContributions should show an error for IPs without edits after accepting agreement
[Chrome 120.0.0.0 linux #0-1] element ("button[name=submit-agreement]") still not displayed after 5000ms
[Chrome 120.0.0.0 linux #0-1] Error: element ("button[name=submit-agreement]") still not displayed after 5000ms
[Chrome 120.0.0.0 linux #0-1]     at async IPContributionsWithIPInfoPage.acceptAgreement (/workspace/src/extensions/IPInfo/tests/selenium/pageobjects/IPContributionsWithIPInfoPage.js:44:3)
[Chrome 120.0.0.0 linux #0-1]     at async Context.<anonymous> (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js:76:3)

Drive-by comment to say that we could probably move the "should not be shown to users without necessary permissions" test (present in both specs) to PHPUnit, as it just verifies that an element added by PHP is present.

The other tests are less easy to move because they do test a client-to-server interaction (the APIs when a user expands the dialog) that we cannot test using QUnit or Jest.

https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1181188
https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php81/35956/console

07:40:48 Setting up modified /workspace/src/LocalSettings.php
07:40:48 Restarting php8.1-fpm
07:40:50 [0-1] RUNNING in chrome - /tests/selenium/specs/ipcontributions.js
07:40:50 [0-0] RUNNING in chrome - /tests/selenium/specs/contributions.js
07:41:23 [0-0] PASSED in chrome - /tests/selenium/specs/contributions.js
07:41:55 [0-1] Error in "IPInfo on Special:IPContributions.should show an error for IPs without edits after accepting agreement"
07:41:55 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:IPContributions should show an error for IPs without edits after accepting agreement" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js)
07:41:55     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
07:41:55     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
07:41:55     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
07:41:55     at listOnTimeout (node:internal/timers:581:17)
07:41:55     at process.processTimers (node:internal/timers:519:7)
07:42:55 [0-1] Error in "IPInfo on Special:IPContributions.should show geo data for IP with edits"
07:42:55 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:IPContributions should show geo data for IP with edits" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/ipcontributions.js)
07:42:55     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
07:42:55     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
07:42:55     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
07:42:55     at listOnTimeout (node:internal/timers:581:17)
07:42:55     at process.processTimers (node:internal/timers:519:7)
08:28:32 Build timed out (after 60 minutes). Marking the build as failed.
08:28:32 Build was aborted

https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CheckUser/+/1182946
https://integration.wikimedia.org/ci/job/wmf-quibble-selenium-php81/36433/console

23:41:15 Setting up modified /workspace/src/LocalSettings.php
23:41:15 Restarting php8.1-fpm
23:41:18 [0-0] RUNNING in chrome - /tests/selenium/specs/contributions.js
23:41:18 [0-1] RUNNING in chrome - /tests/selenium/specs/ipcontributions.js
23:41:38 [0-1] PASSED in chrome - /tests/selenium/specs/ipcontributions.js
23:42:43 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for IP with edits if agreement was already accepted"
23:42:43 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for IP with edits if agreement was already accepted" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
23:42:43     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
23:42:43     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
23:42:43     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
23:42:43     at listOnTimeout (node:internal/timers:581:17)
23:42:43     at process.processTimers (node:internal/timers:519:7)
23:43:43 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for temp user with edits after accepting agreement"
23:43:43 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for temp user with edits after accepting agreement" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
23:43:43     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
23:43:43     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
23:43:43     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
23:43:43     at listOnTimeout (node:internal/timers:581:17)
23:43:43     at process.processTimers (node:internal/timers:519:7)
23:44:43 [0-0] Error in "IPInfo on Special:Contributions.should show geo data for temp user with edits if agreement was already accepted"
23:44:43 Error: Timeout of 60000ms exceeded. The execution in the test "IPInfo on Special:Contributions should show geo data for temp user with edits if agreement was already accepted" took too long. Try to reduce the run time or increase your timeout for test specs (https://webdriver.io/docs/timeouts). (/workspace/src/extensions/IPInfo/tests/selenium/specs/contributions.js)
23:44:43     at createTimeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/errors.js:498:15)
23:44:43     at Runnable._timeoutError (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:429:10)
23:44:43     at Timeout.<anonymous> (/workspace/src/extensions/IPInfo/node_modules/mocha/lib/runnable.js:244:24)
23:44:43     at listOnTimeout (node:internal/timers:581:17)
23:44:43     at process.processTimers (node:internal/timers:519:7)
00:27:20 Build timed out (after 60 minutes). Marking the build as failed.
00:27:21 Build was aborted
00:27:21 [PostBuildScript] - [INFO] Executing post build scripts.
00:27:21 [wmf-quibble-selenium-php81] $ /bin/bash -xe /tmp/jenkins1409455009478702593.sh
00:27:21 + find log/ -name 'mw-debug-*.log' -exec gzip '{}' +

Given that when these tests fail they cause the test run to hang until the build times out, these flaky tests are more of a drain on the CI infrastructure than other flaky tests that instead fail and then cause the job to end.

Because of that I propose we disable all of the IPInfo selenium tests, replace those with PHPUnit that we can, and then we can re-enable them once they are stable.

Change #1183125 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/IPInfo@master] Skip IPInfo Selenium tests as they are flaky

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

Change #1183134 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/IPInfo@master] Selenium tests: Replace some with PHPUnit tests

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

Change #1183125 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] Skip IPInfo Selenium tests as they are flaky

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

Change #1183134 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] Selenium tests: Replace some with PHPUnit tests

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

Change #1184530 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/IPInfo@master] Drop all selenium tests

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

Change #1184535 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/IPInfo@master] Drop the PopulateTestData script as unused

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

Change #1184540 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/IPInfo@master] Drop Selenium test dependencies from package.json

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

Change #1184530 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] Drop all selenium tests

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

Change #1184540 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] Drop Selenium test dependencies from package.json

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

Change #1184535 merged by jenkins-bot:

[mediawiki/extensions/IPInfo@master] Drop the PopulateTestData script as unused

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