From 46586a243c6adf6a7020608173ba5a73fb97ee72 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Tue, 1 Oct 2019 02:36:15 +0100 Subject: [PATCH] selenium: Replace ES5 one-var assignments with const/let per line The one-var rule only applies to 'var' where it matters that we don't let the engine implicitly hoist variables leading to confusing code that may be unsafe to refactor in a straight-forward manner. This doesn't apply to ES6 const and let. While I updated the rule in 1955a8aa5 to allow ES6, I did not enforce it. Fixed now. When assigning a value, each assignment should be its own statement (disallow awkward comma separated assignments). When not assigning a value, and the lines are next to each other, they should be in one statement. This makes sense for this small directory and might make sense to propose for the wikimedia preset at some point. Note that the rule I added was not required to make the build pass. The changes I made are allowed by default by the wikimedia preset for es6+. The rule I added disallows the previous way. Change-Id: I26cda095a8a4589084e36273038877f2dd1fc50b --- tests/selenium/.eslintrc.json | 4 ++-- tests/selenium/pageobjects/history.page.js | 6 +++--- tests/selenium/specs/page.js | 20 +++++++++---------- tests/selenium/specs/rollback.js | 18 ++++++++--------- tests/selenium/specs/specialrecentchanges.js | 11 +++++----- tests/selenium/specs/specialwatchlist.js | 12 +++++------ tests/selenium/specs/user.js | 15 +++++++------- tests/selenium/wdio-mediawiki/RunJobs.js | 6 +++--- .../wdio-mediawiki/specs/BlankPage.js | 4 ++-- tests/selenium/wdio.conf.js | 9 +++++---- 10 files changed, 51 insertions(+), 54 deletions(-) diff --git a/tests/selenium/.eslintrc.json b/tests/selenium/.eslintrc.json index 93ac5586fc..2a66b4eb29 100644 --- a/tests/selenium/.eslintrc.json +++ b/tests/selenium/.eslintrc.json @@ -14,7 +14,7 @@ "mw": false }, "rules": { - "no-console": "off", - "prefer-template": "off" + "prefer-template": "off", + "one-var": [ "error", { "initialized": "never", "uninitialized": "always" } ] } } diff --git a/tests/selenium/pageobjects/history.page.js b/tests/selenium/pageobjects/history.page.js index e68c0159f8..85253845f5 100644 --- a/tests/selenium/pageobjects/history.page.js +++ b/tests/selenium/pageobjects/history.page.js @@ -1,6 +1,6 @@ -const Page = require( 'wdio-mediawiki/Page' ), - Api = require( 'wdio-mediawiki/Api' ), - Util = require( 'wdio-mediawiki/Util' ); +const Page = require( 'wdio-mediawiki/Page' ); +const Api = require( 'wdio-mediawiki/Api' ); +const Util = require( 'wdio-mediawiki/Util' ); class HistoryPage extends Page { get heading() { return $( '#firstHeading' ); } diff --git a/tests/selenium/specs/page.js b/tests/selenium/specs/page.js index b04a578723..464fbb2874 100644 --- a/tests/selenium/specs/page.js +++ b/tests/selenium/specs/page.js @@ -1,15 +1,15 @@ -const assert = require( 'assert' ), - Api = require( 'wdio-mediawiki/Api' ), - DeletePage = require( '../pageobjects/delete.page' ), - RestorePage = require( '../pageobjects/restore.page' ), - EditPage = require( '../pageobjects/edit.page' ), - HistoryPage = require( '../pageobjects/history.page' ), - UndoPage = require( '../pageobjects/undo.page' ), - UserLoginPage = require( 'wdio-mediawiki/LoginPage' ), - Util = require( 'wdio-mediawiki/Util' ); +const assert = require( 'assert' ); +const Api = require( 'wdio-mediawiki/Api' ); +const DeletePage = require( '../pageobjects/delete.page' ); +const RestorePage = require( '../pageobjects/restore.page' ); +const EditPage = require( '../pageobjects/edit.page' ); +const HistoryPage = require( '../pageobjects/history.page' ); +const UndoPage = require( '../pageobjects/undo.page' ); +const UserLoginPage = require( 'wdio-mediawiki/LoginPage' ); +const Util = require( 'wdio-mediawiki/Util' ); describe( 'Page', function () { - var content, name, bot; + let content, name, bot; before( async function () { bot = await Api.bot(); diff --git a/tests/selenium/specs/rollback.js b/tests/selenium/specs/rollback.js index c980bc33d2..faf1d6cf9a 100644 --- a/tests/selenium/specs/rollback.js +++ b/tests/selenium/specs/rollback.js @@ -1,11 +1,10 @@ -const assert = require( 'assert' ), - HistoryPage = require( '../pageobjects/history.page' ), - UserLoginPage = require( 'wdio-mediawiki/LoginPage' ), - Util = require( 'wdio-mediawiki/Util' ); +const assert = require( 'assert' ); +const HistoryPage = require( '../pageobjects/history.page' ); +const UserLoginPage = require( 'wdio-mediawiki/LoginPage' ); +const Util = require( 'wdio-mediawiki/Util' ); describe( 'Rollback with confirmation', function () { - var content, - name; + let content, name; before( function () { browser.deleteAllCookies(); @@ -64,7 +63,7 @@ describe( 'Rollback with confirmation', function () { } ); it.skip( 'should verify rollbacks via GET requests are confirmed on a follow-up page', function () { - var rollbackActionUrl = HistoryPage.rollbackLink.getAttribute( 'href' ); + const rollbackActionUrl = HistoryPage.rollbackLink.getAttribute( 'href' ); browser.url( rollbackActionUrl ); browser.waitUntil( function () { @@ -81,8 +80,7 @@ describe( 'Rollback with confirmation', function () { } ); describe( 'Rollback without confirmation', function () { - var content, - name; + let content, name; before( function () { browser.deleteAllCookies(); @@ -115,7 +113,7 @@ describe( 'Rollback without confirmation', function () { } ); it.skip( 'should perform rollback via GET request without asking the user to confirm', function () { - var rollbackActionUrl = HistoryPage.rollbackLink.getAttribute( 'href' ); + const rollbackActionUrl = HistoryPage.rollbackLink.getAttribute( 'href' ); browser.url( rollbackActionUrl ); browser.waitUntil( function () { diff --git a/tests/selenium/specs/specialrecentchanges.js b/tests/selenium/specs/specialrecentchanges.js index 8720ee503f..ca235095c2 100644 --- a/tests/selenium/specs/specialrecentchanges.js +++ b/tests/selenium/specs/specialrecentchanges.js @@ -1,11 +1,10 @@ -const assert = require( 'assert' ), - Api = require( 'wdio-mediawiki/Api' ), - RecentChangesPage = require( '../pageobjects/recentchanges.page' ), - Util = require( 'wdio-mediawiki/Util' ); +const assert = require( 'assert' ); +const Api = require( 'wdio-mediawiki/Api' ); +const RecentChangesPage = require( '../pageobjects/recentchanges.page' ); +const Util = require( 'wdio-mediawiki/Util' ); describe( 'Special:RecentChanges', function () { - let content, - name; + let content, name; beforeEach( function () { browser.deleteAllCookies(); diff --git a/tests/selenium/specs/specialwatchlist.js b/tests/selenium/specs/specialwatchlist.js index bfad3b8542..57a0c96072 100644 --- a/tests/selenium/specs/specialwatchlist.js +++ b/tests/selenium/specs/specialwatchlist.js @@ -1,9 +1,9 @@ -const assert = require( 'assert' ), - Api = require( 'wdio-mediawiki/Api' ), - WatchlistPage = require( '../pageobjects/watchlist.page' ), - WatchablePage = require( '../pageobjects/watchable.page' ), - LoginPage = require( 'wdio-mediawiki/LoginPage' ), - Util = require( 'wdio-mediawiki/Util' ); +const assert = require( 'assert' ); +const Api = require( 'wdio-mediawiki/Api' ); +const WatchlistPage = require( '../pageobjects/watchlist.page' ); +const WatchablePage = require( '../pageobjects/watchable.page' ); +const LoginPage = require( 'wdio-mediawiki/LoginPage' ); +const Util = require( 'wdio-mediawiki/Util' ); describe( 'Special:Watchlist', function () { let username, password; diff --git a/tests/selenium/specs/user.js b/tests/selenium/specs/user.js index 2558881b51..e3eeb49f68 100644 --- a/tests/selenium/specs/user.js +++ b/tests/selenium/specs/user.js @@ -1,13 +1,12 @@ -const assert = require( 'assert' ), - CreateAccountPage = require( '../pageobjects/createaccount.page' ), - PreferencesPage = require( '../pageobjects/preferences.page' ), - UserLoginPage = require( 'wdio-mediawiki/LoginPage' ), - Api = require( 'wdio-mediawiki/Api' ), - Util = require( 'wdio-mediawiki/Util' ); +const assert = require( 'assert' ); +const CreateAccountPage = require( '../pageobjects/createaccount.page' ); +const PreferencesPage = require( '../pageobjects/preferences.page' ); +const UserLoginPage = require( 'wdio-mediawiki/LoginPage' ); +const Api = require( 'wdio-mediawiki/Api' ); +const Util = require( 'wdio-mediawiki/Util' ); describe( 'User', function () { - var password, - username; + let password, username; beforeEach( function () { browser.deleteAllCookies(); diff --git a/tests/selenium/wdio-mediawiki/RunJobs.js b/tests/selenium/wdio-mediawiki/RunJobs.js index f6a154251f..daa7fbd71b 100644 --- a/tests/selenium/wdio-mediawiki/RunJobs.js +++ b/tests/selenium/wdio-mediawiki/RunJobs.js @@ -1,6 +1,6 @@ -const MWBot = require( 'mwbot' ), - Page = require( './Page' ), - MAINPAGE_REQUESTS_MAX_RUNS = 10; // (arbitrary) safe-guard against endless execution +const MWBot = require( 'mwbot' ); +const Page = require( './Page' ); +const MAINPAGE_REQUESTS_MAX_RUNS = 10; // (arbitrary) safe-guard against endless execution function getJobCount() { const bot = new MWBot( { diff --git a/tests/selenium/wdio-mediawiki/specs/BlankPage.js b/tests/selenium/wdio-mediawiki/specs/BlankPage.js index 297747966c..9fbee56c2c 100644 --- a/tests/selenium/wdio-mediawiki/specs/BlankPage.js +++ b/tests/selenium/wdio-mediawiki/specs/BlankPage.js @@ -1,5 +1,5 @@ -const assert = require( 'assert' ), - BlankPage = require( './../BlankPage' ); +const assert = require( 'assert' ); +const BlankPage = require( './../BlankPage' ); describe( 'BlankPage', function () { it( 'should have its title @daily', function () { diff --git a/tests/selenium/wdio.conf.js b/tests/selenium/wdio.conf.js index 932a8aaeaa..fa65515717 100644 --- a/tests/selenium/wdio.conf.js +++ b/tests/selenium/wdio.conf.js @@ -1,7 +1,8 @@ -const fs = require( 'fs' ), - path = require( 'path' ), - startChromedriver = !process.argv.includes( '--skip-chromedriver' ), - logPath = process.env.LOG_DIR || path.join( __dirname, '/log' ); +/* eslint-disable no-console */ +const fs = require( 'fs' ); +const path = require( 'path' ); +const startChromedriver = !process.argv.includes( '--skip-chromedriver' ); +const logPath = process.env.LOG_DIR || path.join( __dirname, '/log' ); let ffmpeg; -- 2.20.1