From 5e95a61dc35acd26420f616dae20c77b0474429e Mon Sep 17 00:00:00 2001 From: CD Cabrera Date: Thu, 24 Feb 2022 11:09:18 -0500 Subject: [PATCH] feat(inventoryCardSubscriptions): ent-4772 product_name sort (#896) * config, allow sort on products, openshift, rhel, rhosak * rhsmConstants, expand sort for product_name, total_capacity --- ...ntoryCardSubscriptionsContext.test.js.snap | 2 + .../productViewContext.test.js.snap | 8 ++-- ...productViewOpenShiftContainer.test.js.snap | 4 +- .../__snapshots__/redirect.test.js.snap | 4 +- src/config/product.openshiftContainer.js | 4 +- src/config/product.rhel.js | 4 +- src/config/product.rhosak.js | 4 +- .../__snapshots__/rhsmConstants.test.js.snap | 8 ++++ src/services/rhsm/rhsmConstants.js | 41 ++++++++++++------- .../__snapshots__/index.test.js.snap | 8 ++++ 10 files changed, 59 insertions(+), 28 deletions(-) diff --git a/src/components/inventoryCardSubscriptions/__tests__/__snapshots__/inventoryCardSubscriptionsContext.test.js.snap b/src/components/inventoryCardSubscriptions/__tests__/__snapshots__/inventoryCardSubscriptionsContext.test.js.snap index 5da8789cb..f7f32e7ac 100644 --- a/src/components/inventoryCardSubscriptions/__tests__/__snapshots__/inventoryCardSubscriptionsContext.test.js.snap +++ b/src/components/inventoryCardSubscriptions/__tests__/__snapshots__/inventoryCardSubscriptionsContext.test.js.snap @@ -4,9 +4,11 @@ exports[`InventoryCardSubscriptionsContext should expect specific sort propertie Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", } `; diff --git a/src/components/productView/__tests__/__snapshots__/productViewContext.test.js.snap b/src/components/productView/__tests__/__snapshots__/productViewContext.test.js.snap index 8e38d1be0..4036c15f5 100644 --- a/src/components/productView/__tests__/__snapshots__/productViewContext.test.js.snap +++ b/src/components/productView/__tests__/__snapshots__/productViewContext.test.js.snap @@ -85,7 +85,7 @@ Object { "initialSubscriptionsInventoryFilters": Array [ Object { "id": "productName", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { @@ -104,7 +104,7 @@ Object { "cellWidth": 15, "header": [Function], "id": "totalCapacity", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { @@ -207,7 +207,7 @@ Object { "initialSubscriptionsInventoryFilters": Array [ Object { "id": "productName", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { @@ -226,7 +226,7 @@ Object { "cellWidth": 15, "header": [Function], "id": "totalCapacity", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { diff --git a/src/components/productView/__tests__/__snapshots__/productViewOpenShiftContainer.test.js.snap b/src/components/productView/__tests__/__snapshots__/productViewOpenShiftContainer.test.js.snap index 60b46a238..d3849df4d 100644 --- a/src/components/productView/__tests__/__snapshots__/productViewOpenShiftContainer.test.js.snap +++ b/src/components/productView/__tests__/__snapshots__/productViewOpenShiftContainer.test.js.snap @@ -99,7 +99,7 @@ exports[`ProductViewOpenShiftContainer Component should render a basic component "initialSubscriptionsInventoryFilters": Array [ Object { "id": "productName", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { @@ -118,7 +118,7 @@ exports[`ProductViewOpenShiftContainer Component should render a basic component "cellWidth": 15, "header": [Function], "id": "totalCapacity", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { diff --git a/src/components/router/__tests__/__snapshots__/redirect.test.js.snap b/src/components/router/__tests__/__snapshots__/redirect.test.js.snap index cdbf52ccd..f39fab737 100644 --- a/src/components/router/__tests__/__snapshots__/redirect.test.js.snap +++ b/src/components/router/__tests__/__snapshots__/redirect.test.js.snap @@ -116,7 +116,7 @@ Object { "initialSubscriptionsInventoryFilters": Array [ Object { "id": "productName", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { @@ -135,7 +135,7 @@ Object { "cellWidth": 15, "header": [Function], "id": "totalCapacity", - "isSortable": false, + "isSortable": true, "isWrappable": true, }, Object { diff --git a/src/config/product.openshiftContainer.js b/src/config/product.openshiftContainer.js index 01391572a..f329b5dd1 100644 --- a/src/config/product.openshiftContainer.js +++ b/src/config/product.openshiftContainer.js @@ -177,7 +177,7 @@ const config = { initialSubscriptionsInventoryFilters: [ { id: 'productName', - isSortable: false, + isSortable: true, isWrappable: true }, { @@ -195,7 +195,7 @@ const config = { { id: 'totalCapacity', header: data => translate('curiosity-inventory.header', { context: ['subscriptions', data?.uom?.value] }), - isSortable: false, + isSortable: true, cellWidth: 15, isWrappable: true }, diff --git a/src/config/product.rhel.js b/src/config/product.rhel.js index a77aa912b..606edc5b0 100644 --- a/src/config/product.rhel.js +++ b/src/config/product.rhel.js @@ -193,7 +193,7 @@ const config = { initialSubscriptionsInventoryFilters: [ { id: 'productName', - isSortable: false, + isSortable: true, isWrappable: true }, { @@ -211,7 +211,7 @@ const config = { { id: 'totalCapacity', header: data => translate('curiosity-inventory.header', { context: ['subscriptions', data?.uom?.value] }), - isSortable: false, + isSortable: true, cellWidth: 10, isWrappable: true }, diff --git a/src/config/product.rhosak.js b/src/config/product.rhosak.js index 95d32960f..8668d0108 100644 --- a/src/config/product.rhosak.js +++ b/src/config/product.rhosak.js @@ -183,7 +183,7 @@ const config = { initialSubscriptionsInventoryFilters: [ { id: 'productName', - isSortable: false, + isSortable: true, isWrappable: true }, { @@ -201,7 +201,7 @@ const config = { { id: 'totalCapacity', header: data => translate('curiosity-inventory.header', { context: ['subscriptions', data?.uom?.value] }), - isSortable: false, + isSortable: true, cellWidth: 10, isWrappable: true }, diff --git a/src/services/rhsm/__tests__/__snapshots__/rhsmConstants.test.js.snap b/src/services/rhsm/__tests__/__snapshots__/rhsmConstants.test.js.snap index 72c760521..422fd3fa9 100644 --- a/src/services/rhsm/__tests__/__snapshots__/rhsmConstants.test.js.snap +++ b/src/services/rhsm/__tests__/__snapshots__/rhsmConstants.test.js.snap @@ -51,9 +51,11 @@ Object { "RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_SET_INVENTORY_TYPES": Object { @@ -215,9 +217,11 @@ Object { "RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_SET_INVENTORY_TYPES": Object { @@ -380,9 +384,11 @@ Object { "RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_SET_INVENTORY_TYPES": Object { @@ -549,9 +555,11 @@ Object { "RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_SET_INVENTORY_TYPES": Object { diff --git a/src/services/rhsm/rhsmConstants.js b/src/services/rhsm/rhsmConstants.js index 378c6acca..7870c8b5f 100644 --- a/src/services/rhsm/rhsmConstants.js +++ b/src/services/rhsm/rhsmConstants.js @@ -211,15 +211,17 @@ const RHSM_API_QUERY_INVENTORY_SORT_DIRECTION_TYPES = { /** * RHSM API query/search parameter SORT type values for SUBSCRIPTIONS. * - * @type {{QUANTITY: string, USAGE: string, NEXT_EVENT_TYPE: string, NEXT_EVENT_DATE: string, SKU: string, - * SERVICE_LEVEL: string}} + * @type {{QUANTITY: string, USAGE: string, NEXT_EVENT_TYPE: string, NEXT_EVENT_DATE: string, + * TOTAL_CAPACITY: string, PRODUCT_NAME: string, SKU: string, SERVICE_LEVEL: string}} */ const RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES = { NEXT_EVENT_DATE: 'next_event_date', NEXT_EVENT_TYPE: 'next_event_type', + PRODUCT_NAME: 'product_name', QUANTITY: 'quantity', SKU: 'sku', SERVICE_LEVEL: 'service_level', + TOTAL_CAPACITY: 'total_capacity', USAGE: 'usage' }; @@ -276,24 +278,35 @@ const RHSM_API_QUERY_SET_TYPES = { * RHSM constants. * * @type {{RHSM_API_QUERY_SET_TALLY_CAPACITY_TYPES: {GRANULARITY: string, USAGE: string, END_DATE: string, SLA: string, - * START_DATE: string}, RHSM_API_RESPONSE_DATA: string, RHSM_API_PATH_PRODUCT_TYPES: {RHEL_ARM: string, - * OPENSHIFT_METRICS: string, SATELLITE: string, RHEL_WORKSTATION: string, RHOSAK: string, RHEL_COMPUTE_NODE: string, - * RHEL_X86: string, OPENSHIFT: string, SATELLITE_SERVER: string, OPENSHIFT_DEDICATED_METRICS: string, - * RHEL_DESKTOP: string, RHEL: string, SATELLITE_CAPSULE: string, RHEL_SERVER: string, RHEL_IBM_Z: string, - * RHEL_IBM_POWER: string}, RHSM_API_PATH_METRIC_TYPES: {CORES: string, STORAGE_GIBIBYTES: string, SOCKETS: string, - * INSTANCE_HOURS: string, TRANSFER_GIBIBYTES: string, CORE_SECONDS: string}, - * RHSM_API_RESPONSE_TALLY_DATA_TYPES: {DATE: string, HAS_DATA: string, VALUE: string}, + * START_DATE: string}, RHSM_API_RESPONSE_DATA: string, RHSM_API_QUERY_INVENTORY_SORT_TYPES: {CORES: string, + * CORE_HOURS: string, HARDWARE: string, SOCKETS: string, MEASUREMENT: string, LAST_SEEN: string, NAME: string}, + * RHSM_API_PATH_PRODUCT_TYPES: {RHEL_ARM: string, OPENSHIFT_METRICS: string, SATELLITE: string, + * RHEL_WORKSTATION: string, RHOSAK: string, RHEL_COMPUTE_NODE: string, RHEL_X86: string, OPENSHIFT: string, + * SATELLITE_SERVER: string, OPENSHIFT_DEDICATED_METRICS: string, RHEL_DESKTOP: string, RHEL: string, + * SATELLITE_CAPSULE: string, RHEL_SERVER: string, RHEL_IBM_Z: string, RHEL_IBM_POWER: string}, + * RHSM_API_PATH_METRIC_TYPES: {CORES: string, STORAGE_GIBIBYTES: string, SOCKETS: string, INSTANCE_HOURS: string, + * TRANSFER_GIBIBYTES: string, CORE_SECONDS: string}, RHSM_API_RESPONSE_TALLY_DATA_TYPES: {DATE: string, + * HAS_DATA: string, VALUE: string}, RHSM_API_RESPONSE_INSTANCES_META_TYPES: {MEASUREMENTS: string, PRODUCT: string, + * COUNT: string}, RHSM_API_RESPONSE_INSTANCES_DATA_TYPES: {MEASUREMENTS: string, SUBSCRIPTION_MANAGER_ID: string, + * INVENTORY_ID: string, NUMBER_OF_GUESTS: string, DISPLAY_NAME: string, LAST_SEEN: string}, * RHSM_API_RESPONSE_SLA_TYPES: {PREMIUM: string, SELF: string, NONE: string, STANDARD: string}, * RHSM_API_QUERY_USAGE_TYPES: {UNSPECIFIED: string, DISASTER: string, DEVELOPMENT: string, PRODUCTION: string}, * RHSM_API_RESPONSE_ERROR_CODE_TYPES: {GENERIC: string, OPTIN: string}, RHSM_API_QUERY_SLA_TYPES: {PREMIUM: string, - * SELF: string, NONE: string, STANDARD: string}, RHSM_API_RESPONSE_TALLY_META_TYPES: {TOTAL_MONTHLY: string, - * DATE: string, HAS_CLOUDIGRADE_DATA: string, PRODUCT: string, HAS_CLOUDIGRADE_MISMATCH: string, HAS_DATA: string, - * METRIC_ID: string, COUNT: string, VALUE: string}, RHSM_API_QUERY_UOM_TYPES: {CORES: string, SOCKETS: string}, + * SELF: string, NONE: string, STANDARD: string}, RHSM_API_QUERY_SET_INVENTORY_TYPES: {UOM: string, USAGE: string, + * DIRECTION: string, SORT: string, END_DATE: string, OFFSET: string, SLA: string, LIMIT: string, START_DATE: string, + * DISPLAY_NAME: string}, RHSM_API_RESPONSE_META_TYPES: {PRODUCT: string, COUNT: string}, + * RHSM_API_RESPONSE_TALLY_META_TYPES: {TOTAL_MONTHLY: string, DATE: string, PRODUCT: string, + * HAS_CLOUDIGRADE_DATA: string, HAS_CLOUDIGRADE_MISMATCH: string, HAS_DATA: string, METRIC_ID: string, + * COUNT: string, VALUE: string}, RHSM_API_QUERY_UOM_TYPES: {CORES: string, SOCKETS: string}, * RHSM_API_QUERY_GRANULARITY_TYPES: {WEEKLY: string, QUARTERLY: string, DAILY: string, MONTHLY: string}, * RHSM_API_RESPONSE_META: string, RHSM_API_RESPONSE_UOM_TYPES: {CORES: string, SOCKETS: string}, * RHSM_API_RESPONSE_GRANULARITY_TYPES: {WEEKLY: string, QUARTERLY: string, DAILY: string, MONTHLY: string}, - * RHSM_API_QUERY_SET_TYPES: {GRANULARITY: string, USAGE: string, END_DATE: string, SLA: string, START_DATE: string}, - * RHSM_API_RESPONSE_USAGE_TYPES: {UNSPECIFIED: string, DISASTER: string, DEVELOPMENT: string, PRODUCTION: string}}} + * RHSM_API_QUERY_SET_TYPES: {UOM: string, GRANULARITY: string, USAGE: string, DIRECTION: string, SORT: string, + * END_DATE: string, OFFSET: string, SLA: string, LIMIT: string, START_DATE: string, DISPLAY_NAME: string}, + * RHSM_API_QUERY_INVENTORY_SUBSCRIPTIONS_SORT_TYPES: {QUANTITY: string, USAGE: string, NEXT_EVENT_TYPE: string, + * NEXT_EVENT_DATE: string, TOTAL_CAPACITY: string, PRODUCT_NAME: string, SKU: string, SERVICE_LEVEL: string}, + * RHSM_API_RESPONSE_USAGE_TYPES: {UNSPECIFIED: string, DISASTER: string, DEVELOPMENT: string, PRODUCTION: string}, + * RHSM_API_QUERY_INVENTORY_SORT_DIRECTION_TYPES: {ASCENDING: string, DESCENDING: string}}} */ const rhsmConstants = { RHSM_API_PATH_PRODUCT_TYPES, diff --git a/src/types/__tests__/__snapshots__/index.test.js.snap b/src/types/__tests__/__snapshots__/index.test.js.snap index 104bacc91..4e946d404 100644 --- a/src/types/__tests__/__snapshots__/index.test.js.snap +++ b/src/types/__tests__/__snapshots__/index.test.js.snap @@ -130,9 +130,11 @@ Object { "RHSM_API_QUERY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_TYPES": Object { @@ -367,9 +369,11 @@ Object { "RHSM_API_QUERY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_TYPES": Object { @@ -603,9 +607,11 @@ Object { "RHSM_API_QUERY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_TYPES": Object { @@ -843,9 +849,11 @@ Object { "RHSM_API_QUERY_SUBSCRIPTIONS_SORT_TYPES": Object { "NEXT_EVENT_DATE": "next_event_date", "NEXT_EVENT_TYPE": "next_event_type", + "PRODUCT_NAME": "product_name", "QUANTITY": "quantity", "SERVICE_LEVEL": "service_level", "SKU": "sku", + "TOTAL_CAPACITY": "total_capacity", "USAGE": "usage", }, "RHSM_API_QUERY_TYPES": Object {