Status
22/34 (65%)
✅ - work is complete
⚠ - will revisit
🔨 - in progress
🚫 - abandoned (Entity Schema)
Description
MediaWiki Core, it's extensions and skins use WebdriverIO to drive our Selenium testing framework. All tests are written using WebdriverIO sync mode. The sync mode will be deprecated in Node.js v16. We need to move tests in MediaWiki Core, it's extensions and skins from WebdriverIO sync to async mode.
TODO
- Revert 896026.
- Update documentation.
- There should be no instances of @wdio/sync.
Optional
- Should all instances of browser.call() be removed?
- Should browser.execute (search) be replaced with browser.executeAsync()?
- Should fs.writeFileSync() (search) be replaced with fs.writeFile()?
Repositories
Repository | Suites | Tests | Task | Status |
---|---|---|---|---|
mediawiki/core | 5 | 13 | T293071 | ✅ |
mediawiki/extensions/AbuseFilter | 3 | 24 | T300790 | ✅ |
mediawiki/extensions/AdvancedSearch | 5 | 41 | T300791 | ⚠ |
mediawiki/extensions/CampaignEvents | ✅ | |||
mediawiki/extensions/CentralNotice | 1 | 1 | T300212 | ✅ |
mediawiki/extensions/CheckUser | 2 | 2 | T321904 | ✅ |
mediawiki/extensions/CirrusSearch | 1 | 3 | T300793 | |
mediawiki/extensions/Cite | 1 | 6 | T300196 | ✅ |
mediawiki/extensions/CodeMirror | 3 | 5 | T300205 | |
mediawiki/extensions/ContactPage | 1 | 1 | T334094 | ✅ |
mediawiki/extensions/Echo | 2 | 5 | T293073 | ✅ |
mediawiki/extensions/ElectronPdfService | 1 | 1 | T299684 | ✅ |
mediawiki/extensions/EntitySchema | 5 | 17 | T300794 | 🚫 |
mediawiki/extensions/FileImporter | 2 | 1 | T300535 | |
mediawiki/extensions/GlobalWatchlist | 1 | 2 | T293074 | ✅ |
mediawiki/extensions/GrowthExperiments | 2 | 7 | T299102 | ✅ |
mediawiki/extensions/Math | 1 | 1 | T293076 | ✅ |
mediawiki/extensions/Newsletter | 1 | 1 | T293078 | ✅ |
mediawiki/extensions/PageTriage | ✅ | |||
mediawiki/extensions/Popups | 2 | 7 | T293072 | |
mediawiki/extensions/ProofreadPage | 1 | 1 | T293079 | ⚠ |
mediawiki/extensions/RelatedArticles | 1 | 0 | T300797 | ✅ |
mediawiki/extensions/RevisionSlider | 8 | 22 | T300798 | ✅ |
mediawiki/extensions/TemplateWizard | 1 | 3 | T300208 | ✅ |
mediawiki/extensions/TwoColConflict | 7 | 46 | T300800 | ⚠ |
mediawiki/extensions/VisualEditor | 1 | 1 | T299756 | ✅ |
mediawiki/extensions/Wikibase | 16 | 37 | T293080 | 🔨 |
mediawiki/extensions/WikibaseLexeme | 16 | 48 | T293081 | 🔨 |
mediawiki/extensions/WikiLambda | 1 | 2 | T293082 | ✅ |
mediawiki/extensions/Wikistories | ✅ | |||
mediawiki/skins/MinervaNeue | 10 | 14 | T293084 | ✅ |
wikibase/termbox | 4 | 25 | T300807 | |
wikidata/query/gui | 1 | 0 | T300808 | |
wmde/wdio-wikibase | 0 | 0 | T300811 | |
(Number of tests estimated with ack --count --files-with-matches ' it\('. See P17460.)
Notes
- Sync vs. Async Mode
- WebdriverIO Codemod
- Sync API Deprecation
- RFC Replacement for Node-Fibers
- Repositories with Selenium tests: https://www.mediawiki.org/wiki/Selenium/Reference/Example_Code
- Project on Outreachy: https://www.outreachy.org/outreachy-december-2021-internship-round/communities/wikimedia/#refactor-mediawiki-tests-to-use-webdriverio-async
- A Beginner’s Guide to JavaScript async/await, with Examples