Skip to content

Commit

Permalink
Merge branch 'develop' into dev/hack-logging-enhancements
Browse files Browse the repository at this point in the history
  • Loading branch information
dmvrtx authored Dec 20, 2024
2 parents 269930d + 3c7b115 commit 2101afd
Show file tree
Hide file tree
Showing 87 changed files with 1,816 additions and 293 deletions.
4 changes: 4 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
*** WooPayments Changelog ***

= 8.6.1 - 2024-12-17 =
* Fix - Checkout: Fix error when wc_address_i18n_params does not have data for a given country
* Fix - Skip mysqlcheck SSL Requirement during E2E environment setup

= 8.6.0 - 2024-12-04 =
* Add - Add Bank reference key column in Payout reports. This will help reconcile WooPayments Payouts with bank statements.
* Add - Display credit card brand icons on order received page.
Expand Down
4 changes: 4 additions & 0 deletions changelog/add-woopay-klaviyo-newsletter-support
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: add

Add WooPay Klaviyo newsletter integration.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: dev

Remove hooks from customer and token services to dedicated methods
4 changes: 4 additions & 0 deletions changelog/feat-9810-add-seller-message
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: add

Add seller_message to failed order notes
5 changes: 5 additions & 0 deletions changelog/fix-198-mccy-fedex-conversion
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fix
Comment: Fix FedEx insurance rates with different currencies.


Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Use translatable strings on the fee breakdown tooltip of the payment settings screen.
4 changes: 4 additions & 0 deletions changelog/fix-9114-level3-rounding
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Add a rounding entry to Level 3 data for rare cases where rounding errors break calculations.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Hide transaction fee on admin view order screen when transaction is not captured.
4 changes: 4 additions & 0 deletions changelog/fix-9716-disputes-api-requests
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Performance improvements for Disputes Needing Response task shown in WooCommerce admin.
4 changes: 4 additions & 0 deletions changelog/fix-9735-render-transactions-correctly-on-capture
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Ensure captured transactions appear in the Transactions tab without requiring a page refresh.
4 changes: 4 additions & 0 deletions changelog/fix-9794-refresh-page-when-ece-dismissed
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: add

Refresh the cart and checkout pages when ECE is dismissed and the shipping options were modified in the payment sheet.
4 changes: 4 additions & 0 deletions changelog/fix-9987-filter-csv-disputes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Fix filtering in async Disputes CSV export
4 changes: 4 additions & 0 deletions changelog/fix-9996-currency-conversion-fee-phrasing
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Use "currency conversion fee" instead "foreign exchange fee" in payment timeline and various other places.
4 changes: 4 additions & 0 deletions changelog/fix-allow-addresses-from-woo-supported-countries
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Checkout: Fix error when wc_address_i18n_params does not have data for a given country
4 changes: 4 additions & 0 deletions changelog/fix-ece-button-for-price-including-tax
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Show express checkout for products w/o shipping but where tax is included into price.
4 changes: 4 additions & 0 deletions changelog/fix-method-title-availability
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Set payment method title once title is known.
5 changes: 5 additions & 0 deletions changelog/fix-tokenized-cart-multiple-variations
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fix
Comment: fix: tokenized cart & multiple variations.


5 changes: 5 additions & 0 deletions changelog/fix-tokenized-cart-subscription-signup-fee
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fix
Comment: fix: tokenized cart subscription signup fee price


5 changes: 5 additions & 0 deletions changelog/fix-tokenized-ece-product-bundles-totals
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Significance: patch
Type: fix
Comment: fix: tokenized ECE item compatibility w/ product bundles


4 changes: 4 additions & 0 deletions changelog/fix-unhandled-promises
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: minor
Type: fix

Fix payment method filtering when billing country changes in Blocks checkout.
4 changes: 4 additions & 0 deletions changelog/load-checkout-scripts-on-checkout-if-not-loaded
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: fix

Load checkout scripts when they are not previously loaded on checkout page.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: update

Update error messages for payment authorization actions to provide more specific and user-friendly feedback.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: update

Add failure reason to failed payments in the timeline.
4 changes: 4 additions & 0 deletions changelog/update-9919-embedded-components-width
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Significance: patch
Type: update

Update Embedded Components and MOX to support custom width and paddings.
5 changes: 0 additions & 5 deletions changelog/update-server-container-name

This file was deleted.

138 changes: 131 additions & 7 deletions client/checkout/utils/test/upe.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
isUsingSavedPaymentMethod,
dispatchChangeEventFor,
togglePaymentMethodForCountry,
isBillingInformationMissing,
} from '../upe';

import { getPaymentMethodsConstants } from '../../constants';
Expand All @@ -22,11 +23,134 @@ jest.mock( 'wcpay/utils/checkout' );

jest.mock( '../../constants', () => {
return {
...jest.requireActual( '../../constants' ),
getPaymentMethodsConstants: jest.fn(),
};
} );

