From fd757e09d925ce465d562ce8891c40aaafd2cef0 Mon Sep 17 00:00:00 2001 From: CD Cabrera Date: Tue, 3 Nov 2020 09:09:30 -0500 Subject: [PATCH] fix(openshiftView,rhelView): issues/468 sort measurementType (#487) * inventoryList, enforce sort on specific columns * openshiftView, rhelView, activate sorting for measurementType * rhsmApiTypes, expand allowed sort types --- .../__tests__/inventoryList.test.js | 1 + src/components/inventoryList/inventoryList.js | 4 ++++ .../__snapshots__/openshiftView.test.js.snap | 8 ++++---- src/components/openshiftView/openshiftView.js | 2 +- .../__snapshots__/rhelView.test.js.snap | 8 ++++---- src/components/rhelView/rhelView.js | 2 +- .../__snapshots__/index.test.js.snap | 4 ++++ src/types/rhsmApiTypes.js | 20 +++++++++---------- 8 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/components/inventoryList/__tests__/inventoryList.test.js b/src/components/inventoryList/__tests__/inventoryList.test.js index f7d6db99c..e715be98c 100644 --- a/src/components/inventoryList/__tests__/inventoryList.test.js +++ b/src/components/inventoryList/__tests__/inventoryList.test.js @@ -110,6 +110,7 @@ describe('InventoryList Component', () => { componentInstance.onColumnSort({}, { direction: SortByDirection.asc, id: 'sockets' }); componentInstance.onColumnSort({}, { direction: SortByDirection.desc, id: 'sockets' }); + componentInstance.onColumnSort({}, { direction: SortByDirection.asc, id: 'loremIpsumBrokenOnPurpose' }); componentInstance.onColumnSort({}, { direction: SortByDirection.asc, id: 'sockets' }); expect(mockDispatch.mock.calls).toMatchSnapshot('dispatch filter'); diff --git a/src/components/inventoryList/inventoryList.js b/src/components/inventoryList/inventoryList.js index afac64cf4..cde160da4 100644 --- a/src/components/inventoryList/inventoryList.js +++ b/src/components/inventoryList/inventoryList.js @@ -53,6 +53,10 @@ class InventoryList extends React.Component { const updatedSortColumn = Object.values(SORT_TYPES).find(value => _camelCase(value) === id); let updatedDirection; + if (!updatedSortColumn) { + return; + } + switch (direction) { case SortByDirection.desc: updatedDirection = SORT_DIRECTION_TYPES.DESCENDING; diff --git a/src/components/openshiftView/__tests__/__snapshots__/openshiftView.test.js.snap b/src/components/openshiftView/__tests__/__snapshots__/openshiftView.test.js.snap index 852e8cfc1..a2d8c54dc 100644 --- a/src/components/openshiftView/__tests__/__snapshots__/openshiftView.test.js.snap +++ b/src/components/openshiftView/__tests__/__snapshots__/openshiftView.test.js.snap @@ -115,7 +115,7 @@ exports[`OpenshiftView Component should display an alternate graph on query-stri Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "cores", @@ -261,7 +261,7 @@ exports[`OpenshiftView Component should have a fallback title: title 1`] = ` Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "cores", @@ -567,7 +567,7 @@ Object { Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "sockets", @@ -711,7 +711,7 @@ exports[`OpenshiftView Component should render a non-connected component: non-co Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "cores", diff --git a/src/components/openshiftView/openshiftView.js b/src/components/openshiftView/openshiftView.js index 3046a221c..7b0dc0c92 100644 --- a/src/components/openshiftView/openshiftView.js +++ b/src/components/openshiftView/openshiftView.js @@ -349,7 +349,7 @@ OpenshiftView.defaultProps = { ); }, - isSortable: false + isSortable: true }, { id: 'sockets', diff --git a/src/components/rhelView/__tests__/__snapshots__/rhelView.test.js.snap b/src/components/rhelView/__tests__/__snapshots__/rhelView.test.js.snap index aff778e4f..a6b9e4a4d 100644 --- a/src/components/rhelView/__tests__/__snapshots__/rhelView.test.js.snap +++ b/src/components/rhelView/__tests__/__snapshots__/rhelView.test.js.snap @@ -102,7 +102,7 @@ exports[`RhelView Component should display an alternate graph on query-string up Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "sockets", @@ -233,7 +233,7 @@ exports[`RhelView Component should have a fallback title: title 1`] = ` Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "sockets", @@ -532,7 +532,7 @@ Object { Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "sockets", @@ -656,7 +656,7 @@ exports[`RhelView Component should render a non-connected component: non-connect Object { "cell": [Function], "id": "measurementType", - "isSortable": false, + "isSortable": true, }, Object { "id": "sockets", diff --git a/src/components/rhelView/rhelView.js b/src/components/rhelView/rhelView.js index 18c85259a..ceb94af6c 100644 --- a/src/components/rhelView/rhelView.js +++ b/src/components/rhelView/rhelView.js @@ -271,7 +271,7 @@ RhelView.defaultProps = { ); }, - isSortable: false + isSortable: true }, { id: 'sockets', diff --git a/src/types/__tests__/__snapshots__/index.test.js.snap b/src/types/__tests__/__snapshots__/index.test.js.snap index 736ff99d6..e77fa16cd 100644 --- a/src/types/__tests__/__snapshots__/index.test.js.snap +++ b/src/types/__tests__/__snapshots__/index.test.js.snap @@ -91,6 +91,7 @@ Object { "CORES": "cores", "DATE": "last_seen", "HARDWARE": "hardware_type", + "MEASUREMENT": "measurement_type", "NAME": "display_name", "SOCKETS": "sockets", }, @@ -278,6 +279,7 @@ Object { "CORES": "cores", "DATE": "last_seen", "HARDWARE": "hardware_type", + "MEASUREMENT": "measurement_type", "NAME": "display_name", "SOCKETS": "sockets", }, @@ -464,6 +466,7 @@ Object { "CORES": "cores", "DATE": "last_seen", "HARDWARE": "hardware_type", + "MEASUREMENT": "measurement_type", "NAME": "display_name", "SOCKETS": "sockets", }, @@ -654,6 +657,7 @@ Object { "CORES": "cores", "DATE": "last_seen", "HARDWARE": "hardware_type", + "MEASUREMENT": "measurement_type", "NAME": "display_name", "SOCKETS": "sockets", }, diff --git a/src/types/rhsmApiTypes.js b/src/types/rhsmApiTypes.js index f6b19dbe0..8e0091e55 100644 --- a/src/types/rhsmApiTypes.js +++ b/src/types/rhsmApiTypes.js @@ -197,11 +197,12 @@ const RHSM_API_QUERY_GRANULARITY_TYPES = { /** * RHSM API query/search parameter SORT type values. * - * @type {{CORES: string, DATE: string, HARDWARE: string, SOCKETS: string, NAME: string}} + * @type {{CORES: string, DATE: string, HARDWARE: string, SOCKETS: string, MEASUREMENT: string, NAME: string}} */ const RHSM_API_QUERY_SORT_TYPES = { CORES: 'cores', HARDWARE: 'hardware_type', + MEASUREMENT: 'measurement_type', DATE: 'last_seen', NAME: 'display_name', SOCKETS: 'sockets' @@ -329,17 +330,16 @@ const RHSM_API_QUERY_TYPES = { * RHSM_API_RESPONSE_PRODUCTS_DATA: string, RHSM_API_QUERY_TYPES: {GRANULARITY: string, TALLY_SYNC: string, * DIRECTION: string, END_DATE: string, SLA: string, START_DATE: string, LIMIT: string, UOM: string, * TALLY_REPORT: string, USAGE: string, SORT: string, OFFSET: string, CONDUIT_SYNC: string}, - * RHSM_API_RESPONSE_LINKS: string, RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES: {OFFSET: string, - * LIMIT: string}, RHSM_API_PATH_ID_TYPES: {RHEL_ARM: string, RHEL_WORKSTATION: string, - * RHEL_DESKTOP: string, RHEL: string, RHEL_SERVER: string, RHEL_IBM_Z: string, - * RHEL_COMPUTE_NODE: string, RHEL_IBM_POWER: string, RHEL_X86: string, OPENSHIFT: string}, - * RHSM_API_QUERY_SET_OPTIN_TYPES: {TALLY_SYNC: string, TALLY_REPORT: string, CONDUIT_SYNC: string}, - * RHSM_API_QUERY_USAGE_TYPES: {UNSPECIFIED: string, DISASTER: string, DEVELOPMENT: string, - * PRODUCTION: string}, RHSM_API_QUERY_SLA_TYPES: {PREMIUM: string, SELF: string, NONE: string, - * STANDARD: string}, RHSM_API_QUERY_SET_INVENTORY_TYPES: {UOM: string, USAGE: string, + * RHSM_API_RESPONSE_LINKS: string, RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES: {OFFSET: string, LIMIT: string}, + * RHSM_API_PATH_ID_TYPES: {RHEL_ARM: string, RHEL_WORKSTATION: string, RHEL_DESKTOP: string, RHEL: string, + * RHEL_SERVER: string, RHEL_IBM_Z: string, RHEL_COMPUTE_NODE: string, RHEL_IBM_POWER: string, RHEL_X86: string + * OPENSHIFT: string}, RHSM_API_QUERY_SET_OPTIN_TYPES: {TALLY_SYNC: string, TALLY_REPORT: string, + * CONDUIT_SYNC: string}, RHSM_API_QUERY_USAGE_TYPES: {UNSPECIFIED: string, DISASTER: string, + * DEVELOPMENT: string, PRODUCTION: string}, RHSM_API_QUERY_SLA_TYPES: {PREMIUM: string, SELF: string, + * NONE: string, STANDARD: string}, RHSM_API_QUERY_SET_INVENTORY_TYPES: {UOM: string, USAGE: string, * DIRECTION: string, SORT: string, OFFSET: string, SLA: string, LIMIT: string}, * RHSM_API_QUERY_SORT_TYPES: {CORES: string, DATE: string, HARDWARE: string, SOCKETS: string, - * NAME: string}, RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES: {HYPERVISOR_SOCKETS: string, + * MEASUREMENT: string, NAME: string}, RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES: {HYPERVISOR_SOCKETS: string, * CORES: string, DATE: string, SOCKETS: string, HAS_DATA: string, PHYSICAL_SOCKETS: string, * HYPERVISOR_CORES: string, PHYSICAL_CORES: string}, RHSM_API_QUERY_UOM_TYPES: {CORES: string, * SOCKETS: string}, RHSM_API_RESPONSE_LINKS_TYPES: string,