aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Tijhof <krinklemail@gmail.com>2019-09-29 04:24:47 +0100
committerTimo Tijhof <krinklemail@gmail.com>2019-09-30 14:47:00 +0100
commit058d5b7cd857af7bb2f003880057e51c78856355 (patch)
treeadcfa8cbd1b4a93f74d99366542667959f1fcd0d
parent3845dba69e20d3637c2dc0ae7fd8c471d32f7e99 (diff)
downloadmediawikicore-058d5b7cd857af7bb2f003880057e51c78856355.tar.gz
mediawikicore-058d5b7cd857af7bb2f003880057e51c78856355.zip
selenium: Fix inefficient use of MWBot in specs/page.js
This test previously took 4 minutes to run locally and ended up running the MWBot.login process 9 times. After this, the specs/page tests only log-in once. Bug: T234002 Change-Id: I374620a01f49d4da559070d0982bdbe4c1269e2e
-rw-r--r--tests/selenium/specs/page.js80
1 files changed, 34 insertions, 46 deletions
diff --git a/tests/selenium/specs/page.js b/tests/selenium/specs/page.js
index 24e1d650c1a0..e2ca6554c1a9 100644
--- a/tests/selenium/specs/page.js
+++ b/tests/selenium/specs/page.js
@@ -10,13 +10,13 @@ const assert = require( 'assert' ),
Util = require( 'wdio-mediawiki/Util' );
describe( 'Page', function () {
- var content,
- name;
+ var content, name, bot;
- before( function () {
+ before( async function () {
// disable VisualEditor welcome dialog
BlankPage.open();
browser.setLocalStorage( 've-beta-welcome-dialog', '1' );
+ bot = await Api.bot();
} );
beforeEach( function () {
@@ -46,17 +46,13 @@ describe( 'Page', function () {
it( 'should be re-creatable', function () {
const initialContent = Util.getTestString( 'initialContent-' );
- // create
- browser.call( function () {
- return Api.edit( name, initialContent );
- } );
-
- // delete
- browser.call( function () {
- return Api.delete( name, 'delete prior to recreate' );
+ // create and delete
+ browser.call( async () => {
+ await bot.edit( name, initialContent, 'create for delete' );
+ await bot.delete( name, 'delete prior to recreate' );
} );
- // create
+ // re-create
EditPage.edit( name, content );
// check
@@ -66,8 +62,8 @@ describe( 'Page', function () {
it( 'should be editable @daily', function () {
// create
- browser.call( function () {
- return Api.edit( name, content );
+ browser.call( async () => {
+ await bot.edit( name, content, 'create for edit' );
} );
// edit
@@ -81,26 +77,26 @@ describe( 'Page', function () {
it( 'should have history @daily', function () {
// create
- browser.call( function () {
- return Api.edit( name, content );
+ browser.call( async () => {
+ await bot.edit( name, content, `created with "${content}"` );
} );
// check
HistoryPage.open( name );
- assert.strictEqual( HistoryPage.comment.getText(), `Created or updated page with "${content}"` );
+ assert.strictEqual( HistoryPage.comment.getText(), `created with "${content}"` );
} );
it( 'should be deletable', function () {
- // login
- UserLoginPage.loginAdmin();
-
// create
- browser.call( function () {
- return Api.edit( name, content );
+ browser.call( async () => {
+ await bot.edit( name, content, 'create for delete' );
} );
+ // login
+ UserLoginPage.loginAdmin();
+
// delete
- DeletePage.delete( name, content + '-deletereason' );
+ DeletePage.delete( name, 'delete reason' );
// check
assert.strictEqual(
@@ -110,40 +106,32 @@ describe( 'Page', function () {
} );
it( 'should be restorable', function () {
- // login
- UserLoginPage.loginAdmin();
-
- // create
- browser.call( function () {
- return Api.edit( name, content );
+ // create and delete
+ browser.call( async () => {
+ await bot.edit( name, content, 'create for delete' );
+ await bot.delete( name, 'delete for restore' );
} );
- // delete
- browser.call( function () {
- return Api.delete( name, content + '-deletereason' );
- } );
+ // login
+ UserLoginPage.loginAdmin();
// restore
- RestorePage.restore( name, content + '-restorereason' );
+ RestorePage.restore( name, 'restore reason' );
// check
assert.strictEqual( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
} );
it( 'should be undoable', function () {
- // create
- browser.call( function () {
- return Api.edit( name, content );
- } );
-
- // edit
let previousRev, undoRev;
- browser.call( function () {
- return Api.edit( name, Util.getTestString( 'editContent-' ) )
- .then( ( response ) => {
- previousRev = response.edit.oldrevid;
- undoRev = response.edit.newrevid;
- } );
+ browser.call( async () => {
+ // create
+ await bot.edit( name, content, 'create to edit and undo' );
+
+ // edit
+ const response = await bot.edit( name, Util.getTestString( 'editContent-' ) );
+ previousRev = response.edit.oldrevid;
+ undoRev = response.edit.newrevid;
} );
UndoPage.undo( name, previousRev, undoRev );