@@ -1325,4 +1325,75 @@ describe('Chart', function() {
13251325 ) ;
13261326 } ) ;
13271327 } ) ;
1328+
1329+ describe ( 'metasets' , function ( ) {
1330+ beforeEach ( function ( ) {
1331+ this . chart = acquireChart ( {
1332+ type : 'line' ,
1333+ data : {
1334+ datasets : [
1335+ { label : '1' , order : 2 } ,
1336+ { label : '2' , order : 1 } ,
1337+ { label : '3' , order : 4 } ,
1338+ { label : '4' , order : 3 } ,
1339+ ]
1340+ }
1341+ } ) ;
1342+ } ) ;
1343+ afterEach ( function ( ) {
1344+ const metasets = this . chart . _metasets ;
1345+ expect ( metasets . length ) . toEqual ( this . chart . data . datasets . length ) ;
1346+ for ( let i = 0 ; i < metasets . length ; i ++ ) {
1347+ expect ( metasets [ i ] . index ) . toEqual ( i ) ;
1348+ expect ( metasets [ i ] . _dataset ) . toEqual ( this . chart . data . datasets [ i ] ) ;
1349+ }
1350+ } ) ;
1351+ it ( 'should build metasets array in order' , function ( ) {
1352+ const metasets = this . chart . _metasets ;
1353+ expect ( metasets [ 0 ] . order ) . toEqual ( 2 ) ;
1354+ expect ( metasets [ 1 ] . order ) . toEqual ( 1 ) ;
1355+ expect ( metasets [ 2 ] . order ) . toEqual ( 4 ) ;
1356+ expect ( metasets [ 3 ] . order ) . toEqual ( 3 ) ;
1357+ } ) ;
1358+ it ( 'should build sorted metasets array in correct order' , function ( ) {
1359+ const metasets = this . chart . _sortedMetasets ;
1360+ expect ( metasets [ 0 ] . order ) . toEqual ( 1 ) ;
1361+ expect ( metasets [ 1 ] . order ) . toEqual ( 2 ) ;
1362+ expect ( metasets [ 2 ] . order ) . toEqual ( 3 ) ;
1363+ expect ( metasets [ 3 ] . order ) . toEqual ( 4 ) ;
1364+ } ) ;
1365+ it ( 'should be moved when datasets are removed from begining' , function ( ) {
1366+ this . chart . data . datasets . splice ( 0 , 2 ) ;
1367+ this . chart . update ( ) ;
1368+ const metasets = this . chart . _metasets ;
1369+ expect ( metasets [ 0 ] . order ) . toEqual ( 4 ) ;
1370+ expect ( metasets [ 1 ] . order ) . toEqual ( 3 ) ;
1371+ } ) ;
1372+ it ( 'should be moved when datasets are removed from middle' , function ( ) {
1373+ this . chart . data . datasets . splice ( 1 , 2 ) ;
1374+ this . chart . update ( ) ;
1375+ const metasets = this . chart . _metasets ;
1376+ expect ( metasets [ 0 ] . order ) . toEqual ( 2 ) ;
1377+ expect ( metasets [ 1 ] . order ) . toEqual ( 3 ) ;
1378+ } ) ;
1379+ it ( 'should be moved when datasets are inserted' , function ( ) {
1380+ this . chart . data . datasets . splice ( 1 , 0 , { label : '1.5' , order : 5 } ) ;
1381+ this . chart . update ( ) ;
1382+ const metasets = this . chart . _metasets ;
1383+ expect ( metasets [ 0 ] . order ) . toEqual ( 2 ) ;
1384+ expect ( metasets [ 1 ] . order ) . toEqual ( 5 ) ;
1385+ expect ( metasets [ 2 ] . order ) . toEqual ( 1 ) ;
1386+ expect ( metasets [ 3 ] . order ) . toEqual ( 4 ) ;
1387+ expect ( metasets [ 4 ] . order ) . toEqual ( 3 ) ;
1388+ } ) ;
1389+ it ( 'should be replaced when dataset is replaced' , function ( ) {
1390+ this . chart . data . datasets . splice ( 1 , 1 , { label : '1.5' , order : 5 } ) ;
1391+ this . chart . update ( ) ;
1392+ const metasets = this . chart . _metasets ;
1393+ expect ( metasets [ 0 ] . order ) . toEqual ( 2 ) ;
1394+ expect ( metasets [ 1 ] . order ) . toEqual ( 5 ) ;
1395+ expect ( metasets [ 2 ] . order ) . toEqual ( 4 ) ;
1396+ expect ( metasets [ 3 ] . order ) . toEqual ( 3 ) ;
1397+ } ) ;
1398+ } ) ;
13281399} ) ;
0 commit comments