wiki.techinc.nl/tests/api-testing/action/UserBlock.js
Clara Andrew-Wani f07d7ba699 Move tests from api-testing repo into Core
Except for Search & Watchlist, which need fixes in gated extensions first.

Change-Id: I88d24dda4bc047868de3ff9dd4a5753b9c7b0f64
2020-02-05 16:07:54 -08:00

58 lines
1.5 KiB
JavaScript

const { action, assert, utils } = require( 'api-testing' );
describe( 'The block/unblock action', function testBlockingAUser() {
const pageTitle = utils.title( 'Block_' );
let eve = action.getAnon();
let mindy;
before( async () => {
[ eve, mindy ] = await Promise.all( [
eve.account( 'Eve_' ),
action.mindy()
] );
} );
it( 'allows an admin to block a user', async () => {
await eve.edit( pageTitle, { text: 'One', summary: 'first' } );
const result = await mindy.action( 'block', {
user: eve.username,
reason: 'testing',
token: await mindy.token()
}, 'POST' );
assert.exists( result.block.id );
assert.equal( result.block.userID, eve.userid );
assert.equal( result.block.user, eve.username );
} );
it( 'prevents a blocked user from editing', async () => {
const error = await eve.actionError(
'edit',
{
title: pageTitle,
text: 'Two',
summary: 'second',
token: await eve.token( 'csrf' )
},
'POST'
);
assert.equal( error.code, 'blocked' );
} );
it( 'allows an admin to unblock a user', async () => {
const result = await mindy.action( 'unblock', {
user: eve.username,
reason: 'testing',
token: await mindy.token()
}, 'POST' );
assert.exists( result.unblock.id );
assert.equal( result.unblock.userid, eve.userid );
assert.equal( result.unblock.user, eve.username );
} );
it( 'allows a user to edit after being unblocked', async () => {
await eve.edit( pageTitle, { text: 'Three', summary: 'third' } );
} );
} );