Skip to content

Commit

Permalink
feat(order): add typename to driver response models (#1229)
Browse files Browse the repository at this point in the history
__typename must be grabbed in order to properly match fragments
`addTypename: true` with the cache forces flushed responses to match the query (which includes __typename)
flushed responses that do not have __typename will cause invariant errors
adding __typename on the response models makes it easier to stub out response objects in tests
  • Loading branch information
griest024 authored and damienwebdev committed Jan 20, 2021
1 parent 64a941d commit 86dfb7f
Show file tree
Hide file tree
Showing 38 changed files with 96 additions and 37 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export interface MagentoGraycoreOrderAddress {
__typename?: 'GraycoreOrderAddress';
order_id: number;
prefix: string;
suffix: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { MagentoGraycoreOrderAddress } from './order-address';
import { MagentoGraycoreOrderPayment } from './order-payment';

export interface MagentoGraycoreOrderInvoice {
__typename?: 'GraycoreOrderInvoice';
items: MagentoGraycoreOrderShipmentItem[];
grand_total: number;
subtotal: number;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export interface MagentoGraycoreOrderItem {
__typename?: 'GraycoreOrderItem';
qty_ordered: number;
qty_canceled: number;
qty_fulfilled: number;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export interface MagentoGraycoreOrderPayment {
__typename?: 'GraycoreOrderPayment';
payment_id: number;
order_id: number;
method: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { MagentoGraycoreOrderItem } from './order-item';

export interface MagentoGraycoreOrderShipmentItem {
__typename?: 'GraycoreOrderShipmentItem';
item: MagentoGraycoreOrderItem;
qty: number;
};
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export interface MagentoGraycoreOrderShipmentTracking {
__typename?: 'GraycoreOrderShipmentTracking';
tracking_number: string;
carrier: string;
title: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { MagentoGraycoreOrderShipmentItem } from './order-shipment-item';
import { MagentoGraycoreOrderShipmentTracking } from './order-shipment-tracking';

export interface MagentoGraycoreOrderShipment {
__typename?: 'GraycoreOrderShipment';
tracking: MagentoGraycoreOrderShipmentTracking[];
items: MagentoGraycoreOrderShipmentItem[];
};
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { MagentoGraycoreOrderPayment } from './order-payment';
import { MagentoGraycoreOrderInvoice } from './order-invoice';

export interface MagentoGraycoreOrder {
__typename?: 'GraycoreOrder';
id: number;
order_number: string | number;
customer_id: number;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { MagentoGraycoreOrder } from '../../models/responses/order';

export interface MagentoGetGuestOrdersResponse {
graycoreGuestOrders: {
orders: MagentoGraycoreOrder[];
__typename?: string;
orders: MagentoGraycoreOrder[] | null;
}
}
56 changes: 51 additions & 5 deletions libs/order/driver/magento/2.4.1/src/helpers/test-data.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ export class MagentoOrderTestDataFactory {
mockDaffOrderConfigurableItem.order_id = mockDaffOrder.id;

mockMagentoOrderSimpleItem = {
id: null,
__typename: 'OrderItem',
selected_options: [],
entered_options: [],
status: null,
Expand All @@ -269,26 +269,29 @@ export class MagentoOrderTestDataFactory {
product_sku: mockDaffOrderItem.sku,
product_name: mockDaffOrderItem.name,
product_sale_price: {
__typename: 'Money',
value: mockDaffOrderItem.price,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderItem.discount_amount,
currency: 'USD'
},
label: 'Discount'
}],
};
mockMagentoOrderBundleItem = {
id: null,
__typename: 'BundleOrderItem',
selected_options: [],
entered_options: [],
bundle_options: mockDaffOrderCompositeItem.options.map(a => ({
id: null,
__typename: 'ItemSelectedBundleOption',
label: a.option_label,
values: [{
id: null,
__typename: 'ItemSelectedBundleOptionValue',
price: {
value: null,
currency: 'USD'
Expand All @@ -310,20 +313,24 @@ export class MagentoOrderTestDataFactory {
product_sku: mockDaffOrderCompositeItem.sku,
product_name: mockDaffOrderCompositeItem.name,
product_sale_price: {
__typename: 'Money',
value: mockDaffOrderCompositeItem.price,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderCompositeItem.discount_amount,
currency: 'USD'
},
label: 'Discount'
}],
};
mockMagentoOrderConfigurableItem = {
id: null,
__typename: 'OrderItem',
selected_options: mockDaffOrderConfigurableItem.attributes.map(a => ({
__typename: 'OrderItemOption',
label: a.attribute_label,
value: a.value_label
})),
Expand All @@ -340,18 +347,22 @@ export class MagentoOrderTestDataFactory {
product_sku: mockDaffOrderConfigurableItem.sku,
product_name: mockDaffOrderConfigurableItem.name,
product_sale_price: {
__typename: 'Money',
value: mockDaffOrderConfigurableItem.price,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderConfigurableItem.discount_amount,
currency: 'USD'
},
label: 'Discount'
}],
};
mockMagentoOrderAddress = {
__typename: 'OrderAddress',
prefix: mockDaffOrderAddress.prefix,
suffix: mockDaffOrderAddress.suffix,
firstname: mockDaffOrderAddress.firstname,
Expand All @@ -368,69 +379,87 @@ export class MagentoOrderTestDataFactory {
fax: null
};
mockMagentoOrderShipmentTracking = {
__typename: 'ShipmentTracking',
number: mockDaffOrderShipmentTracking.tracking_number,
carrier: mockDaffOrderShipmentTracking.carrier,
title: mockDaffOrderShipmentTracking.title,
};
mockMagentoOrderShipmentItem = {
__typename: 'ShipmentItem',
order_item: mockMagentoOrderSimpleItem,
quantity_shipped: mockDaffOrderShipmentItem.qty
};
mockMagentoOrderShipment = {
__typename: 'OrderShipment',
tracking: [mockMagentoOrderShipmentTracking],
items: [mockMagentoOrderShipmentItem]
};
mockMagentoOrderPayment = {
__typename: 'OrderPaymentMethod',
name: String(mockDaffOrderPayment.payment_id),
type: mockDaffOrderPayment.method,
additional_data: [
{
__typename: 'KeyValue',
name: 'cc_type',
value: mockDaffOrderPayment.cc_type
},
{
__typename: 'KeyValue',
name: 'cc_last4',
value: mockDaffOrderPayment.cc_last4
},
{
__typename: 'KeyValue',
name: 'cc_owner',
value: mockDaffOrderPayment.cc_owner
},
{
__typename: 'KeyValue',
name: 'cc_exp_month',
value: mockDaffOrderPayment.cc_exp_month
},
{
__typename: 'KeyValue',
name: 'cc_exp_year',
value: mockDaffOrderPayment.cc_exp_year
},
]
};
mockMagentoOrderInvoiceItem = {
__typename: 'InvoiceItem',
order_item: mockMagentoOrderSimpleItem,
quantity_invoiced: mockDaffOrderShipmentItem.qty
};
mockMagentoOrderInvoice = {
__typename: 'Invoice',
items: [mockMagentoOrderInvoiceItem],
total: {
__typename: 'InvoiceTotal',
grand_total: {
__typename: 'Money',
value: mockDaffOrderGrandTotal.value,
currency: 'USD'
},
subtotal: {
__typename: 'Money',
value: mockDaffOrderSubTotal.value,
currency: 'USD'
},
total_shipping: {
__typename: 'Money',
value: mockDaffOrderShippingTotal.value,
currency: 'USD'
},
total_tax: {
__typename: 'Money',
value: mockDaffOrderTax.value,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderDiscount.value,
currency: 'USD'
},
Expand All @@ -439,30 +468,39 @@ export class MagentoOrderTestDataFactory {
},
};
mockMagentoOrderCreditItem = {
__typename: 'CreditMemoItem',
order_item: mockMagentoOrderSimpleItem,
quantity_refunded: mockDaffOrderShipmentItem.qty
};
mockMagentoOrderCredit = {
__typename: 'CreditMemo',
items: [mockMagentoOrderCreditItem],
total: {
__typename: 'CreditMemoTotal',
grand_total: {
__typename: 'Money',
value: mockDaffOrderGrandTotal.value,
currency: 'USD'
},
subtotal: {
__typename: 'Money',
value: mockDaffOrderSubTotal.value,
currency: 'USD'
},
total_shipping: {
__typename: 'Money',
value: mockDaffOrderShippingTotal.value,
currency: 'USD'
},
total_tax: {
__typename: 'Money',
value: mockDaffOrderTax.value,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderDiscount.value,
currency: 'USD'
},
Expand All @@ -471,30 +509,38 @@ export class MagentoOrderTestDataFactory {
}
};
mockMagentoOrder = {
__typename: 'GraycoreGuestOrder',
id: String(mockDaffOrder.id),
number: String(mockDaffOrder.id),
order_date: mockDaffOrder.created_at,
carrier: mockDaffOrderShipment.carrier,
shipping_method: mockDaffOrderShipment.method,
total: {
__typename: 'OrderTotal',
grand_total: {
__typename: 'Money',
value: mockDaffOrderGrandTotal.value,
currency: 'USD'
},
subtotal: {
__typename: 'Money',
value: mockDaffOrderSubTotal.value,
currency: 'USD'
},
total_shipping: {
__typename: 'Money',
value: mockDaffOrderShippingTotal.value,
currency: 'USD'
},
total_tax: {
__typename: 'Money',
value: mockDaffOrderTax.value,
currency: 'USD'
},
discounts: [{
__typename: 'Discount',
amount: {
__typename: 'Money',
value: mockDaffOrderDiscount.value,
currency: 'USD'
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { MagentoMoney } from '@daffodil/driver/magento';

export interface MagentoDiscount {
__typename?: 'Discount';
amount: MagentoMoney;
label: string;
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
export interface MagentoOrderAddress {
__typename?: 'OrderAddress';
city: string;
company: string;
country_code: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { MagentoOrderItem } from './order-item'

export interface MagentoOrderCreditItem {
__typename?: 'CreditMemoItem';
order_item: MagentoOrderItem;
quantity_refunded: number;
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { MagentoOrderCreditItem } from './order-credit-item';
import { MagentoOrderTotal } from './order-total';

export interface MagentoOrderCredit {
__typename?: 'CreditMemo';
items: MagentoOrderCreditItem[];
total: MagentoOrderTotal;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import { MagentoOrderBundleItemSelectedOption, MagentoOrderItem } from './order-item'

export type MagentoOrderInvoiceItemTypenames =
'InvoiceItem' |
'BundleInvoiceItem' |
'GiftCardInvoiceItem' |
'DownloadableInvoiceItem';

export interface MagentoOrderInvoiceItem {
__typename?: MagentoOrderInvoiceItemTypenames;
order_item: MagentoOrderItem;
quantity_invoiced: number;
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { MagentoOrderInvoiceItem } from './order-invoice-item';
import { MagentoOrderTotal } from './order-total';

export interface MagentoOrderInvoice {
__typename?: 'Invoice';
items: MagentoOrderInvoiceItem[];
total: MagentoOrderTotal;
};
Loading

0 comments on commit 86dfb7f

Please sign in to comment.