Page MenuHomeWickedGov Phorge

ve.ui.MWReferenceSearchWidget.test.js
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

ve.ui.MWReferenceSearchWidget.test.js

'use strict';
{
QUnit.module( 've.ui.MWReferenceSearchWidget (Cite)', ve.test.utils.newMwEnvironment() );
/**
* @param {boolean} [hasNode=false]
* @return {ve.dm.MWDocumentReferences}
*/
const getDocumentReferencesMock = ( hasNode ) => {
const listKey = 'literal/foo';
const node = hasNode ? {
getAttribute: ( name ) => ( { listKey }[ name ] ),
getAttributes: () => ( {} ),
getInternalItem: () => ( {} ),
getDocument: () => new ve.dm.Document(),
setGroupIndex: () => {}
} : undefined;
const nodeGroup = new ve.dm.InternalListNodeGroup();
nodeGroup.appendNode( listKey, node );
return {
getAllGroupNames: () => [ 'mwReference/' ],
getIndexLabel: () => '1',
getItemNode: () => node,
getGroupRefs: () => ve.dm.MWGroupReferences.static.makeGroupRefs( nodeGroup ),
hasRefs: () => !!hasNode
};
};
QUnit.test( 'buildIndex', ( assert ) => {
const widget = new ve.ui.MWReferenceSearchWidget();
widget.setDocumentRefs( getDocumentReferencesMock() );
assert.strictEqual( widget.index, null );
widget.buildIndex();
assert.deepEqual( widget.index, [] );
} );
QUnit.test( 'buildSearchIndex when empty', ( assert ) => {
const widget = new ve.ui.MWReferenceSearchWidget();
widget.setDocumentRefs( getDocumentReferencesMock() );
const index = widget.buildSearchIndex();
assert.deepEqual( index, [] );
} );
QUnit.test( 'buildSearchIndex', ( assert ) => {
const widget = new ve.ui.MWReferenceSearchWidget();
widget.setDocumentRefs( getDocumentReferencesMock( true ) );
const index = widget.buildSearchIndex();
assert.deepEqual( index.length, 1 );
assert.deepEqual( index[ 0 ].footnoteLabel, '1' );
assert.deepEqual( index[ 0 ].name, 'foo' );
assert.deepEqual( index[ 0 ].searchableText, '1 foo' );
} );
QUnit.test( 'isIndexEmpty', ( assert ) => {
const widget = new ve.ui.MWReferenceSearchWidget();
widget.setDocumentRefs( getDocumentReferencesMock() );
assert.true( widget.isIndexEmpty() );
widget.setDocumentRefs( getDocumentReferencesMock( true ) );
assert.false( widget.isIndexEmpty() );
} );
QUnit.test( 'buildSearchResults', ( assert ) => {
const widget = new ve.ui.MWReferenceSearchWidget();
widget.index = [ { searchableText: 'a', reference: 'model-a' }, { searchableText: 'b' } ];
assert.strictEqual( widget.getResults().getItemCount(), 0 );
const results = widget.buildSearchResults( 'A' );
assert.strictEqual( results.length, 1 );
assert.strictEqual( results[ 0 ].getData(), 'model-a' );
} );
}

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 18, 20:33 (2 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
e0/3e/14199bb875cb83e14b2fecc14313
Default Alt Text
ve.ui.MWReferenceSearchWidget.test.js (2 KB)

Event Timeline