https://www.mediawiki.org/wiki/Selenium/How-to/Use_MediaWiki_API Bug: T364268 Change-Id: I0ce71a21eee8ebdfaef4fa7e1be85816b25a553f
52 lines
1.6 KiB
JavaScript
52 lines
1.6 KiB
JavaScript
// Example code for Selenium/How-to/Use MediaWiki API
|
|
// https://www.mediawiki.org/wiki/Selenium/How-to/Use_MediaWiki_API
|
|
|
|
'use strict';
|
|
|
|
const assert = require( 'assert' );
|
|
const MWBot = require( 'mwbot' );
|
|
|
|
// apiUrl is required for our continuous integration.
|
|
// If you don't have MW_SERVER and MW_SCRIPT_PATH environment variables set
|
|
// you can probably hardcode it to something like this:
|
|
// const apiUrl = 'http://localhost:8080/w/api.php';
|
|
const apiUrl = `${ process.env.MW_SERVER }${ process.env.MW_SCRIPT_PATH }/api.php`;
|
|
|
|
const bot = new MWBot( {
|
|
apiUrl: apiUrl
|
|
} );
|
|
|
|
// Since mwbot v2 the script either needs to log in immediately or hardcode MediaWiki version.
|
|
// Without the line below, this error message is displayed:
|
|
// Invalid version. Must be a string. Got type "object".
|
|
bot.mwversion = '0.0.0';
|
|
|
|
describe( 'API', () => {
|
|
|
|
it( 'Main Page should exist', async () => {
|
|
const response = await bot.read( 'Main Page' );
|
|
|
|
// console.log( response );
|
|
// { batchcomplete: '' (...) query: { pages: { '1': [Object] } } }
|
|
|
|
// console.log( response.query );
|
|
// { pages: { '1': { pageid: 1, ns: 0, title: 'Main Page', revisions: [Array] } } }
|
|
|
|
assert.strictEqual( response.query.pages[ '1' ].pageid, 1 );
|
|
|
|
} );
|
|
|
|
it( 'Missing Page should not exist', async () => {
|
|
const response = await bot.read( 'Missing Page' );
|
|
|
|
// console.log( response );
|
|
// { batchcomplete: '', query: { pages: { '-1': [Object] } } }
|
|
|
|
// console.log( response.query );
|
|
// { pages: { '-1': { ns: 0, title: 'Missing Page', missing: '' } } }
|
|
|
|
assert.strictEqual( response.query.pages[ '-1' ].missing, '' );
|
|
|
|
} );
|
|
|
|
} );
|