Page MenuHomeWickedGov Phorge

Links.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

Links.js

'use strict';
const { action, assert, utils } = require( 'api-testing' );
describe( 'Links', () => {
const titles = ( list ) => list.map( ( p ) => utils.dbkey( p.title ) );
const pageX = utils.title( 'LinkTest_X_' );
const pageY = utils.title( 'LinkTest_Y_' );
const imageY = `File:${ pageY }`;
const urlY = `http://example.com/${ pageY }`;
// TODO: language links, interwiki links...
let alice;
before( async () => {
alice = await action.alice();
const textX = `Mention a [[${ pageY }|Page]], ` +
`include an [[${ imageY }]] and also link to [[:${ imageY }]], ` +
`link to a URL[${ urlY }]`;
// Do all edits in parallel.
await Promise.all( [
alice.edit( pageX, { text: textX } ),
alice.edit( pageY, { text: 'Just some text' } )
] );
} );
describe( 'to pages', () => {
it( 'can be listed', async () => {
const result = await alice.prop( 'links', pageX );
const links = titles( result[ pageX ].links );
assert.sameMembers( links, [ pageY, imageY ] );
} );
it( 'can be filtered by namespace', async () => {
const result = await alice.prop( 'links', pageX, { plnamespace: 0 } );
const links = titles( result[ pageX ].links );
assert.sameMembers( links, [ pageY ] );
} );
} );
describe( 'from pages', () => {
it( 'can be listed', async () => {
const result = await alice.prop( 'linkshere', pageY );
const links = titles( result[ pageY ].linkshere );
assert.sameMembers( links, [ pageX ] );
} );
} );
describe( 'to external pages', () => {
it( 'can be listed', async () => {
const result = await alice.prop( 'extlinks', pageX );
const links = result[ pageX ].extlinks.map( ( p ) => p[ '*' ] );
assert.sameMembers( links, [ urlY ] );
} );
} );
describe( 'to media', () => {
it( 'can be listed', async () => {
const result = await alice.prop( 'images', pageX );
const links = titles( result[ pageX ].images );
assert.sameMembers( links, [ imageY ] );
} );
} );
} );

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 18, 13:47 (4 w, 13 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
49/9a/cbdadcac5746a90d831955859636
Default Alt Text
Links.js (1 KB)

Event Timeline