Skip to content

Commit 64179ac

Browse files
committed
ACP2E-3402: Checkout shipping address form get update with wrong address
1 parent 6acfd6a commit 64179ac

File tree

2 files changed

+62
-11
lines changed

2 files changed

+62
-11
lines changed

app/code/Magento/Checkout/view/frontend/web/js/checkout-data.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
/**
2-
* Copyright © Magento, Inc. All rights reserved.
3-
* See COPYING.txt for license details.
4-
*/
5-
6-
/**
7-
* Checkout adapter for customer data storage
8-
*
9-
* @api
2+
* Copyright 2015 Adobe
3+
* All Rights Reserved.
104
*/
115
define([
126
'jquery',
@@ -87,9 +81,13 @@ define([
8781
* @param {Object} data
8882
*/
8983
setShippingAddressFromData: function (data) {
90-
var obj = getData();
84+
let obj = getData(),
85+
websiteCode = window.checkoutConfig.websiteCode;
9186

92-
obj.shippingAddressFromData = utils.filterFormData(data);
87+
if (!obj.shippingAddressFromData) {
88+
obj.shippingAddressFromData = {};
89+
}
90+
obj.shippingAddressFromData[websiteCode] = utils.filterFormData(data);
9391
saveData(obj);
9492
},
9593

@@ -99,7 +97,13 @@ define([
9997
* @return {*}
10098
*/
10199
getShippingAddressFromData: function () {
102-
return getData().shippingAddressFromData;
100+
let websiteCode = window.checkoutConfig.websiteCode;
101+
102+
if (!getData().shippingAddressFromData) {
103+
return null;
104+
}
105+
106+
return getData().shippingAddressFromData[websiteCode];
103107
},
104108

105109
/**
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* Copyright 2024 Adobe
3+
* All Rights Reserved.
4+
*/
5+
6+
define([
7+
'Magento_Checkout/js/checkout-data',
8+
'Magento_Customer/js/customer-data'
9+
], function (checkoutData, storage) {
10+
'use strict';
11+
12+
describe('Magento_Checkout/js/checkout-data', function () {
13+
let cacheKey = 'checkout-data',
14+
testData = {
15+
shippingAddressFromData: {base: {address1: 'address1'}}
16+
},
17+
18+
/** Stub */
19+
getStorageData = function () {
20+
return testData;
21+
};
22+
23+
window.checkoutConfig = {
24+
websiteCode: 'base'
25+
};
26+
27+
beforeEach(function () {
28+
spyOn(storage, 'set');
29+
});
30+
31+
it('should save selected shipping address per website', function () {
32+
checkoutData.setShippingAddressFromData({address1: 'address1'});
33+
expect(storage.set).toHaveBeenCalledWith(cacheKey, jasmine.objectContaining(testData));
34+
});
35+
36+
it('should return null if no shipping address data exists', function () {
37+
expect(checkoutData.getShippingAddressFromData()).toBeNull();
38+
});
39+
40+
it('should get shipping address from data per website', function () {
41+
spyOn(storage, 'get').and.returnValue(getStorageData);
42+
let address = checkoutData.getShippingAddressFromData();
43+
44+
expect(address).toEqual(testData.shippingAddressFromData.base);
45+
});
46+
});
47+
});

0 commit comments

Comments
 (0)