mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/Echo
synced 2024-09-24 10:49:37 +00:00
Merge "Selenium: Update to WebdriverIO v5"
This commit is contained in:
commit
e41e1e1b02
4801
package-lock.json
generated
4801
package-lock.json
generated
File diff suppressed because it is too large
Load diff
11
package.json
11
package.json
|
@ -10,6 +10,11 @@
|
|||
"selenium-daily": "npm run selenium-test -- --mochaOpts.grep @daily"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@wdio/cli": "5.22.4",
|
||||
"@wdio/local-runner": "5.22.4",
|
||||
"@wdio/mocha-framework": "5.18.7",
|
||||
"@wdio/spec-reporter": "5.22.4",
|
||||
"@wdio/sync": "5.20.1",
|
||||
"eslint-config-wikimedia": "0.16.1",
|
||||
"grunt": "1.1.0",
|
||||
"grunt-banana-checker": "0.9.0",
|
||||
|
@ -18,9 +23,7 @@
|
|||
"grunt-stylelint": "0.15.0",
|
||||
"grunt-svgmin": "5.0.0",
|
||||
"stylelint-config-wikimedia": "0.10.1",
|
||||
"wdio-mediawiki": "0.4.0",
|
||||
"wdio-mocha-framework": "0.6.4",
|
||||
"wdio-spec-reporter": "0.1.4",
|
||||
"webdriverio": "4.12.0"
|
||||
"wdio-mediawiki": "1.0.0",
|
||||
"webdriverio": "5.22.4"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,11 @@ const Page = require( 'wdio-mediawiki/Page' );
|
|||
|
||||
class EchoPage extends Page {
|
||||
|
||||
get alerts() { return browser.element( '#pt-notifications-alert' ); }
|
||||
get notices() { return browser.element( '#pt-notifications-notice' ); }
|
||||
get flyout() { return browser.element( '.oo-ui-popupWidget-popup' ); }
|
||||
get alertMessage() { return browser.element( '.mw-echo-ui-notificationItemWidget-content-message-header' ); }
|
||||
get alerts() { return $( '#pt-notifications-alert' ); }
|
||||
get notices() { return $( '#pt-notifications-notice' ); }
|
||||
get alertsFlyout() { return $( '.oo-ui-labelElement-label*=Alerts' ); }
|
||||
get noticesFlyout() { return $( '.oo-ui-labelElement-label*=Notices' ); }
|
||||
get alertMessage() { return $( '.mw-echo-ui-notificationItemWidget-content-message-header' ); }
|
||||
|
||||
}
|
||||
module.exports = new EchoPage();
|
||||
|
|
|
@ -4,7 +4,7 @@ const Page = require( 'wdio-mediawiki/Page' );
|
|||
|
||||
class NotificationsPage extends Page {
|
||||
|
||||
get notificationHeading() { return browser.element( '#firstHeading' ); }
|
||||
get notificationHeading() { return $( '#firstHeading' ); }
|
||||
open() {
|
||||
super.openTitle( 'Special:Notifications', { uselang: 'en' } );
|
||||
}
|
||||
|
|
|
@ -7,10 +7,15 @@ const assert = require( 'assert' ),
|
|||
Api = require( 'wdio-mediawiki/Api' );
|
||||
|
||||
describe( 'Echo', function () {
|
||||
let bot;
|
||||
|
||||
before( async () => {
|
||||
bot = await Api.bot();
|
||||
} );
|
||||
|
||||
it( 'alerts and notices are visible after logging in @daily', function () {
|
||||
|
||||
UserLoginPage.login( browser.options.username, browser.options.password );
|
||||
UserLoginPage.login( browser.config.mwUser, browser.config.mwPwd );
|
||||
|
||||
assert( EchoPage.alerts.isExisting() );
|
||||
assert( EchoPage.notices.isExisting() );
|
||||
|
@ -19,21 +24,21 @@ describe( 'Echo', function () {
|
|||
|
||||
it( 'flyout for alert appears when clicked @daily', function () {
|
||||
|
||||
UserLoginPage.login( browser.options.username, browser.options.password );
|
||||
UserLoginPage.login( browser.config.mwUser, browser.config.mwPwd );
|
||||
EchoPage.alerts.click();
|
||||
EchoPage.flyout.waitForVisible();
|
||||
EchoPage.alertsFlyout.waitForDisplayed();
|
||||
|
||||
assert( EchoPage.flyout.isExisting() );
|
||||
assert( EchoPage.alertsFlyout.isExisting() );
|
||||
|
||||
} );
|
||||
|
||||
it( 'flyout for notices appears when clicked @daily', function () {
|
||||
|
||||
UserLoginPage.login( browser.options.username, browser.options.password );
|
||||
UserLoginPage.login( browser.config.mwUser, browser.config.mwPwd );
|
||||
EchoPage.notices.click();
|
||||
EchoPage.flyout.waitForVisible();
|
||||
EchoPage.noticesFlyout.waitForDisplayed();
|
||||
|
||||
assert( EchoPage.flyout.isExisting() );
|
||||
assert( EchoPage.noticesFlyout.isExisting() );
|
||||
|
||||
} );
|
||||
|
||||
|
@ -41,14 +46,14 @@ describe( 'Echo', function () {
|
|||
|
||||
const username = Util.getTestString( 'NewUser-' );
|
||||
const password = Util.getTestString();
|
||||
browser.call( function () {
|
||||
return Api.createAccount( username, password );
|
||||
browser.call( async () => {
|
||||
await Api.createAccount( bot, username, password );
|
||||
} );
|
||||
UserLoginPage.login( username, password );
|
||||
|
||||
EchoPage.notices.click();
|
||||
|
||||
EchoPage.alertMessage.waitForVisible();
|
||||
EchoPage.alertMessage.waitForDisplayed();
|
||||
const regexp = /Welcome to .*, .*! We're glad you're here./;
|
||||
assert( regexp.test( EchoPage.alertMessage.getText() ) );
|
||||
|
||||
|
|
|
@ -7,21 +7,24 @@ const assert = require( 'assert' ),
|
|||
Api = require( 'wdio-mediawiki/Api' );
|
||||
|
||||
describe( 'Mention test for Echo', function () {
|
||||
let bot;
|
||||
|
||||
before( async () => {
|
||||
bot = await Api.bot();
|
||||
} );
|
||||
it.skip( 'checks if admin gets alert when mentioned', function () {
|
||||
|
||||
const username = Util.getTestString( 'NewUser-' );
|
||||
const password = Util.getTestString();
|
||||
browser.call( function () {
|
||||
return Api.createAccount( username, password
|
||||
).then( function () {
|
||||
return Api.edit( `User:${username}`, `Hello [[User:${browser.options.username}]] ~~~~`, username, password );
|
||||
} );
|
||||
browser.call( async () => {
|
||||
await Api.createAccount( bot, username, password );
|
||||
await bot.edit( `User:${username}`, `Hello [[User:${browser.config.mwUser}]] ~~~~`, username, password );
|
||||
} );
|
||||
UserLoginPage.login( browser.options.username, browser.options.password );
|
||||
UserLoginPage.login( browser.config.mwUser, browser.config.mwPwd );
|
||||
|
||||
EchoPage.alerts.click();
|
||||
|
||||
EchoPage.alertMessage.waitForVisible();
|
||||
EchoPage.alertMessage.waitForDisplayed();
|
||||
const regexp = /.* mentioned you on User:.*./;
|
||||
assert( regexp.test( EchoPage.alertMessage.getText() ) );
|
||||
} );
|
||||
|
|
|
@ -8,7 +8,7 @@ describe( 'Notifications', function () {
|
|||
|
||||
it( 'checks for Notifications Page @daily', function () {
|
||||
|
||||
UserLoginPage.login( browser.options.username, browser.options.password );
|
||||
UserLoginPage.login( browser.config.mwUser, browser.config.mwPwd );
|
||||
NotificationsPage.open();
|
||||
|
||||
assert.strictEqual( NotificationsPage.notificationHeading.getText(), 'Notifications' );
|
||||
|
|
|
@ -14,8 +14,8 @@ exports.config = {
|
|||
// Defaults are for convenience with MediaWiki-Vagrant
|
||||
|
||||
// Wiki admin
|
||||
username: process.env.MEDIAWIKI_USER || 'Admin',
|
||||
password: process.env.MEDIAWIKI_PASSWORD || 'vagrant',
|
||||
mwUser: process.env.MEDIAWIKI_USER || 'Admin',
|
||||
mwPwd: process.env.MEDIAWIKI_PASSWORD || 'vagrant',
|
||||
|
||||
// Base for browser.url() and Page#openTitle()
|
||||
baseUrl: ( process.env.MW_SERVER || 'http://127.0.0.1:8080' ) + (
|
||||
|
@ -36,7 +36,7 @@ exports.config = {
|
|||
// https://sites.google.com/a/chromium.org/chromedriver/capabilities
|
||||
browserName: 'chrome',
|
||||
maxInstances: 1,
|
||||
chromeOptions: {
|
||||
'goog:chromeOptions': {
|
||||
// If DISPLAY is set, assume developer asked non-headless or CI with Xvfb.
|
||||
// Otherwise, use --headless (added in Chrome 59)
|
||||
// https://chromium.googlesource.com/chromium/src/+/59.0.3030.0/headless/README.md
|
||||
|
|
Loading…
Reference in a new issue