function buildForm( fields ) {
const form = document.createElement( 'form' );
fields.forEach( ( field ) => {
const input = document.createElement( 'input' );
input.id = field.id;
input.value = field.value;
form.appendChild( input );
} );
return form;
}

describe( 'UPE checkout utils', () => {
describe( 'isBillingInformationMissing', () => {
beforeAll( () => {
window.wc_address_i18n_params = {
locale: {
US: {},
HK: {
postcode: { required: false },
},
default: {
address_1: { required: true },
postcode: { required: true },
},
},
};
} );

beforeEach( () => {
getUPEConfig.mockImplementation( ( argument ) => {
if ( argument === 'enabledBillingFields' ) {
return {
billing_first_name: {
required: true,
},
billing_last_name: {
required: true,
},
billing_company: {
required: false,
},
billing_country: {
required: true,
},
billing_address_1: {
required: true,
},
billing_address_2: {
required: false,
},
billing_city: {
required: true,
},
billing_state: {
required: true,
},
billing_postcode: {
required: true,
},
billing_phone: {
required: true,
},
billing_email: {
required: true,
},
};
}
} );
} );

it( 'should return false when the billing information is not missing', () => {
const form = buildForm( [
{ id: 'billing_first_name', value: 'Test' },
{ id: 'billing_last_name', value: 'User' },
{ id: 'billing_email', value: '[email protected]' },
{ id: 'billing_country', value: 'US' },
{ id: 'billing_address_1', value: '123 Main St' },
{ id: 'billing_city', value: 'Anytown' },
{ id: 'billing_postcode', value: '12345' },
] );
expect( isBillingInformationMissing( form ) ).toBe( false );
} );

it( 'should return true when the billing information is missing', () => {
const form = buildForm( [
{ id: 'billing_first_name', value: 'Test' },
{ id: 'billing_last_name', value: 'User' },
{ id: 'billing_email', value: '[email protected]' },
{ id: 'billing_country', value: 'US' },
{ id: 'billing_address_1', value: '123 Main St' },
{ id: 'billing_city', value: 'Anytown' },
{ id: 'billing_postcode', value: '' },
] );
expect( isBillingInformationMissing( form ) ).toBe( true );
} );

it( 'should use the defaults when there is no specific locale data for a country', () => {
const form = buildForm( [
{ id: 'billing_first_name', value: 'Test' },
{ id: 'billing_last_name', value: 'User' },
{ id: 'billing_email', value: '[email protected]' },
{ id: 'billing_country', value: 'MX' },
{ id: 'billing_address_1', value: '123 Main St' },
{ id: 'billing_city', value: 'Anytown' },
{ id: 'billing_postcode', value: '' },
] );
expect( isBillingInformationMissing( form ) ).toBe( true );
} );

it( 'should return false when the locale data for a country has no required fields', () => {
const form = buildForm( [
{ id: 'billing_first_name', value: 'Test' },
{ id: 'billing_last_name', value: 'User' },
{ id: 'billing_email', value: '[email protected]' },
{ id: 'billing_country', value: 'HK' },
{ id: 'billing_address_1', value: '123 Main St' },
{ id: 'billing_city', value: 'Anytown' },
{ id: 'billing_postcode', value: '' },
] );
expect( isBillingInformationMissing( form ) ).toBe( true );
} );
} );

describe( 'getSelectedUPEGatewayPaymentMethod', () => {
let container;

Expand Down Expand Up @@ -54,7 +178,7 @@ describe( 'UPE checkout utils', () => {
} );

test( 'Selected UPE Payment Method is card', () => {
container.innerHTML = `<input
container.innerHTML = `<input
id="payment_method_woocommerce_payments"
value="woocommerce_payments"
name="payment_method"
Expand All @@ -67,12 +191,12 @@ describe( 'UPE checkout utils', () => {

test( 'Selected UPE Payment Method is bancontact', () => {
container.innerHTML = `
<input
id="payment_method_woocommerce_payments_bancontact"
value="woocommerce_payments_bancontact"
name="payment_method"
type="radio"
class="input-radio"
<input
id="payment_method_woocommerce_payments_bancontact"
value="woocommerce_payments_bancontact"
name="payment_method"
type="radio"
class="input-radio"
checked
></input>
`;
Expand Down
4 changes: 2 additions & 2 deletions client/checkout/utils/upe.js
Original file line number Diff line number Diff line change
Expand Up @@ -449,8 +449,8 @@ export const isBillingInformationMissing = ( form ) => {
if ( country && locale && fieldName !== 'billing_email' ) {
const key = fieldName.replace( 'billing_', '' );
isRequired =
locale[ country ][ key ]?.required ??
locale.default[ key ]?.required;
locale[ country ]?.[ key ]?.required ??
locale.default?.[ key ]?.required;
}

const hasValue = field?.value;
Expand Down
Loading

0 comments on commit 2101afd

Please sign in to comment.