@@ -502,6 +502,65 @@ describe('Miscellaneous', () => {
502502 expect ( store . addTablesListener ( ( ) => 0 ) ) . toEqual ( '666' ) ;
503503 } ) ;
504504
505+ describe ( 're-uses rowIds' , ( ) => {
506+ test ( 'adding' , ( ) => {
507+ store . addRow ( 't1' , { c0 : 0 } ) ;
508+ store . addRow ( 't1' , { c1 : 1 } ) ;
509+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } , 1 : { c1 : 1 } } } ) ;
510+ } ) ;
511+
512+ test ( 'delete and add again' , ( ) => {
513+ store . addRow ( 't1' , { c0 : 0 } ) ;
514+ store . addRow ( 't1' , { c1 : 1 } ) ;
515+ store . delRow ( 't1' , '1' ) ;
516+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } } } ) ;
517+ store . addRow ( 't1' , { c1 : 1 } ) ;
518+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } , 1 : { c1 : 1 } } } ) ;
519+ } ) ;
520+
521+ test ( 'delete all and add again' , ( ) => {
522+ store . addRow ( 't1' , { c0 : 0 } ) ;
523+ store . addRow ( 't1' , { c1 : 1 } ) ;
524+ store . delTables ( ) ;
525+ store . addRow ( 't1' , { c0 : 0 } ) ;
526+ store . addRow ( 't1' , { c1 : 1 } ) ;
527+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } , 1 : { c1 : 1 } } } ) ;
528+ } ) ;
529+
530+ test ( 'delete one, then manually insert, then add again' , ( ) => {
531+ store . addRow ( 't1' , { c0 : 0 } ) ;
532+ store . addRow ( 't1' , { c1 : 1 } ) ;
533+ store . delTables ( ) ;
534+ store . setRow ( 't1' , '0' , { c0 : 0 } ) ;
535+ store . setRow ( 't1' , '1' , { c1 : 1 } ) ;
536+ store . addRow ( 't1' , { c2 : 2 } ) ;
537+ store . addRow ( 't1' , { c3 : 3 } ) ;
538+ expect ( store . getTables ( ) ) . toEqual ( {
539+ t1 : { 0 : { c0 : 0 } , 1 : { c1 : 1 } , 2 : { c2 : 2 } , 3 : { c3 : 3 } } ,
540+ } ) ;
541+ } ) ;
542+ } ) ;
543+
544+ describe ( 'does not re-use rowIds' , ( ) => {
545+ test ( 'delete and add again' , ( ) => {
546+ store . addRow ( 't1' , { c0 : 0 } ) ;
547+ store . addRow ( 't1' , { c1 : 1 } ) ;
548+ store . delRow ( 't1' , '1' ) ;
549+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } } } ) ;
550+ store . addRow ( 't1' , { c1 : 1 } , false ) ;
551+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } , 2 : { c1 : 1 } } } ) ;
552+ } ) ;
553+
554+ test ( 'delete all and add again' , ( ) => {
555+ store . addRow ( 't1' , { c0 : 0 } ) ;
556+ store . addRow ( 't1' , { c1 : 1 } ) ;
557+ store . delTables ( ) ;
558+ store . addRow ( 't1' , { c0 : 0 } , false ) ;
559+ store . addRow ( 't1' , { c1 : 1 } , false ) ;
560+ expect ( store . getTables ( ) ) . toEqual ( { t1 : { 0 : { c0 : 0 } , 1 : { c1 : 1 } } } ) ;
561+ } ) ;
562+ } ) ;
563+
505564 test ( 'removed non-existent listener' , ( ) => {
506565 expect ( listener . listenToRow ( '/t1/r1a' , 't1' , 'r1' ) ) . toEqual ( '0' ) ;
507566 store . delListener ( '1' ) ;
0 commit comments