mediawiki-extensions-Visual.../tests/selenium/specs/content_editable.js
Esther Akinloose 9de7c6743d selenium: Improve debugging
Looks like Selenium tests are flaky. To improve debugging:

- Move code from beforeEach hook to specs.
  (Video recording happens only in specs, not in hooks.)

- Increase logLevel from error to info.

Bug: T296187
Change-Id: Iffcfae9a76085670eb8858fbcf622e596a4ff2f0
2022-05-20 16:44:23 +02:00

60 lines
1.7 KiB
JavaScript

'use strict';
const assert = require( 'assert' );
const EditPage = require( '../pageobjects/edit.page' );
const LoginPage = require( 'wdio-mediawiki/LoginPage' );
const Util = require( 'wdio-mediawiki/Util' );
describe( 'Content Editable', function () {
let name, content;
it( 'should load when an url is opened', async function () {
content = Util.getTestString();
name = Util.getTestString();
await browser.deleteAllCookies();
await LoginPage.loginAdmin();
await EditPage.openForEditing( name );
await EditPage.activationComplete();
assert( await EditPage.toolbar.isDisplayed() );
} );
it( 'should be editable', async function () {
content = Util.getTestString();
name = Util.getTestString();
await browser.deleteAllCookies();
await LoginPage.loginAdmin();
await EditPage.openForEditing( name );
await EditPage.activationComplete();
await EditPage.veRootNode.setValue( content );
assert.equal( await EditPage.veRootNode.getText(), content );
// T269566: Popup with text
// 'Leave site? Changes that you made may not be saved. Cancel/Leave'
// appears after the browser tries to leave the page with the preview.
await browser.reloadSession();
} );
it( 'should save an edit', async function () {
content = Util.getTestString();
name = Util.getTestString();
await browser.deleteAllCookies();
await LoginPage.loginAdmin();
await EditPage.openForEditing( name );
await EditPage.activationComplete();
await EditPage.veRootNode.setValue( content );
await EditPage.savePageDots.click();
await EditPage.savePage.click();
assert( await EditPage.veBodyContent.isDisplayed() );
assert.equal( await EditPage.veBodyContent.getText(), content );
} );
} );