Skip to content

Commit 830e0c1

Browse files
author
Vaha
committed
magento/graphql-ce#893 improved strict typing in SelectedShippingMethod
1 parent db43c11 commit 830e0c1

File tree

4 files changed

+50
-32
lines changed

4 files changed

+50
-32
lines changed

app/code/Magento/QuoteGraphQl/Model/Resolver/ShippingAddress/SelectedShippingMethod.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
3131
/** @var Address $address */
3232
$address = $value['model'];
3333
$rates = $address->getAllShippingRates();
34-
$carrierTitle = null;
35-
$methodTitle = null;
34+
$carrierTitle = '';
35+
$methodTitle = '';
3636

3737
if (count($rates) > 0 && !empty($address->getShippingMethod())) {
3838
list($carrierCode, $methodCode) = explode('_', $address->getShippingMethod(), 2);
@@ -65,12 +65,18 @@ public function resolve(Field $field, $context, ResolveInfo $info, array $value
6565
];
6666
} else {
6767
$data = [
68-
'carrier_code' => null,
69-
'method_code' => null,
68+
'carrier_code' => '',
69+
'method_code' => '',
7070
'carrier_title' => $carrierTitle,
7171
'method_title' => $methodTitle,
72-
'amount' => null,
73-
'base_amount' => null,
72+
'amount' => [
73+
'value' => null,
74+
'currency' => null,
75+
],
76+
'base_amount' => [
77+
'value' => null,
78+
'currency' => null,
79+
],
7480
];
7581
}
7682
return $data;

app/code/Magento/QuoteGraphQl/etc/schema.graphqls

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -239,12 +239,12 @@ type CartAddressCountry {
239239
}
240240

241241
type SelectedShippingMethod {
242-
carrier_code: String
243-
method_code: String
244-
carrier_title: String
245-
method_title: String
246-
amount: Money
247-
base_amount: Money
242+
carrier_code: String!
243+
method_code: String!
244+
carrier_title: String!
245+
method_title: String!
246+
amount: Money!
247+
base_amount: Money!
248248
}
249249

250250
type AvailableShippingMethod {

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Customer/GetSelectedShippingMethodTest.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,16 @@ public function testGetSelectedShippingMethodBeforeSet()
110110
self::assertArrayHasKey('selected_shipping_method', $shippingAddress);
111111

112112
self::assertArrayHasKey('carrier_code', $shippingAddress['selected_shipping_method']);
113-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']);
113+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_code']);
114114

115115
self::assertArrayHasKey('method_code', $shippingAddress['selected_shipping_method']);
116-
self::assertNull($shippingAddress['selected_shipping_method']['method_code']);
116+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_code']);
117117

118118
self::assertArrayHasKey('carrier_title', $shippingAddress['selected_shipping_method']);
119-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']);
119+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_title']);
120120

121121
self::assertArrayHasKey('method_title', $shippingAddress['selected_shipping_method']);
122-
self::assertNull($shippingAddress['selected_shipping_method']['method_title']);
122+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_title']);
123123
}
124124

125125
/**
@@ -183,12 +183,18 @@ public function testGetGetSelectedShippingMethodIfShippingMethodIsNotSet()
183183
$shippingAddress = current($response['cart']['shipping_addresses']);
184184
self::assertArrayHasKey('selected_shipping_method', $shippingAddress);
185185

186-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']);
187-
self::assertNull($shippingAddress['selected_shipping_method']['method_code']);
188-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']);
189-
self::assertNull($shippingAddress['selected_shipping_method']['method_title']);
190-
self::assertNull($shippingAddress['selected_shipping_method']['amount']);
191-
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']);
186+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_code']);
187+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_code']);
188+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_title']);
189+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_title']);
190+
191+
self::assertArrayHasKey('amount', $shippingAddress['selected_shipping_method']);
192+
self::assertNull($shippingAddress['selected_shipping_method']['amount']['value']);
193+
self::assertNull($shippingAddress['selected_shipping_method']['amount']['currency']);
194+
195+
self::assertArrayHasKey('base_amount', $shippingAddress['selected_shipping_method']);
196+
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']['value']);
197+
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']['currency']);
192198
}
193199

194200
/**

dev/tests/api-functional/testsuite/Magento/GraphQl/Quote/Guest/GetSelectedShippingMethodTest.php

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,16 @@ public function testGetSelectedShippingMethodBeforeSet()
101101
self::assertArrayHasKey('selected_shipping_method', $shippingAddress);
102102

103103
self::assertArrayHasKey('carrier_code', $shippingAddress['selected_shipping_method']);
104-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']);
104+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_code']);
105105

106106
self::assertArrayHasKey('method_code', $shippingAddress['selected_shipping_method']);
107-
self::assertNull($shippingAddress['selected_shipping_method']['method_code']);
107+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_code']);
108108

109109
self::assertArrayHasKey('carrier_title', $shippingAddress['selected_shipping_method']);
110-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']);
110+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_title']);
111111

112112
self::assertArrayHasKey('method_title', $shippingAddress['selected_shipping_method']);
113-
self::assertNull($shippingAddress['selected_shipping_method']['method_title']);
113+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_title']);
114114
}
115115

116116
/**
@@ -153,12 +153,18 @@ public function testGetGetSelectedShippingMethodIfShippingMethodIsNotSet()
153153
$shippingAddress = current($response['cart']['shipping_addresses']);
154154
self::assertArrayHasKey('selected_shipping_method', $shippingAddress);
155155

156-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_code']);
157-
self::assertNull($shippingAddress['selected_shipping_method']['method_code']);
158-
self::assertNull($shippingAddress['selected_shipping_method']['carrier_title']);
159-
self::assertNull($shippingAddress['selected_shipping_method']['method_title']);
160-
self::assertNull($shippingAddress['selected_shipping_method']['amount']);
161-
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']);
156+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_code']);
157+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_code']);
158+
self::assertEmpty($shippingAddress['selected_shipping_method']['carrier_title']);
159+
self::assertEmpty($shippingAddress['selected_shipping_method']['method_title']);
160+
161+
self::assertArrayHasKey('amount', $shippingAddress['selected_shipping_method']);
162+
self::assertNull($shippingAddress['selected_shipping_method']['amount']['value']);
163+
self::assertNull($shippingAddress['selected_shipping_method']['amount']['currency']);
164+
165+
self::assertArrayHasKey('base_amount', $shippingAddress['selected_shipping_method']);
166+
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']['value']);
167+
self::assertNull($shippingAddress['selected_shipping_method']['base_amount']['currency']);
162168
}
163169

164170
/**

0 commit comments

Comments
 (0)