Tests: Rename changeQuantity to setItemQuantity

This was broken in dc18112911
This commit is contained in:
Mike Jolley 2021-03-16 12:23:33 +00:00
parent dc18112911
commit 06ccdbe331
3 changed files with 11 additions and 7 deletions

View File

@ -95,14 +95,14 @@ describe( 'useStoreCartItemQuantity', () => {
); );
} ); } );
const { changeQuantity, quantity } = renderer.root.findByType( const { setItemQuantity, quantity } = renderer.root.findByType(
'div' 'div'
).props; ).props;
expect( quantity ).toBe( 1 ); expect( quantity ).toBe( 1 );
act( () => { act( () => {
changeQuantity( 2 ); setItemQuantity( 2 );
} ); } );
const { quantity: newQuantity } = renderer.root.findByType( const { quantity: newQuantity } = renderer.root.findByType(
@ -133,7 +133,7 @@ describe( 'useStoreCartItemQuantity', () => {
expect( mockRemoveItemFromCart ).toHaveBeenCalledWith( '123' ); expect( mockRemoveItemFromCart ).toHaveBeenCalledWith( '123' );
} ); } );
it( 'changeQuantity should call the dispatch action', () => { it( 'setItemQuantity should call the dispatch action', () => {
const TestComponent = getTestComponent( { const TestComponent = getTestComponent( {
key: '123', key: '123',
quantity: 1, quantity: 1,
@ -145,10 +145,10 @@ describe( 'useStoreCartItemQuantity', () => {
); );
} ); } );
const { changeQuantity } = renderer.root.findByType( 'div' ).props; const { setItemQuantity } = renderer.root.findByType( 'div' ).props;
act( () => { act( () => {
changeQuantity( 2 ); setItemQuantity( 2 );
} ); } );
expect( mockChangeCartItemQuantity.mock.calls ).toEqual( [ expect( mockChangeCartItemQuantity.mock.calls ).toEqual( [

View File

@ -68,7 +68,11 @@ export const useStoreCartItemQuantity = (
// Observe debounced quantity value, fire action to update server on change. // Observe debounced quantity value, fire action to update server on change.
useEffect( () => { useEffect( () => {
if ( cartItemKey && previousDebouncedQuantity !== debouncedQuantity ) { if (
cartItemKey &&
Number.isFinite( previousDebouncedQuantity ) &&
previousDebouncedQuantity !== debouncedQuantity
) {
changeCartItemQuantity( cartItemKey, debouncedQuantity ).then( changeCartItemQuantity( cartItemKey, debouncedQuantity ).then(
triggerFragmentRefresh triggerFragmentRefresh
); );

View File

@ -16,7 +16,7 @@ import type { ResponseError } from '../data/types';
export interface StoreCartItemQuantity { export interface StoreCartItemQuantity {
isPendingDelete: boolean; isPendingDelete: boolean;
quantity: number; quantity: number;
setItemQuantity: ( quantity: number ) => Promise< boolean >; setItemQuantity: React.Dispatch< React.SetStateAction< number > >;
removeItem: () => Promise< boolean >; removeItem: () => Promise< boolean >;
cartItemQuantityErrors: Array< CartResponseErrorItem >; cartItemQuantityErrors: Array< CartResponseErrorItem >;
} }