Skip to content

Commit ace6acc

Browse files
committed
[tests] Test Id reuse
1 parent 8328829 commit ace6acc

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

test/unit/store-advanced.test.ts

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)