Skip to content

Commit 8e420d7

Browse files
committed
[tests] useHas*Listener hook tests
1 parent 6748ff5 commit 8e420d7

File tree

1 file changed

+240
-0
lines changed

1 file changed

+240
-0
lines changed

test/unit/ui-react/hooks.test.tsx

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,19 @@ import {
5050
useGoForwardCallback,
5151
useGoToCallback,
5252
useHasCell,
53+
useHasCellListener,
5354
useHasRow,
55+
useHasRowListener,
5456
useHasTable,
5557
useHasTableCell,
58+
useHasTableCellListener,
59+
useHasTableListener,
5660
useHasTables,
61+
useHasTablesListener,
5762
useHasValue,
63+
useHasValueListener,
5864
useHasValues,
65+
useHasValuesListener,
5966
useIndexIds,
6067
useIndexes,
6168
useIndexesIds,
@@ -3046,6 +3053,38 @@ describe('Write Hooks', () => {
30463053
});
30473054

30483055
describe('Listener Hooks', () => {
3056+
test('useHasTablesListener', () => {
3057+
expect.assertions(4);
3058+
const Test = ({value}: {readonly value: number}) => {
3059+
useHasTablesListener(
3060+
(store) => expect(store?.getCell('t1', 'r1', 'c1')).toEqual(value),
3061+
[value],
3062+
false,
3063+
store,
3064+
);
3065+
return <div />;
3066+
};
3067+
expect(store.getListenerStats().hasTables).toEqual(0);
3068+
act(() => {
3069+
renderer = create(<Test value={2} />);
3070+
});
3071+
expect(store.getListenerStats().hasTables).toEqual(1);
3072+
act(() => {
3073+
store.setCell('t1', 'r1', 'c1', 2);
3074+
});
3075+
act(() => {
3076+
renderer.update(<Test value={3} />);
3077+
});
3078+
expect(store.getListenerStats().hasTables).toEqual(1);
3079+
act(() => {
3080+
store.setCell('t1', 'r1', 'c1', 3);
3081+
});
3082+
act(() => {
3083+
renderer.update(<div />);
3084+
});
3085+
expect(store.getListenerStats().hasTables).toEqual(0);
3086+
});
3087+
30493088
test('useTablesListener', () => {
30503089
expect.assertions(6);
30513090
const Test = ({value}: {readonly value: number}) => {
@@ -3112,6 +3151,39 @@ describe('Listener Hooks', () => {
31123151
expect(store.getListenerStats().tableIds).toEqual(0);
31133152
});
31143153

3154+
test('useHasTableListener', () => {
3155+
expect.assertions(4);
3156+
const Test = ({value}: {readonly value: number}) => {
3157+
useHasTableListener(
3158+
't1',
3159+
(store) => expect(store?.getCell('t1', 'r1', 'c1')).toEqual(value),
3160+
[value],
3161+
false,
3162+
store,
3163+
);
3164+
return <div />;
3165+
};
3166+
expect(store.getListenerStats().hasTable).toEqual(0);
3167+
act(() => {
3168+
renderer = create(<Test value={2} />);
3169+
});
3170+
expect(store.getListenerStats().hasTable).toEqual(1);
3171+
act(() => {
3172+
store.setCell('t1', 'r1', 'c1', 2);
3173+
});
3174+
act(() => {
3175+
renderer.update(<Test value={3} />);
3176+
});
3177+
expect(store.getListenerStats().hasTable).toEqual(1);
3178+
act(() => {
3179+
store.setCell('t1', 'r1', 'c1', 3);
3180+
});
3181+
act(() => {
3182+
renderer.update(<div />);
3183+
});
3184+
expect(store.getListenerStats().hasTable).toEqual(0);
3185+
});
3186+
31153187
test('useTableListener', () => {
31163188
expect.assertions(6);
31173189
const Test = ({value}: {readonly value: number}) => {
@@ -3180,6 +3252,40 @@ describe('Listener Hooks', () => {
31803252
expect(store.getListenerStats().tableCellIds).toEqual(0);
31813253
});
31823254

3255+
test('useHasTableCellListener', () => {
3256+
expect.assertions(4);
3257+
const Test = ({value}: {readonly value: number}) => {
3258+
useHasTableCellListener(
3259+
't1',
3260+
'c1',
3261+
(store) => expect(store?.getCell('t1', 'r1', 'c1')).toEqual(value),
3262+
[value],
3263+
false,
3264+
store,
3265+
);
3266+
return <div />;
3267+
};
3268+
expect(store.getListenerStats().hasTableCell).toEqual(0);
3269+
act(() => {
3270+
renderer = create(<Test value={2} />);
3271+
});
3272+
expect(store.getListenerStats().hasTableCell).toEqual(1);
3273+
act(() => {
3274+
store.setCell('t1', 'r1', 'c1', 2);
3275+
});
3276+
act(() => {
3277+
renderer.update(<Test value={3} />);
3278+
});
3279+
expect(store.getListenerStats().hasTableCell).toEqual(1);
3280+
act(() => {
3281+
store.setCell('t1', 'r1', 'c1', 3);
3282+
});
3283+
act(() => {
3284+
renderer.update(<div />);
3285+
});
3286+
expect(store.getListenerStats().hasTableCell).toEqual(0);
3287+
});
3288+
31833289
test('useRowCountListener', () => {
31843290
expect.assertions(6);
31853291
const Test = ({value}: {readonly value: number}) => {
@@ -3289,6 +3395,40 @@ describe('Listener Hooks', () => {
32893395
expect(store.getListenerStats().sortedRowIds).toEqual(0);
32903396
});
32913397

3398+
test('useHasRowListener', () => {
3399+
expect.assertions(4);
3400+
const Test = ({value}: {readonly value: number}) => {
3401+
useHasRowListener(
3402+
't1',
3403+
'r1',
3404+
(store) => expect(store?.getCell('t1', 'r1', 'c1')).toEqual(value),
3405+
[value],
3406+
false,
3407+
store,
3408+
);
3409+
return <div />;
3410+
};
3411+
expect(store.getListenerStats().hasRow).toEqual(0);
3412+
act(() => {
3413+
renderer = create(<Test value={2} />);
3414+
});
3415+
expect(store.getListenerStats().hasRow).toEqual(1);
3416+
act(() => {
3417+
store.setCell('t1', 'r1', 'c1', 2);
3418+
});
3419+
act(() => {
3420+
renderer.update(<Test value={3} />);
3421+
});
3422+
expect(store.getListenerStats().hasRow).toEqual(1);
3423+
act(() => {
3424+
store.setCell('t1', 'r1', 'c1', 3);
3425+
});
3426+
act(() => {
3427+
renderer.update(<div />);
3428+
});
3429+
expect(store.getListenerStats().hasRow).toEqual(0);
3430+
});
3431+
32923432
test('useRowListener', () => {
32933433
expect.assertions(6);
32943434
const Test = ({value}: {readonly value: number}) => {
@@ -3359,6 +3499,41 @@ describe('Listener Hooks', () => {
33593499
expect(store.getListenerStats().cellIds).toEqual(0);
33603500
});
33613501

3502+
test('useHasCellListener', () => {
3503+
expect.assertions(4);
3504+
const Test = ({value}: {readonly value: number}) => {
3505+
useHasCellListener(
3506+
't1',
3507+
'r1',
3508+
'c1',
3509+
(store) => expect(store?.getCell('t1', 'r1', 'c1')).toEqual(value),
3510+
[value],
3511+
false,
3512+
store,
3513+
);
3514+
return <div />;
3515+
};
3516+
expect(store.getListenerStats().hasCell).toEqual(0);
3517+
act(() => {
3518+
renderer = create(<Test value={2} />);
3519+
});
3520+
expect(store.getListenerStats().hasCell).toEqual(1);
3521+
act(() => {
3522+
store.setCell('t1', 'r1', 'c1', 2);
3523+
});
3524+
act(() => {
3525+
renderer.update(<Test value={3} />);
3526+
});
3527+
expect(store.getListenerStats().hasCell).toEqual(1);
3528+
act(() => {
3529+
store.setCell('t1', 'r1', 'c1', 3);
3530+
});
3531+
act(() => {
3532+
renderer.update(<div />);
3533+
});
3534+
expect(store.getListenerStats().hasCell).toEqual(0);
3535+
});
3536+
33623537
test('useCellListener', () => {
33633538
expect.assertions(6);
33643539
const Test = ({value}: {readonly value: number}) => {
@@ -3394,6 +3569,38 @@ describe('Listener Hooks', () => {
33943569
expect(store.getListenerStats().cell).toEqual(0);
33953570
});
33963571

3572+
test('useHasValuesListener', () => {
3573+
expect.assertions(4);
3574+
const Test = ({value}: {readonly value: number}) => {
3575+
useHasValuesListener(
3576+
(store) => expect(store?.getValue('v1')).toEqual(value),
3577+
[value],
3578+
false,
3579+
store,
3580+
);
3581+
return <div />;
3582+
};
3583+
expect(store.getListenerStats().hasValues).toEqual(0);
3584+
act(() => {
3585+
renderer = create(<Test value={2} />);
3586+
});
3587+
expect(store.getListenerStats().hasValues).toEqual(1);
3588+
act(() => {
3589+
store.setValue('v1', 2);
3590+
});
3591+
act(() => {
3592+
renderer.update(<Test value={3} />);
3593+
});
3594+
expect(store.getListenerStats().hasValues).toEqual(1);
3595+
act(() => {
3596+
store.setValue('v1', 3);
3597+
});
3598+
act(() => {
3599+
renderer.update(<div />);
3600+
});
3601+
expect(store.getListenerStats().hasValues).toEqual(0);
3602+
});
3603+
33973604
test('useValuesListener', () => {
33983605
expect.assertions(6);
33993606
const Test = ({value}: {readonly value: number}) => {
@@ -3460,6 +3667,39 @@ describe('Listener Hooks', () => {
34603667
expect(store.getListenerStats().valueIds).toEqual(0);
34613668
});
34623669

3670+
test('useHasValueListener', () => {
3671+
expect.assertions(4);
3672+
const Test = ({value}: {readonly value: number}) => {
3673+
useHasValueListener(
3674+
'v1',
3675+
(store) => expect(store?.getValue('v1')).toEqual(value),
3676+
[value],
3677+
false,
3678+
store,
3679+
);
3680+
return <div />;
3681+
};
3682+
expect(store.getListenerStats().hasValue).toEqual(0);
3683+
act(() => {
3684+
renderer = create(<Test value={2} />);
3685+
});
3686+
expect(store.getListenerStats().hasValue).toEqual(1);
3687+
act(() => {
3688+
store.setValue('v1', 2);
3689+
});
3690+
act(() => {
3691+
renderer.update(<Test value={3} />);
3692+
});
3693+
expect(store.getListenerStats().hasValue).toEqual(1);
3694+
act(() => {
3695+
store.setValue('v1', 3);
3696+
});
3697+
act(() => {
3698+
renderer.update(<div />);
3699+
});
3700+
expect(store.getListenerStats().hasValue).toEqual(0);
3701+
});
3702+
34633703
test('useValueListener', () => {
34643704
expect.assertions(6);
34653705
const Test = ({value}: {readonly value: number}) => {

0 commit comments

Comments
 (0)