diff --git a/app/code/Magento/CustomerGraphQl/Model/Resolver/UpdateCustomerAddress.php b/app/code/Magento/CustomerGraphQl/Model/Resolver/UpdateCustomerAddress.php index 7bae40e4cc5de..833ab2e450280 100644 --- a/app/code/Magento/CustomerGraphQl/Model/Resolver/UpdateCustomerAddress.php +++ b/app/code/Magento/CustomerGraphQl/Model/Resolver/UpdateCustomerAddress.php @@ -109,6 +109,10 @@ private function updateCustomerAddress(int $customerId, int $addressId, array $a { $address = $this->getCustomerAddressForUser->execute($addressId, $customerId); $this->dataObjectHelper->populateWithArray($address, $addressData, AddressInterface::class); + if (isset($addressData['region']['region_id'])) { + $address->setRegionId($address->getRegion()->getRegionId()); + } + return $this->addressRepository->save($address); } } diff --git a/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/UpdateCustomerAddressTest.php b/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/UpdateCustomerAddressTest.php index 519fe2b1405a0..6a9708b4f86a2 100644 --- a/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/UpdateCustomerAddressTest.php +++ b/dev/tests/api-functional/testsuite/Magento/GraphQl/Customer/UpdateCustomerAddressTest.php @@ -218,13 +218,12 @@ private function assertCustomerAddressesFields(AddressInterface $address, $actua ]; $this->assertResponseFields($actualResponse, $assertionMap); $this->assertTrue(is_array([$actualResponse['region']]), "region field must be of an array type."); - // https://github.com/magento/graphql-ce/issues/270 -// $assertionRegionMap = [ -// ['response_field' => 'region', 'expected_value' => $address->getRegion()->getRegion()], -// ['response_field' => 'region_code', 'expected_value' => $address->getRegion()->getRegionCode()], -// ['response_field' => 'region_id', 'expected_value' => $address->getRegion()->getRegionId()] -// ]; -// $this->assertResponseFields($actualResponse['region'], $assertionRegionMap); + $assertionRegionMap = [ + ['response_field' => 'region', 'expected_value' => $address->getRegion()->getRegion()], + ['response_field' => 'region_code', 'expected_value' => $address->getRegion()->getRegionCode()], + ['response_field' => 'region_id', 'expected_value' => $address->getRegion()->getRegionId()] + ]; + $this->assertResponseFields($actualResponse['region'], $assertionRegionMap); } /**