gplx/mediawiki/tests/api-testing/action/Autopatrolling.js

48 lines
1.6 KiB
JavaScript

'use strict';
const { assert, action, utils } = require( 'api-testing' );
describe( 'Testing default autopatrolling rights', () => {
const anonymousUser = action.getAnon();
let title, mindy;
before( async () => {
title = await utils.title( 'Autopatrol_' );
mindy = await action.mindy();
} );
it( 'should edit page as a user in autopatrol group', async () => {
await mindy.edit( title, { text: 'Is this page autopatrolled?' } );
} );
it( 'should edit page as an anonymous user', async () => {
await anonymousUser.edit( title, { text: 'Anonymous: Is this page autopatrolled?' } );
} );
it( 'should confirm autopatrolling rights', async () => {
const anonUserInfo = await anonymousUser.meta( 'userinfo', {} );
const result = await mindy.list( 'recentchanges', { rctitle: title, rcprop: 'patrolled|user' } );
assert.lengthOf( result, 2 );
// Test different properties if Temporary Accounts is enabled or not
const siteInfoQuery = await anonymousUser.action(
'query',
// fetch flag $wgAutoCreateTempUser['enabled'], and format to
// true/false for convenience
{ meta: 'siteinfo', siprop: 'autocreatetempuser', formatversion: 2 }
);
if ( siteInfoQuery.query.autocreatetempuser.enabled ) {
assert.sameDeepMembers( result, [
{ temp: '', type: 'edit', unpatrolled: '', user: anonUserInfo.name },
{ type: 'new', patrolled: '', autopatrolled: '', user: mindy.username }
] );
} else {
assert.sameDeepMembers( result, [
{ anon: '', type: 'edit', unpatrolled: '', user: anonUserInfo.name },
{ type: 'new', patrolled: '', autopatrolled: '', user: mindy.username }
] );
}
} );
} );