🧪 Define new selector response format

This commit is contained in:
Philipp Stracker 2025-02-21 20:52:54 +01:00
parent 16bbda2070
commit 0f5f571f98
No known key found for this signature in database

View file

@ -13,7 +13,10 @@ describe( 'determineProductsAndCaps selector [casual seller]', () => {
}, },
flags: { canUseCardPayments: false, canUseVaulting: false }, flags: { canUseCardPayments: false, canUseVaulting: false },
}, },
expected: [ 'EXPRESS_CHECKOUT' ], expected: {
products: [ 'EXPRESS_CHECKOUT' ],
options: {},
},
}, },
{ {
name: 'should return EXPRESS_CHECKOUT when optional payment methods are disabled', name: 'should return EXPRESS_CHECKOUT when optional payment methods are disabled',
@ -24,7 +27,10 @@ describe( 'determineProductsAndCaps selector [casual seller]', () => {
}, },
flags: { canUseCardPayments: true, canUseVaulting: false }, flags: { canUseCardPayments: true, canUseVaulting: false },
}, },
expected: [ 'EXPRESS_CHECKOUT' ], expected: {
products: [ 'EXPRESS_CHECKOUT' ],
options: {},
},
}, },
{ {
name: 'should return EXPRESS_CHECKOUT for casual sellers with card payments', name: 'should return EXPRESS_CHECKOUT for casual sellers with card payments',
@ -35,7 +41,10 @@ describe( 'determineProductsAndCaps selector [casual seller]', () => {
}, },
flags: { canUseCardPayments: true, canUseVaulting: false }, flags: { canUseCardPayments: true, canUseVaulting: false },
}, },
expected: [ 'EXPRESS_CHECKOUT' ], expected: {
products: [ 'EXPRESS_CHECKOUT' ],
options: {},
},
}, },
{ {
name: 'should return EXPRESS_CHECKOUT and ADVANCED_VAULTING when card payments are not available but vaulting is', name: 'should return EXPRESS_CHECKOUT and ADVANCED_VAULTING when card payments are not available but vaulting is',
@ -46,11 +55,14 @@ describe( 'determineProductsAndCaps selector [casual seller]', () => {
}, },
flags: { canUseCardPayments: false, canUseVaulting: true }, flags: { canUseCardPayments: false, canUseVaulting: true },
}, },
expected: [ 'EXPRESS_CHECKOUT', 'ADVANCED_VAULTING' ], expected: {
products: [ 'EXPRESS_CHECKOUT', 'ADVANCED_VAULTING' ],
options: {},
},
}, },
]; ];
it.each( testCases )( '$name', ( { state, expected } ) => { test.each( testCases )( '$name', ( { state, expected } ) => {
const result = determineProductsAndCaps( state ); const result = determineProductsAndCaps( state );
expect( result ).toEqual( expected ); expect( result ).toEqual( expected );
} ); } );
@ -67,7 +79,10 @@ describe( 'determineProductsAndCaps selector [business seller]', () => {
}, },
flags: { canUseCardPayments: false, canUseVaulting: false }, flags: { canUseCardPayments: false, canUseVaulting: false },
}, },
expected: [ 'EXPRESS_CHECKOUT' ], expected: {
products: [ 'EXPRESS_CHECKOUT' ],
options: {},
},
}, },
{ {
name: 'should return EXPRESS_CHECKOUT when optional payment methods are disabled', name: 'should return EXPRESS_CHECKOUT when optional payment methods are disabled',
@ -78,7 +93,10 @@ describe( 'determineProductsAndCaps selector [business seller]', () => {
}, },
flags: { canUseCardPayments: true, canUseVaulting: false }, flags: { canUseCardPayments: true, canUseVaulting: false },
}, },
expected: [ 'EXPRESS_CHECKOUT' ], expected: {
products: [ 'EXPRESS_CHECKOUT' ],
options: {},
},
}, },
{ {
name: 'should return PPCP for business merchants with card payments', name: 'should return PPCP for business merchants with card payments',
@ -89,7 +107,10 @@ describe( 'determineProductsAndCaps selector [business seller]', () => {
}, },
flags: { canUseCardPayments: true, canUseVaulting: false }, flags: { canUseCardPayments: true, canUseVaulting: false },
}, },
expected: [ 'PPCP' ], expected: {
products: [ 'PPCP' ],
options: {},
},
}, },
{ {
name: 'should include ADVANCED_VAULTING when vaulting is available', name: 'should include ADVANCED_VAULTING when vaulting is available',
@ -100,7 +121,10 @@ describe( 'determineProductsAndCaps selector [business seller]', () => {
}, },
flags: { canUseCardPayments: true, canUseVaulting: true }, flags: { canUseCardPayments: true, canUseVaulting: true },
}, },
expected: [ 'PPCP', 'ADVANCED_VAULTING' ], expected: {
products: [ 'PPCP', 'ADVANCED_VAULTING' ],
options: {},
},
}, },
{ {
name: 'should return EXPRESS_CHECKOUT and ADVANCED_VAULTING when card payments are not available but vaulting is', name: 'should return EXPRESS_CHECKOUT and ADVANCED_VAULTING when card payments are not available but vaulting is',
@ -111,11 +135,14 @@ describe( 'determineProductsAndCaps selector [business seller]', () => {
}, },
flags: { canUseCardPayments: false, canUseVaulting: true }, flags: { canUseCardPayments: false, canUseVaulting: true },
}, },
expected: [ 'EXPRESS_CHECKOUT', 'ADVANCED_VAULTING' ], expected: {
products: [ 'EXPRESS_CHECKOUT', 'ADVANCED_VAULTING' ],
options: {},
},
}, },
]; ];
it.each( testCases )( '$name', ( { state, expected } ) => { test.each( testCases )( '$name', ( { state, expected } ) => {
const result = determineProductsAndCaps( state ); const result = determineProductsAndCaps( state );
expect( result ).toEqual( expected ); expect( result ).toEqual( expected );
} ); } );