openForEditing: Wait until CodeMirror is fully disabled

Bug: T324879
Change-Id: I2a86a37fe2853890742bea2e7180f7d6c5f9304c
This commit is contained in:
Func 2023-01-12 14:28:50 +08:00 committed by Bartosz Dziewoński
parent 773d3b01b3
commit a6d3e64ae2

View file

@ -1,6 +1,7 @@
'use strict';
const Page = require( 'wdio-mediawiki/Page' );
const Page = require( 'wdio-mediawiki/Page' ),
Util = require( 'wdio-mediawiki/Util' );
class EditPage extends Page {
get content() { return $( '#wpTextbox1' ); }
@ -13,9 +14,20 @@ class EditPage extends Page {
async openForEditing( title ) {
await super.openTitle( title, { action: 'submit', vehidebetadialog: 1, hidewelcomedialog: 1 } );
// Compatibility with CodeMirror extension (T324879)
Util.waitForModuleState( 'mediawiki.base' );
const hasToolbar = await this.save.isExisting() && await browser.execute( () => {
return mw.loader.getState( 'ext.wikiEditor' ) !== null;
} );
if ( !hasToolbar ) {
return;
}
await $( '#wikiEditor-ui-toolbar' ).waitForDisplayed();
const cmButton = $( '.mw-editbutton-codemirror-active' );
if ( await cmButton.isExisting() ) {
await cmButton.click();
await browser.waitUntil( async () => {
return !( await cmButton.getAttribute( 'class' ) ).includes( 'mw-editbutton-codemirror-active' );
} );
}
}