T366837 added the ability to group REST endpoints into modules. This change now introduces the first use of a REST module. The existing endpoints remain accessible at their original paths, and mocha tests are run against both old and new paths. Bug: T370430 Change-Id: I83a5cdbdd359e4d3e5f70dd3930783616b556738
52 lines
2 KiB
JavaScript
52 lines
2 KiB
JavaScript
'use strict';
|
|
|
|
const { action, assert, REST, utils } = require( 'api-testing' );
|
|
|
|
describe( 'Revision Compare', () => {
|
|
const client = new REST();
|
|
let mindy;
|
|
|
|
before( async () => {
|
|
mindy = await action.mindy();
|
|
} );
|
|
|
|
describe( 'GET /revision/{from}/compare/{to}', () => {
|
|
const pageOne = utils.title( 'RevisionCompare_1' );
|
|
const pageTwo = utils.title( 'RevisionCompare_2' );
|
|
const nonExistentRevId = 99999;
|
|
const validRevId = 1;
|
|
const invalidRevId = '#';
|
|
|
|
it( 'should return 400 if revision id is not an integer', async () => {
|
|
const { status } = await client.get( `/revision/${ validRevId }/compare/${ invalidRevId }` );
|
|
assert.equal( status, 400 );
|
|
} );
|
|
|
|
it( 'should successfully get diff between 2 valid revisions', async () => {
|
|
// XXX: this test requires php-wikidiff2 1.10 or later to be installed
|
|
const { newrevid: revId1 } = await mindy.edit( pageOne, { text: 'Mindy Edit 1' } );
|
|
const { newrevid: revId2 } = await mindy.edit( pageOne, { text: 'Mindy Edit 2' } );
|
|
const response = await client.get( `/revision/${ revId1 }/compare/${ revId2 }` );
|
|
const { status, body, text, headers } = response;
|
|
assert.strictEqual( status, 200, text );
|
|
assert.match( headers[ 'content-type' ], /^application\/json/ );
|
|
assert.nestedPropertyVal( body, 'from.id', revId1 );
|
|
assert.nestedPropertyVal( body, 'to.id', revId2 );
|
|
assert.nestedProperty( body, 'diff' );
|
|
assert.isArray( body.diff );
|
|
} );
|
|
|
|
it( 'should return 404 for revision that does not exist', async () => {
|
|
const { status } = await client.get( `/revision/${ validRevId }/compare/${ nonExistentRevId }` );
|
|
assert.strictEqual( status, 404 );
|
|
} );
|
|
|
|
it( 'should return 400 if revision ids belong to different pages', async () => {
|
|
const { newrevid: pageOneRev } = await mindy.edit( pageOne, { text: 'Page 1 edit' } );
|
|
const { newrevid: pageTwoRev } = await mindy.edit( pageTwo, { text: 'Page 2 edit' } );
|
|
const { status } = await client.get( `/revision/${ pageOneRev }/compare/${ pageTwoRev }` );
|
|
assert.strictEqual( status, 400 );
|
|
} );
|
|
} );
|
|
|
|
} );
|