Test MWDocumentReferences on subref doc

Change-Id: I8fb9bee9f0f1447b38d6d67033c42c05934d1e12
This commit is contained in:
Adam Wight 2024-07-29 11:33:34 +02:00
parent 96bba4a1e3
commit c54000ed86
2 changed files with 73 additions and 2 deletions

View file

@ -9,8 +9,6 @@ QUnit.test( 'first simple test', ( assert ) => {
const mainNodes = docRefs.getGroupRefsByParents( 'mwReference/' ); const mainNodes = docRefs.getGroupRefsByParents( 'mwReference/' );
const fooNodes = docRefs.getGroupRefsByParents( 'mwReference/foo' ); const fooNodes = docRefs.getGroupRefsByParents( 'mwReference/foo' );
assert.strictEqual( Object.keys( docRefs.getGroupRefsByParents() ).length, 0 );
assert.strictEqual( mainNodes[ '' ].length, 4 ); assert.strictEqual( mainNodes[ '' ].length, 4 );
assert.strictEqual( fooNodes[ '' ].length, 1 ); assert.strictEqual( fooNodes[ '' ].length, 1 );
@ -22,3 +20,25 @@ QUnit.test( 'first simple test', ( assert ) => {
assert.strictEqual( docRefs.getIndexNumber( '', firstListKey ), '1' ); assert.strictEqual( docRefs.getIndexNumber( '', firstListKey ), '1' );
assert.strictEqual( docRefs.getIndexNumber( 'foo', fooGroupListKey ), '1' ); assert.strictEqual( docRefs.getIndexNumber( 'foo', fooGroupListKey ), '1' );
} ); } );
QUnit.test( 'extends test', ( assert ) => {
const doc = ve.dm.citeExample.createExampleDocument( 'extends' );
const docRefs = ve.dm.MWDocumentReferences.static.refsForDoc( doc );
const groupedRefs = docRefs.getGroupRefsByParents( 'mwReference/' );
assert.strictEqual( Object.keys( groupedRefs ).length, 2 );
assert.strictEqual( groupedRefs[ '' ].length, 2 );
assert.strictEqual( groupedRefs[ 'literal/ldr' ].length, 1 );
const firstListKey = groupedRefs[ '' ][ 0 ].getAttribute( 'listKey' );
assert.strictEqual( firstListKey, 'auto/1' );
// FIXME: Documents incorrect behavior, should be '2'.
assert.strictEqual( docRefs.getIndexNumber( '', firstListKey ), '1' );
const subrefListKey = groupedRefs[ 'literal/ldr' ][ 0 ].getAttribute( 'listKey' );
assert.strictEqual( subrefListKey, 'auto/0' );
// FIXME: Documents incorrect behavior, should be '1.1'.
assert.strictEqual( docRefs.getIndexNumber( '', subrefListKey ), '2.1' );
} );

View file

@ -994,3 +994,54 @@ ve.dm.citeExample.complexInternalData.internalItems = [
]; ];
ve.dm.citeExample.complexInternalData.internalListNextUniqueNumber = 1; ve.dm.citeExample.complexInternalData.internalListNextUniqueNumber = 1;
ve.dm.citeExample.extends = [
{ type: 'paragraph' },
{ type: 'mwReference', attributes: {
extendsRef: 'literal/ldr',
listIndex: 0,
listGroup: 'mwReference/',
listKey: 'auto/0',
refGroup: ''
} },
{ type: '/mwReference' },
{ type: 'mwReference', attributes: {
listIndex: 1,
listGroup: 'mwReference/',
listKey: 'auto/1',
refGroup: ''
} },
{ type: '/mwReference' },
{ type: '/paragraph' },
{ type: 'mwReferencesList', attributes: {
listGroup: 'mwReference/',
refGroup: ''
} },
{ type: 'paragraph' },
{ type: 'mwReference', attributes: {
listIndex: 2,
listGroup: 'mwReference/',
listKey: 'literal/ldr',
refGroup: ''
} },
{ type: '/mwReference' },
{ type: '/paragraph' },
{ type: '/mwReferencesList' },
{ type: 'internalList' },
{ type: 'internalItem' },
{ type: 'paragraph' },
'S', 'u', 'b', 'r', 'e', 'f',
{ type: '/paragraph' },
{ type: '/internalItem' },
{ type: 'internalItem' },
{ type: 'paragraph' },
'O', 't', 'h', 'e', 'r',
{ type: '/paragraph' },
{ type: '/internalItem' },
{ type: 'internalItem' },
{ type: 'paragraph' },
'L', 'i', 's', 't', '-', 'd', 'e', 'f', 'i', 'n', 'e', 'd',
{ type: '/paragraph' },
{ type: '/internalItem' },
{ type: '/internalList' }
];