mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-16 19:09:29 +00:00
1f19d85ea8
Contains: * Full test coverage (I believe) for the filter functionality in …OutlineTemplateWidget. Also some TODOs for missing tests I believe are critical. Bug: T289560 Change-Id: I2ac5add8e189d501d3558bbd4854cb92155bcb96
46 lines
1.9 KiB
JavaScript
46 lines
1.9 KiB
JavaScript
QUnit.module( 've.ui.MWTransclusionOutlineContainerWidget' );
|
|
|
|
QUnit.test( 'Constructor', ( assert ) => {
|
|
const widget = new ve.ui.MWTransclusionOutlineContainerWidget();
|
|
|
|
// eslint-disable-next-line no-jquery/no-class-state
|
|
assert.ok( widget.$element.hasClass( 've-ui-mwTransclusionOutlineContainerWidget' ) );
|
|
assert.deepEqual( widget.partWidgets, {} );
|
|
} );
|
|
|
|
QUnit.test( 'Supports all ve.dm.MWTransclusionPartModel subclasses', ( assert ) => {
|
|
const transclusion = new ve.dm.MWTransclusionModel(),
|
|
widget = new ve.ui.MWTransclusionOutlineContainerWidget();
|
|
|
|
widget.onReplacePart( null, new ve.dm.MWTemplateModel( transclusion, {} ) );
|
|
widget.onReplacePart( null, new ve.dm.MWTemplatePlaceholderModel( transclusion ) );
|
|
widget.onReplacePart( null, new ve.dm.MWTransclusionContentModel( transclusion ) );
|
|
|
|
assert.ok( widget.partWidgets.part_0 instanceof ve.ui.MWTransclusionOutlineTemplateWidget );
|
|
assert.ok( widget.partWidgets.part_1 instanceof ve.ui.MWTransclusionOutlinePlaceholderWidget );
|
|
assert.ok( widget.partWidgets.part_2 instanceof ve.ui.MWTransclusionOutlineWikitextWidget );
|
|
} );
|
|
|
|
QUnit.test( 'Basic functionality', ( assert ) => {
|
|
const transclusion = new ve.dm.MWTransclusionModel(),
|
|
part0 = new ve.dm.MWTransclusionContentModel( transclusion ),
|
|
part1 = new ve.dm.MWTransclusionContentModel( transclusion ),
|
|
widget = new ve.ui.MWTransclusionOutlineContainerWidget();
|
|
|
|
widget.onReplacePart();
|
|
assert.deepEqual( widget.partWidgets, {} );
|
|
|
|
widget.onReplacePart( null, part0 );
|
|
widget.onReplacePart( null, part1 );
|
|
assert.deepEqual( Object.keys( widget.partWidgets ), [ 'part_0', 'part_1' ] );
|
|
|
|
widget.onReplacePart( part0 );
|
|
assert.deepEqual( Object.keys( widget.partWidgets ), [ 'part_1' ] );
|
|
|
|
widget.clear();
|
|
assert.deepEqual( widget.partWidgets, {} );
|
|
} );
|
|
|
|
// TODO: addPartWidget() with different positions.
|
|
// TODO: onTransclusionModelChange() is complex and fragile and must be tested.
|