Page MenuHomePhabricator

Temporary user Selenium tests fail when Vector skin is not installed
Closed, ResolvedPublic1 Estimated Story Points

Description

All Selenium core tests pass with just core installed. No skin is required for core tests to pass. Two recently added tests are failing if Vector skin is not installed. Tests were introduced in 2024 in 1070002.

  • If tests don't need Vector skin, they should be fixed so they pass without it.
  • If tests need Vector skin, they should be moved to Vector skin repository.

Relevant test output:

[chrome 140.0.7339.80 linux #0-8]    ✖ temporary user should not see signup form fields relevant to named users
[chrome 140.0.7339.80 linux #0-8]    ✖ temporary user should be able to create account

For the parent task see T379654: Core selenium tests should pass when vector is not installed.

For test output see:

1~/Documents/gitlab/test-platform/mediawiki-quickstart$ ./run_selenium_tests --specFileRetries 0 --mochaOpts.retries 0
2
3Ensuring Selenium ready... (use VERBOSE=1 to see full output)
4▪▪
5⏲ 00:00
6
7Starting Selenium container (use VERBOSE=1 to see full output)
8▪▪▪▪▪▪▪▪▪▪▪▪
9⏲ 00:00
10
11Waiting for NoVNC page availability (use VERBOSE=1 to see full output)
12▪▪▪
13⏲ 00:03
14Installing Selenium browser binary...
15Error: Could not determine puppeteer-core version
16Error: Browser installation failed
17
18Webdriver is greater than v7 - letting it handle automatic broswer installation
19
20> selenium-test
21> if [ "$CI" = true ]; then node tests/selenium/docs/Stack/webdriverio.js; fi && wdio ./tests/selenium/wdio.conf.js
22
23Injecting wdio args: [ '--specFileRetries', '0', '--mochaOpts.retries', '0' ]
24
25Execution of 10 workers started at 2025-09-09T11:01:14.042Z
26
27Run test targeting http://localhost:8080/w
28[0-0] RUNNING in chrome - file:///tests/selenium/docs/Create_a_simple_test/specs/specialpages.js
29[0-0] PASSED in chrome - file:///tests/selenium/docs/Create_a_simple_test/specs/specialpages.js
30[0-1] RUNNING in chrome - file:///tests/selenium/docs/Page_object_pattern/specs/login.js
31[0-1] PASSED in chrome - file:///tests/selenium/docs/Page_object_pattern/specs/login.js
32[0-2] RUNNING in chrome - file:///tests/selenium/docs/Stack/specs/expect.js
33[0-2] Error in "Main page.should have "Log in" link when using expect"
34Error: Expect $(`li#pt-login-2 a`) to exist
35
36Expected: "exist"
37Received: "not exist"
38 at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/expect.js:13:42)
39[0-2] FAILED in chrome - file:///tests/selenium/docs/Stack/specs/expect.js
40[0-3] RUNNING in chrome - file:///tests/selenium/docs/Stack/specs/mocha.js
41[0-3] Error in "Main page.should have "Log in" link when using mocha"
42Error: Log in link not visible
43 at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/mocha.js:15:10)
44[0-3] FAILED in chrome - file:///tests/selenium/docs/Stack/specs/mocha.js
45[0-4] RUNNING in chrome - file:///tests/selenium/docs/Stack/specs/pageobject.js
46[0-4] Error in "Main Page.should have "Log in" link when using page object"
47Error: Expect $(`li#pt-login-2 a`) to exist
48
49Expected: "exist"
50Received: "not exist"
51 at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/pageobject.js:9:34)
52[0-4] FAILED in chrome - file:///tests/selenium/docs/Stack/specs/pageobject.js
53[0-5] RUNNING in chrome - file:///tests/selenium/docs/Use_MediaWiki_API/specs/api.js
54[0-5] PASSED in chrome - file:///tests/selenium/docs/Use_MediaWiki_API/specs/api.js
55[0-6] RUNNING in chrome - file:///tests/selenium/specs/page.js
56[0-6] PASSED in chrome - file:///tests/selenium/specs/page.js
57[0-7] RUNNING in chrome - file:///tests/selenium/specs/recentchanges.js
58[0-7] PASSED in chrome - file:///tests/selenium/specs/recentchanges.js
59[0-8] RUNNING in chrome - file:///tests/selenium/specs/user.js
60[0-8] Error in "User.temporary user should not see signup form fields relevant to named users"
61Error: element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
62 at async EditPage.openCreateAccountPageAsTempUser (file:///var/www/html/w/tests/selenium/pageobjects/edit.page.js:67:3)
63 at async Context.<anonymous> (file:///var/www/html/w/tests/selenium/specs/user.js:65:3)
64[0-8] Error in "User.temporary user should be able to create account"
65Error: element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
66 at async EditPage.openCreateAccountPageAsTempUser (file:///var/www/html/w/tests/selenium/pageobjects/edit.page.js:67:3)
67 at async Context.<anonymous> (file:///var/www/html/w/tests/selenium/specs/user.js:82:3)
68[0-8] FAILED in chrome - file:///tests/selenium/specs/user.js
69[0-9] RUNNING in chrome - file:///tests/selenium/wdio-mediawiki/specs/BlankPage.js
70[0-9] PASSED in chrome - file:///tests/selenium/wdio-mediawiki/specs/BlankPage.js
71
72 "spec" Reporter:
73------------------------------------------------------------------
74[chrome 140.0.7339.80 linux #0-0] Running: chrome (v140.0.7339.80) on linux
75[chrome 140.0.7339.80 linux #0-0] Session ID: 64adb3310fdb404a690d65141eb5f454
76[chrome 140.0.7339.80 linux #0-0]
77[chrome 140.0.7339.80 linux #0-0] » tests/selenium/docs/Create_a_simple_test/specs/specialpages.js
78[chrome 140.0.7339.80 linux #0-0] Special:SpecialPages
79[chrome 140.0.7339.80 linux #0-0] ✓ should not have Edit link
80[chrome 140.0.7339.80 linux #0-0]
81[chrome 140.0.7339.80 linux #0-0] 1 passing (4.8s)
82------------------------------------------------------------------
83[chrome 140.0.7339.80 linux #0-1] Running: chrome (v140.0.7339.80) on linux
84[chrome 140.0.7339.80 linux #0-1] Session ID: d9e81774ecb2d99c9ecadc15243b7a98
85[chrome 140.0.7339.80 linux #0-1]
86[chrome 140.0.7339.80 linux #0-1] » tests/selenium/docs/Page_object_pattern/specs/login.js
87[chrome 140.0.7339.80 linux #0-1] User
88[chrome 140.0.7339.80 linux #0-1] ✓ should be able to log in without page object
89[chrome 140.0.7339.80 linux #0-1]
90[chrome 140.0.7339.80 linux #0-1] 1 passing (4.4s)
91------------------------------------------------------------------
92[chrome 140.0.7339.80 linux #0-2] Running: chrome (v140.0.7339.80) on linux
93[chrome 140.0.7339.80 linux #0-2] Session ID: 2fc45bcfa7bb86b79e1eafaf93fedd76
94[chrome 140.0.7339.80 linux #0-2]
95[chrome 140.0.7339.80 linux #0-2] » tests/selenium/docs/Stack/specs/expect.js
96[chrome 140.0.7339.80 linux #0-2] Main page
97[chrome 140.0.7339.80 linux #0-2] ✖ should have "Log in" link when using expect
98[chrome 140.0.7339.80 linux #0-2]
99[chrome 140.0.7339.80 linux #0-2] 1 failing (12s)
100[chrome 140.0.7339.80 linux #0-2]
101[chrome 140.0.7339.80 linux #0-2] 1) Main page should have "Log in" link when using expect
102[chrome 140.0.7339.80 linux #0-2] Expect $(`li#pt-login-2 a`) to exist
103
104Expected: "exist"
105Received: "not exist"
106[chrome 140.0.7339.80 linux #0-2] Error: Expect $(`li#pt-login-2 a`) to exist
107[chrome 140.0.7339.80 linux #0-2]
108[chrome 140.0.7339.80 linux #0-2] Expected: "exist"
109[chrome 140.0.7339.80 linux #0-2] Received: "not exist"
110[chrome 140.0.7339.80 linux #0-2] at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/expect.js:13:42)
111------------------------------------------------------------------
112[chrome 140.0.7339.80 linux #0-3] Running: chrome (v140.0.7339.80) on linux
113[chrome 140.0.7339.80 linux #0-3] Session ID: 5af0c57b71b8167387be4ed7dfc48b3f
114[chrome 140.0.7339.80 linux #0-3]
115[chrome 140.0.7339.80 linux #0-3] » tests/selenium/docs/Stack/specs/mocha.js
116[chrome 140.0.7339.80 linux #0-3] Main page
117[chrome 140.0.7339.80 linux #0-3] ✖ should have "Log in" link when using mocha
118[chrome 140.0.7339.80 linux #0-3]
119[chrome 140.0.7339.80 linux #0-3] 1 failing (1.9s)
120[chrome 140.0.7339.80 linux #0-3]
121[chrome 140.0.7339.80 linux #0-3] 1) Main page should have "Log in" link when using mocha
122[chrome 140.0.7339.80 linux #0-3] Log in link not visible
123[chrome 140.0.7339.80 linux #0-3] Error: Log in link not visible
124[chrome 140.0.7339.80 linux #0-3] at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/mocha.js:15:10)
125------------------------------------------------------------------
126[chrome 140.0.7339.80 linux #0-4] Running: chrome (v140.0.7339.80) on linux
127[chrome 140.0.7339.80 linux #0-4] Session ID: 82312aedbaab060e1b6741b1302cb0a1
128[chrome 140.0.7339.80 linux #0-4]
129[chrome 140.0.7339.80 linux #0-4] » tests/selenium/docs/Stack/specs/pageobject.js
130[chrome 140.0.7339.80 linux #0-4] Main Page
131[chrome 140.0.7339.80 linux #0-4] ✖ should have "Log in" link when using page object
132[chrome 140.0.7339.80 linux #0-4]
133[chrome 140.0.7339.80 linux #0-4] 1 failing (11.9s)
134[chrome 140.0.7339.80 linux #0-4]
135[chrome 140.0.7339.80 linux #0-4] 1) Main Page should have "Log in" link when using page object
136[chrome 140.0.7339.80 linux #0-4] Expect $(`li#pt-login-2 a`) to exist
137
138Expected: "exist"
139Received: "not exist"
140[chrome 140.0.7339.80 linux #0-4] Error: Expect $(`li#pt-login-2 a`) to exist
141[chrome 140.0.7339.80 linux #0-4]
142[chrome 140.0.7339.80 linux #0-4] Expected: "exist"
143[chrome 140.0.7339.80 linux #0-4] Received: "not exist"
144[chrome 140.0.7339.80 linux #0-4] at Context.<anonymous> (file:///var/www/html/w/tests/selenium/docs/Stack/specs/pageobject.js:9:34)
145------------------------------------------------------------------
146[chrome 140.0.7339.80 linux #0-5] Running: chrome (v140.0.7339.80) on linux
147[chrome 140.0.7339.80 linux #0-5] Session ID: b41ed69f81199b48b25d6e89c9e457a4
148[chrome 140.0.7339.80 linux #0-5]
149[chrome 140.0.7339.80 linux #0-5] » tests/selenium/docs/Use_MediaWiki_API/specs/api.js
150[chrome 140.0.7339.80 linux #0-5] API
151[chrome 140.0.7339.80 linux #0-5] ✓ Main Page should exist
152[chrome 140.0.7339.80 linux #0-5] ✓ Missing Page should not exist
153[chrome 140.0.7339.80 linux #0-5]
154[chrome 140.0.7339.80 linux #0-5] 2 passing (358ms)
155------------------------------------------------------------------
156[chrome 140.0.7339.80 linux #0-6] Running: chrome (v140.0.7339.80) on linux
157[chrome 140.0.7339.80 linux #0-6] Session ID: 998ef1f38ad5667fdc3b2edabde00303
158[chrome 140.0.7339.80 linux #0-6]
159[chrome 140.0.7339.80 linux #0-6] » tests/selenium/specs/page.js
160[chrome 140.0.7339.80 linux #0-6] Page
161[chrome 140.0.7339.80 linux #0-6] ✓ should be previewable @daily
162[chrome 140.0.7339.80 linux #0-6] ✓ should be creatable
163[chrome 140.0.7339.80 linux #0-6] ✓ should be re-creatable
164[chrome 140.0.7339.80 linux #0-6] ✓ should be editable @daily
165[chrome 140.0.7339.80 linux #0-6] ✓ should have history @daily
166[chrome 140.0.7339.80 linux #0-6] ✓ should be deletable
167[chrome 140.0.7339.80 linux #0-6] ✓ should be restorable
168[chrome 140.0.7339.80 linux #0-6] ✓ should be protectable
169[chrome 140.0.7339.80 linux #0-6] ✓ should be undoable @daily
170[chrome 140.0.7339.80 linux #0-6]
171[chrome 140.0.7339.80 linux #0-6] 9 passing (19.2s)
172------------------------------------------------------------------
173[chrome 140.0.7339.80 linux #0-7] Running: chrome (v140.0.7339.80) on linux
174[chrome 140.0.7339.80 linux #0-7] Session ID: 9da28ab49867650c8d12c0e2951c3a7f
175[chrome 140.0.7339.80 linux #0-7]
176[chrome 140.0.7339.80 linux #0-7] » tests/selenium/specs/recentchanges.js
177[chrome 140.0.7339.80 linux #0-7] Special:RecentChanges
178[chrome 140.0.7339.80 linux #0-7] ✓ shows page creation
179[chrome 140.0.7339.80 linux #0-7]
180[chrome 140.0.7339.80 linux #0-7] 1 passing (6s)
181------------------------------------------------------------------
182[chrome 140.0.7339.80 linux #0-8] Running: chrome (v140.0.7339.80) on linux
183[chrome 140.0.7339.80 linux #0-8] Session ID: 4fbffe7c43b8344ed354abe17ec19466
184[chrome 140.0.7339.80 linux #0-8]
185[chrome 140.0.7339.80 linux #0-8] » tests/selenium/specs/user.js
186[chrome 140.0.7339.80 linux #0-8] User
187[chrome 140.0.7339.80 linux #0-8] ✓ should be able to create account
188[chrome 140.0.7339.80 linux #0-8] ✓ should be able to log in
189[chrome 140.0.7339.80 linux #0-8] ✓ named user should see extra signup form fields when creating an account
190[chrome 140.0.7339.80 linux #0-8] ✖ temporary user should not see signup form fields relevant to named users
191[chrome 140.0.7339.80 linux #0-8] ✖ temporary user should be able to create account
192[chrome 140.0.7339.80 linux #0-8] ✓ should be able to block a user
193[chrome 140.0.7339.80 linux #0-8]
194[chrome 140.0.7339.80 linux #0-8] 4 passing (33.2s)
195[chrome 140.0.7339.80 linux #0-8] 2 failing
196[chrome 140.0.7339.80 linux #0-8]
197[chrome 140.0.7339.80 linux #0-8] 1) User temporary user should not see signup form fields relevant to named users
198[chrome 140.0.7339.80 linux #0-8] element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
199[chrome 140.0.7339.80 linux #0-8] Error: element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
200[chrome 140.0.7339.80 linux #0-8] at async EditPage.openCreateAccountPageAsTempUser (file:///var/www/html/w/tests/selenium/pageobjects/edit.page.js:67:3)
201[chrome 140.0.7339.80 linux #0-8] at async Context.<anonymous> (file:///var/www/html/w/tests/selenium/specs/user.js:65:3)
202[chrome 140.0.7339.80 linux #0-8]
203[chrome 140.0.7339.80 linux #0-8] 2) User temporary user should be able to create account
204[chrome 140.0.7339.80 linux #0-8] element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
205[chrome 140.0.7339.80 linux #0-8] Error: element (".mw-temp-user-banner-buttons > #pt-createaccount") still not displayed after 10000ms
206[chrome 140.0.7339.80 linux #0-8] at async EditPage.openCreateAccountPageAsTempUser (file:///var/www/html/w/tests/selenium/pageobjects/edit.page.js:67:3)
207[chrome 140.0.7339.80 linux #0-8] at async Context.<anonymous> (file:///var/www/html/w/tests/selenium/specs/user.js:82:3)
208------------------------------------------------------------------
209[chrome 140.0.7339.80 linux #0-9] Running: chrome (v140.0.7339.80) on linux
210[chrome 140.0.7339.80 linux #0-9] Session ID: 51f08ed2b3b18357a96ef110249a34e8
211[chrome 140.0.7339.80 linux #0-9]
212[chrome 140.0.7339.80 linux #0-9] » tests/selenium/wdio-mediawiki/specs/BlankPage.js
213[chrome 140.0.7339.80 linux #0-9] BlankPage
214[chrome 140.0.7339.80 linux #0-9] ✓ should have its title @daily
215[chrome 140.0.7339.80 linux #0-9]
216[chrome 140.0.7339.80 linux #0-9] 1 passing (1.8s)
217
218
219Spec Files: 6 passed, 4 failed, 10 total (100% completed) in 00:02:51

AC

  • all Selenium tests pass in CI when Vector skin is not installed

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Restricted Application added a subscriber: Aklapper. · View Herald Transcript
zeljkofilipin updated the task description. (Show Details)
zeljkofilipin updated the task description. (Show Details)
Dreamy_Jazz subscribed.

The Trust and Safety Product Team engineering team recently decided to drop all selenium tests for code that we own because they have been unstable and did not think it was worth the maintenance burden to keep them working, so I think we will likely drop this test and replace it (if possible) with PHPUnit / QUnit tests.

Actually, after discussing with other engineers we have decided to leave this task as the test isn't failing in CI so we don't need to fix it now.

As far as we can see Test Platform will take this work on (if that isn't the case and you are expecting Trust and Safety Product Team to fix the test then we would likely drop the test)

Test Platform has tested several end-to-end testing tools in the past, including Selenium. Our conclusion was that all tools were pretty good. There were no difference in flakiness between tools. The only source of flakiness we were able to find were tests themselves. It's not easy to get end-to-end tests to work robustly. Experience and training are needed. If you need help, let us know.

That said, replacing end-to-end tests with unit and/or integration tests where possible would be my recommendation.

Test Platform can't work on this because we don't really know how the tests should work, or if they actually need Vector or not. We're open to pairing with you on fixing this.

I agree that this is not urgent since the CI is not broken.

That said, tests are passing in CI because it by default installs Vector skin. As far as I know, there's no way to disable that.

Tests will fail with any tool that installs core only, without a skin. We have noticed that while testing MediaWiki-Quickstart (Docker) (local development environment). You can see it's CI output and failing tests at https://quickstart-ci-components.wmcloud.org/

Direct link to the last test run: https://quickstart-ci-components.wmcloud.org/api/results/1757045721.log.ansi.html (It might only be available for some time.)

Change #1187378 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/core@master] WIP selenium: Delete tests that require Vector skin

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

Change #1187385 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/skins/Vector@master] WIP selenium: Move tests from core that require Vector

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

zeljkofilipin changed the task status from Open to In Progress.Sep 11 2025, 2:42 PM
zeljkofilipin triaged this task as Medium priority.
zeljkofilipin moved this task from Backlog 🪒 to Deep work 🌊 on the User-zeljkofilipin board.

@Dreamy_Jazz I took a quick look and if I'm not missing anything, both temporary user tests would be fixed if tempUserSignUpButton() changed

from

get tempUserSignUpButton() {
  return $( '.mw-temp-user-banner-buttons > #pt-createaccount' );
}

to

get tempUserSignUpButton() {
  return $( 'a[href="/wiki/Special:CreateAccount"]' );
}

Would that work for you? Am I missing something?

Changing it to that rule means that technically the rule no longer targets specifically the temporary account sign up button. However, I don't think that's a major issue. Therefore, I'd suggest also renaming the function.

Querying by URL seems unstable, specially given that it includes wiki in the URL which may be different wiki-by-wiki.

Would it not be possible to query for pt-createaccount. That ID seems to be added by code that isn't provided by the Vector 2022 skin.

get signUpButton() {
	return $( '#pt-createaccount' );
}

Querying by URL seems unstable, specially given that it includes wiki in the URL which may be different wiki-by-wiki.

Good point. Something like this could work (not tested.)

get tempUserSignUpButton() {
  return $( 'a[href$="/Special:CreateAccount"]' );
}

Would it not be possible to query for pt-createaccount. That ID seems to be added by code that isn't provided by the Vector 2022 skin.

get signUpButton() {
	return $( '#pt-createaccount' );
}

I don't see #pt-createaccount in the HTML. Am I looking at the wrong place?

1<div role="status" class="mw-notification mw-notification-autohide postedit-tempuserpopup mw-notification-visible">
2 <div class="mw-notification-title">Temporary account</div>
3 <div class="mw-notification-content">
4 An
5 <a title="Mw:Special:MyLanguage/Help:Temporary accounts" href="/wiki/Mw:Special:MyLanguage/Help:Temporary_accounts">
6 auto-generated account
7 </a>
8 has been created for you by adding a cookie to your browser. To pick a name of your choice and get more features, consider
9 <a href="/wiki/Special:CreateAccount">
10 creating an account
11 </a>
12 .
13 </div>
14</div>

wiki.png (2,991×3,253 px, 957 KB)

Querying by URL seems unstable, specially given that it includes wiki in the URL which may be different wiki-by-wiki.

Good point. Something like this could work (not tested.)

get tempUserSignUpButton() {
  return $( 'a[href$="/Special:CreateAccount"]' );
}

Would it not be possible to query for pt-createaccount. That ID seems to be added by code that isn't provided by the Vector 2022 skin.

get signUpButton() {
	return $( '#pt-createaccount' );
}

I don't see #pt-createaccount in the HTML. Am I looking at the wrong place?

I had assumed that #pt-createaccount would exist somewhere, because it is an ID for an element defined in MediaWiki core. I guess it's instead included by Vector 2022 and therefore not displayed not by default.

1<div role="status" class="mw-notification mw-notification-autohide postedit-tempuserpopup mw-notification-visible">
2 <div class="mw-notification-title">Temporary account</div>
3 <div class="mw-notification-content">
4 An
5 <a title="Mw:Special:MyLanguage/Help:Temporary accounts" href="/wiki/Mw:Special:MyLanguage/Help:Temporary_accounts">
6 auto-generated account
7 </a>
8 has been created for you by adding a cookie to your browser. To pick a name of your choice and get more features, consider
9 <a href="/wiki/Special:CreateAccount">
10 creating an account
11 </a>
12 .
13 </div>
14</div>

wiki.png (2,991×3,253 px, 957 KB)

That notification only appears once when the temporary account is created and does disappear after a time. This time period is 30 seconds (defined here as 'long' which means 30 seconds). If the tests are running slowly it may be possible for the notification to disappear and then the test would fail.

As such, I would recommend instead simply opening the create account page once the edit to create the temporary account has completed. So something like a super.openTitle call for the create account special page.

As such, I would recommend instead simply opening the create account page once the edit to create the temporary account has completed. So something like a super.openTitle call for the create account special page.

I'm lost. :) Could you push a patch to Gerrit so I could test this?

As far as we can see Test Platform will take this work on (if that isn't the case and you are expecting Trust and Safety Product Team to fix the test then we would likely drop the test)

I'm not sure if I made it explicit, but I know how to make the tests pass, but I don't know if the fix is doing the right thing. I didn't understand your comments on what I should do.

From what I saw so far, the fix is almost trivial (one line of code, a few lines at the most), but I can't do it alone, I don't have any context on how temporary accounts should work.

  1. Would you prefer to delete the tests? I can work on finishing 1187378.
  2. Would you prefer to pair on this next week so we can fix the tests together? My estimate is that it would take us 30-60 minutes.

Change #1187385 abandoned by Zfilipin:

[mediawiki/skins/Vector@master] WIP selenium: Move tests from core that require Vector

Reason:

The fix to make the tests work seems to be trivial.

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

kostajh subscribed.

@zeljkofilipin our team doesn't have time to work on this issue. From our point of view, the tests work in CI, and do the job that they need to do--specifically, validating via an end-to-end test that editing results in a temporary account being created, and this has a dependency on the Vector skin, in that temporary accounts have full UI support in Vector and Minerva. If your team would like to move the test to a different location or rewrite the test such that it passes without Vector or Minerva being enabled, we don't have capacity to support that.

zeljkofilipin changed the task status from In Progress to Open.Sep 23 2025, 12:24 PM
zeljkofilipin removed zeljkofilipin as the assignee of this task.
zeljkofilipin raised the priority of this task from Medium to Needs Triage.

Change #1187378 abandoned by Zfilipin:

[mediawiki/core@master] WIP selenium: Delete tests that require Vector skin

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

zeljkofilipin changed the task status from Open to In Progress.Nov 25 2025, 1:57 PM
zeljkofilipin triaged this task as Medium priority.
zeljkofilipin moved this task from Prioritized to Doing on the Browser Test Platform board.

Change #1211136 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/core@master] WIP selenium: Temporary user tests work without Vector skin

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

Change #1211674 had a related patch set uploaded (by Zfilipin; author: Zfilipin):

[mediawiki/core@master] WIP selenium: debug tempUserSignUpButton()

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

Change #1211674 abandoned by Zfilipin:

[mediawiki/core@master] WIP selenium: debug tempUserSignUpButton()

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

Change #1187385 restored by Zfilipin:

[mediawiki/skins/Vector@master] WIP selenium: Move tests from core that require Vector

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

Change #1187378 restored by Zfilipin:

[mediawiki/core@master] WIP selenium: Delete tests that require Vector skin

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

Change #1211136 abandoned by Zfilipin:

[mediawiki/core@master] WIP selenium: Temporary user tests work without Vector skin

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

Change #1211136 restored by Dreamy Jazz:

[mediawiki/core@master] WIP selenium: Temporary user tests work without Vector skin

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

All Selenium core tests pass with just core installed. No skin is required for core tests to pass.

this seems strange to me. All our users use a skin to access our projects so skins should be required. If we are not running those tests with a skin they lose their value as they are not testing end to end what we want to test! All tests require a skin to work.

These tests should not be added to Vector repo. These tests are valuable and support products built by Product Safety and Integrity. The Vector and Minerva skins are owned by the Reader Experience teams and the tests there support those teams. Having tests owned by one team in a repo that is not owned by that team doesn't make sense.

In general, I think we might want to step back and reconsider how we ship and run tests. I think we might benefit from moving all our Selenium tests to a dedicated repo with an OWNERS.md file documenting who owns which test. I think it would have lots of advantages. If it's useful in January/Feb perhaps some principal/senior engineers in WMF product could talk to Test-Platform about this.

Change #1211136 merged by jenkins-bot:

[mediawiki/core@master] selenium: Update edit.page.js to not rely on Vector being installed

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

Change #1187378 abandoned by Dreamy Jazz:

[mediawiki/core@master] selenium: Delete tests that require Vector skin

Reason:

I009eed53e8d513334b98a1f859a79b58d4532de0 has been merged

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

Change #1187385 abandoned by Dreamy Jazz:

[mediawiki/skins/Vector@master] selenium: Move temporary user tests from core

Reason:

I009eed53e8d513334b98a1f859a79b58d4532de0 has been merged

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

@zeljkofilipin can you test that the tests now pass using your quickstart environment?

@Dreamy_Jazz MediaWiki-Quickstart (Docker) has CI for core and all supported extensions and skins. (CI runs in a loop, it needs a few hours for every loop.)

https://quickstart-ci-components.wmcloud.org/

As soon as the CI runs again, ./run_selenium_tests at the top of the page should change from red x to green check-mark.

Screenshot 2025-12-15 at 16.45.55.png (1,204×504 px, 61 KB)

They are now passing per the log:

Running Selenium tests for MediaWiki core...

...

> selenium-test
> if [ "$CI" = true ]; then node tests/selenium/docs/Stack/webdriverio.js; fi && wdio ./tests/selenium/wdio.conf.js

...

[chrome 143.0.7499.146 linux #0-8] Running: chrome (v143.0.7499.146) on linux
[chrome 143.0.7499.146 linux #0-8] Session ID: 5b18ff6e31d7c46cb90c7e446415aed8
[chrome 143.0.7499.146 linux #0-8]
[chrome 143.0.7499.146 linux #0-8] » tests/selenium/specs/user.js
[chrome 143.0.7499.146 linux #0-8] User
[chrome 143.0.7499.146 linux #0-8]    ✓ should be able to create account
[chrome 143.0.7499.146 linux #0-8]    ✓ should be able to log in
[chrome 143.0.7499.146 linux #0-8]    ✓ named user should see extra signup form fields when creating an account
[chrome 143.0.7499.146 linux #0-8]    ✓ temporary user should not see signup form fields relevant to named users
[chrome 143.0.7499.146 linux #0-8]    ✓ temporary user should be able to create account
[chrome 143.0.7499.146 linux #0-8]    ✓ should be able to block a user
[chrome 143.0.7499.146 linux #0-8]
[chrome 143.0.7499.146 linux #0-8] 6 passing (14.1s)

@Dreamy_Jazz apologies for being slow on this. Yes, temporary user tests are now passing without Vector skin installed. Thanks for the patch!