* valid-jsdoc replaced with jsdoc plugin * New /selenium config Change-Id: I471eebac0312cb25c539c3f6a3ecfc7cfd4ed8d6
79 lines
1.7 KiB
JavaScript
79 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const { action, assert, utils } = require( 'api-testing' );
|
|
|
|
describe( 'The patrol action', function testEditPatrolling() {
|
|
let alice, mindy, edit, rc;
|
|
const pageTitle = utils.title( 'Patroll_' );
|
|
|
|
before( async () => {
|
|
[ alice, mindy ] = await Promise.all( [
|
|
action.alice(),
|
|
action.mindy()
|
|
] );
|
|
} );
|
|
|
|
it( 'doesn\'t allow a users to patrol their own edit', async () => {
|
|
edit = await alice.edit( pageTitle, { text: 'One', summary: 'first' } );
|
|
|
|
const error = await alice.actionError(
|
|
'patrol',
|
|
{
|
|
title: pageTitle,
|
|
revid: edit.newrevid,
|
|
token: await alice.token( 'patrol' )
|
|
},
|
|
'POST'
|
|
);
|
|
assert.equal( error.code, 'permissiondenied' );
|
|
|
|
rc = await mindy.getChangeEntry(
|
|
{
|
|
rctitle: pageTitle,
|
|
rcprop: 'ids|flags|patrolled'
|
|
}
|
|
);
|
|
|
|
assert.equal( rc.type, 'new' );
|
|
assert.notExists( rc.autopatrolled );
|
|
assert.notExists( rc.patrolled );
|
|
assert.exists( rc.unpatrolled );
|
|
} );
|
|
|
|
it( 'allows sysops to patrol an edit', async () => {
|
|
const result = await mindy.action(
|
|
'patrol',
|
|
{
|
|
title: pageTitle,
|
|
revid: edit.newrevid,
|
|
token: await mindy.token( 'patrol' )
|
|
},
|
|
'POST'
|
|
);
|
|
assert.equal( result.patrol.rcid, rc.rcid );
|
|
|
|
rc = ( await mindy.getChangeEntry(
|
|
{
|
|
rctitle: pageTitle,
|
|
rcprop: 'ids|flags|patrolled'
|
|
}
|
|
) );
|
|
|
|
assert.equal( rc.type, 'new' );
|
|
assert.exists( rc.patrolled );
|
|
assert.notExists( rc.unpatrolled );
|
|
} );
|
|
|
|
it( 'doesn\'t allow regular users to see the patrol flags', async () => {
|
|
const error = await alice.actionError(
|
|
'query',
|
|
{
|
|
list: 'recentchanges',
|
|
rctitle: pageTitle,
|
|
rcprop: 'ids|flags|patrolled'
|
|
}
|
|
);
|
|
|
|
assert.equal( error.code, 'permissiondenied' );
|
|
} );
|
|
} );
|