mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData
synced 2024-09-24 10:49:29 +00:00
Fix splice re-ordering when moving items forward
Bug: T127203 Change-Id: I91824a4dff3faf9fc401e4824e568df3e891ea3f
This commit is contained in:
parent
6ac0d165b1
commit
4bb9bb317a
|
@ -608,9 +608,9 @@ mw.TemplateData.Model.prototype.addKeyTemplateParamOrder = function ( key ) {
|
|||
*/
|
||||
mw.TemplateData.Model.prototype.reorderParamOrderKey = function ( key, newIndex ) {
|
||||
var keyIndex = this.paramOrder.indexOf( key );
|
||||
// Move the parameter
|
||||
// Move the parameter, account for left shift if moving forwards
|
||||
this.paramOrder.splice(
|
||||
newIndex,
|
||||
newIndex - ( newIndex > keyIndex ? 1 : 0 ),
|
||||
0,
|
||||
this.paramOrder.splice( keyIndex, 1 )[ 0 ]
|
||||
);
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
( function () {
|
||||
'use strict';
|
||||
|
||||
var i, testVars, finalJsonStringParams, finalJsonStringOnly, finalJsonStringOnlyParamOrder,
|
||||
var i, testVars, finalJsonStringParams, finalJsonStringOnly,
|
||||
resultDescCurrLang, resultDescMockLang, resultDescBothLang, currLanguage, originalWikitext;
|
||||
|
||||
QUnit.module( 'ext.templateData', QUnit.newMwEnvironment() );
|
||||
|
@ -137,34 +137,6 @@
|
|||
' ],\n' +
|
||||
' "format": "inline"\n' +
|
||||
'}';
|
||||
finalJsonStringOnlyParamOrder = '{\n' +
|
||||
' "description": {\n' +
|
||||
' "' + currLanguage + '": "Label unsigned comments in a conversation.",\n' +
|
||||
' "blah": "Template description in some blah language."\n' +
|
||||
' },\n' + finalJsonStringParams +
|
||||
' "sets": [\n' +
|
||||
' {\n' +
|
||||
' "label": "Date",\n' +
|
||||
' "params": [\n' +
|
||||
' "year",\n' +
|
||||
' "month",\n' +
|
||||
' "day"\n' +
|
||||
' ]\n' +
|
||||
' }\n' +
|
||||
' ],\n' +
|
||||
' "paramOrder": [\n' +
|
||||
' "date",\n' +
|
||||
' "year",\n' +
|
||||
' "user",\n' +
|
||||
' "month",\n' +
|
||||
' "comment",\n' +
|
||||
' "newParam1",\n' +
|
||||
' "newParam2",\n' +
|
||||
' "newParam3",\n' +
|
||||
' "newParam4"\n' +
|
||||
' ],\n' +
|
||||
' "format": "inline"\n' +
|
||||
'}';
|
||||
|
||||
// Test validation tools
|
||||
QUnit.test( 'Validation tools', function ( assert ) {
|
||||
|
@ -519,7 +491,7 @@
|
|||
// Change properties tests
|
||||
paramChangeTest.length +
|
||||
// Json output
|
||||
2
|
||||
3
|
||||
);
|
||||
|
||||
sourceHandler.buildModel( originalWikitext )
|
||||
|
@ -584,12 +556,19 @@
|
|||
'Final templatedata output'
|
||||
);
|
||||
|
||||
// Change order and verify result now has paramOrder
|
||||
model.reorderParamOrderKey( 'user', 2 );
|
||||
// Ouput a final templatedata string
|
||||
assert.equal(
|
||||
model.outputTemplateDataString(),
|
||||
finalJsonStringOnlyParamOrder,
|
||||
// Move 'user' to offset 3 (in original array), i.e. after 'year'
|
||||
model.reorderParamOrderKey( 'user', 3 );
|
||||
assert.deepEqual(
|
||||
model.paramOrder,
|
||||
[ 'date', 'year', 'user', 'month', 'comment', 'newParam1', 'newParam2', 'newParam3', 'newParam4' ],
|
||||
'Final templatedata output with paramOrder'
|
||||
);
|
||||
|
||||
// Move 'month' to offset 2, i.e. after 'year'
|
||||
model.reorderParamOrderKey( 'month', 2 );
|
||||
assert.deepEqual(
|
||||
model.paramOrder,
|
||||
[ 'date', 'year', 'month', 'user', 'comment', 'newParam1', 'newParam2', 'newParam3', 'newParam4' ],
|
||||
'Final templatedata output with paramOrder'
|
||||
);
|
||||
|
||||
|
|
Loading…
Reference in a new issue