'use strict'; const Page = require( 'wdio-mediawiki/Page' ); class EditPage extends Page { get bulletListOption() { return $( '.oo-ui-tool-name-bullet' ); } get boldTextStyleOption() { return $( '.oo-ui-tool-name-bold' ); } get content() { return $( '#content' ); } get edited() { return $( '*=Your edit was saved' ); } get helpPopup() { return $( '.ve-ui-mwHelpPopupTool-items' ); } get helpElement() { return $( '.oo-ui-tool-name-help' ); } get insert() { return $( '.ve-ui-toolbar-group-insert' ); } get insertMenu() { return $( '.oo-ui-tool-name-media' ); } get insertTableElement() { return $( '.oo-ui-tool-name-insertTable' ); } get insertedTable() { return $( 'table.ve-ce-branchNode' ); } get notices() { return $( '.ve-ui-mwNoticesPopupTool-items' ); } get notification() { return $( 'div.mw-notification-content span.oo-ui-labelElement-label' ); } get options() { return $( '.oo-ui-tool-name-meta' ); } get pageOptionsElement() { return $( '.ve-ui-toolbar-group-pageMenu' ); } get popupToolGroup() { return $( '.oo-ui-popupToolGroup-active-tools' ); } get savePage() { return $( '.ve-ui-overlay-global .oo-ui-processDialog-actions-primary' ); } get savePageDots() { return $( '.ve-ui-toolbar-saveButton' ); } get specialCharacterElement() { return $( '.oo-ui-tool-name-specialCharacter' ); } get specialCharacterMenu() { return $( '.oo-ui-menuLayout' ); } get structureOptionsElement() { return $( '.ve-ui-toolbar-group-structure' ); } get styleTextElement() { return $( '.ve-ui-toolbar-group-style' ); } get switchEditorElement() { return $( '.ve-ui-toolbar-group-editMode' ); } get toolbar() { return $( '.ve-init-mw-desktopArticleTarget-toolbar-open' ); } get veBodyContent() { return $( '.mw-body-content.ve-ui-surface' ); } get veRootNode() { return $( '.ve-ce-rootNode[role="textbox"]' ); } get visualEditing() { return $( '.oo-ui-tool-name-editModeVisual' ); } openForEditing( title ) { super.openTitle( title, { veaction: 'edit', cxhidebetapopup: 1, hidewelcomedialog: 1, vehidebetadialog: 1 } ); } activationComplete() { return browser.executeAsync( function ( done ) { mw.hook( 've.activationComplete' ).add( function () { done(); } ); } ); } async insertTable() { await this.insert.click(); await this.insertTableElement.click(); } saveComplete() { return browser.executeAsync( function ( done ) { ve.init.target.on( 'save', function () { done(); } ); } ); } } module.exports = new EditPage();