From e7f2662b62378f701d23a3c242f1c9e0e826f253 Mon Sep 17 00:00:00 2001
From: CD Cabrera
Date: Thu, 17 Nov 2022 02:38:36 -0500
Subject: [PATCH] refactor(deprecated): sw-235 remove unused redux, components
---
.../graphCard.deprecated.test.js.snap | 241 --
.../graphCardChart.deprecated.test.js.snap | 80 -
.../__tests__/graphCard.deprecated.test.js | 102 -
.../graphCardChart.deprecated.test.js | 95 -
.../graphCard/graphCard.deprecated.js | 157 --
.../graphCard/graphCardChart.deprecated.js | 100 -
.../__tests__/__snapshots__/i18n.test.js.snap | 25 -
.../inventoryList.deprecated.test.js.snap | 561 -----
.../inventoryList.deprecated.test.js | 152 --
.../inventoryCard/inventoryList.deprecated.js | 379 ---
.../guestsList.deprecated.test.js.snap | 267 --
.../__tests__/guestsList.deprecated.test.js | 83 -
.../inventoryGuests/guestsList.deprecated.js | 267 --
src/components/productView/productView.js | 101 +-
.../__snapshots__/apiQueries.test.js.snap | 37 -
src/redux/common/__tests__/apiQueries.test.js | 20 -
src/redux/common/apiQueries.js | 37 -
src/redux/common/index.js | 3 +-
src/redux/index.js | 16 +-
.../graphCardSelectors.test.js.snap | 2179 -----------------
.../guestsListSelectors.test.js.snap | 84 -
.../inventoryListSelectors.test.js.snap | 275 ---
.../__snapshots__/userSelectors.test.js.snap | 76 -
.../__tests__/graphCardSelectors.test.js | 413 ----
.../__tests__/guestsListSelectors.test.js | 131 -
.../__tests__/inventoryListSelectors.test.js | 273 ---
.../selectors/__tests__/userSelectors.test.js | 76 -
src/redux/selectors/graphCardSelectors.js | 208 --
src/redux/selectors/guestsListSelectors.js | 79 -
src/redux/selectors/index.js | 13 -
src/redux/selectors/inventoryListSelectors.js | 161 --
src/redux/selectors/userSelectors.js | 74 -
.../__snapshots__/index.test.js.snap | 847 -------
src/types/__tests__/index.test.js | 8 -
src/types/index.js | 7 -
src/types/rhsmApiTypes.js | 451 ----
tests/__snapshots__/code.test.js.snap | 1 -
tests/__snapshots__/dist.test.js.snap | 25 +-
38 files changed, 18 insertions(+), 8086 deletions(-)
delete mode 100644 src/components/graphCard/__tests__/__snapshots__/graphCard.deprecated.test.js.snap
delete mode 100644 src/components/graphCard/__tests__/__snapshots__/graphCardChart.deprecated.test.js.snap
delete mode 100644 src/components/graphCard/__tests__/graphCard.deprecated.test.js
delete mode 100644 src/components/graphCard/__tests__/graphCardChart.deprecated.test.js
delete mode 100644 src/components/graphCard/graphCard.deprecated.js
delete mode 100644 src/components/graphCard/graphCardChart.deprecated.js
delete mode 100644 src/components/inventoryCard/__tests__/__snapshots__/inventoryList.deprecated.test.js.snap
delete mode 100644 src/components/inventoryCard/__tests__/inventoryList.deprecated.test.js
delete mode 100644 src/components/inventoryCard/inventoryList.deprecated.js
delete mode 100644 src/components/inventoryGuests/__tests__/__snapshots__/guestsList.deprecated.test.js.snap
delete mode 100644 src/components/inventoryGuests/__tests__/guestsList.deprecated.test.js
delete mode 100644 src/components/inventoryGuests/guestsList.deprecated.js
delete mode 100644 src/redux/common/__tests__/__snapshots__/apiQueries.test.js.snap
delete mode 100644 src/redux/common/__tests__/apiQueries.test.js
delete mode 100644 src/redux/common/apiQueries.js
delete mode 100644 src/redux/selectors/__tests__/__snapshots__/graphCardSelectors.test.js.snap
delete mode 100644 src/redux/selectors/__tests__/__snapshots__/guestsListSelectors.test.js.snap
delete mode 100644 src/redux/selectors/__tests__/__snapshots__/inventoryListSelectors.test.js.snap
delete mode 100644 src/redux/selectors/__tests__/__snapshots__/userSelectors.test.js.snap
delete mode 100644 src/redux/selectors/__tests__/graphCardSelectors.test.js
delete mode 100644 src/redux/selectors/__tests__/guestsListSelectors.test.js
delete mode 100644 src/redux/selectors/__tests__/inventoryListSelectors.test.js
delete mode 100644 src/redux/selectors/__tests__/userSelectors.test.js
delete mode 100644 src/redux/selectors/graphCardSelectors.js
delete mode 100644 src/redux/selectors/guestsListSelectors.js
delete mode 100644 src/redux/selectors/index.js
delete mode 100644 src/redux/selectors/inventoryListSelectors.js
delete mode 100644 src/redux/selectors/userSelectors.js
delete mode 100644 src/types/__tests__/__snapshots__/index.test.js.snap
delete mode 100644 src/types/__tests__/index.test.js
delete mode 100644 src/types/index.js
delete mode 100644 src/types/rhsmApiTypes.js
diff --git a/src/components/graphCard/__tests__/__snapshots__/graphCard.deprecated.test.js.snap b/src/components/graphCard/__tests__/__snapshots__/graphCard.deprecated.test.js.snap
deleted file mode 100644
index ce9ecdbe5..000000000
--- a/src/components/graphCard/__tests__/__snapshots__/graphCard.deprecated.test.js.snap
+++ /dev/null
@@ -1,241 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`GraphCard Component should render a non-connected component: non-connected 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`GraphCard Component should render multiple states: error state 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`GraphCard Component should render multiple states: pending state 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`GraphCard Component should return an empty render when disabled: disabled component 1`] = `""`;
diff --git a/src/components/graphCard/__tests__/__snapshots__/graphCardChart.deprecated.test.js.snap b/src/components/graphCard/__tests__/__snapshots__/graphCardChart.deprecated.test.js.snap
deleted file mode 100644
index 2043e28d9..000000000
--- a/src/components/graphCard/__tests__/__snapshots__/graphCardChart.deprecated.test.js.snap
+++ /dev/null
@@ -1,80 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`GraphCardChart Component should filter result sets: filtered dataSets 1`] = `
-[
- {
- "data": [
- {
- "date": 2019-06-01T00:00:00.000Z,
- "x": 0,
- "y": 10,
- },
- {
- "date": 2019-06-08T00:00:00.000Z,
- "x": 1,
- "y": 12,
- },
- {
- "date": 2019-06-25T00:00:00.000Z,
- "x": 2,
- "y": 3,
- },
- ],
- "id": "loremIpsumSockets",
- "isStacked": true,
- "isThreshold": false,
- "strokeWidth": 2,
- },
- {
- "data": [
- {
- "date": 2019-06-01T00:00:00.000Z,
- "x": 0,
- "y": 10,
- },
- {
- "date": 2019-06-08T00:00:00.000Z,
- "x": 1,
- "y": 12,
- },
- {
- "date": 2019-06-25T00:00:00.000Z,
- "x": 2,
- "y": 3,
- },
- ],
- "id": "thresholdLoremIpsumSockets",
- "isStacked": false,
- "isThreshold": true,
- "stroke": "#4cb140",
- "strokeDasharray": "4,3",
- "strokeWidth": 3,
- },
-]
-`;
-
-exports[`GraphCardChart Component should render a basic component: basic 1`] = `
-
-`;
diff --git a/src/components/graphCard/__tests__/graphCard.deprecated.test.js b/src/components/graphCard/__tests__/graphCard.deprecated.test.js
deleted file mode 100644
index b295b6db9..000000000
--- a/src/components/graphCard/__tests__/graphCard.deprecated.test.js
+++ /dev/null
@@ -1,102 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { GraphCard } from '../graphCard.deprecated';
-import {
- RHSM_API_QUERY_GRANULARITY_TYPES as GRANULARITY_TYPES,
- RHSM_API_QUERY_TYPES
-} from '../../../types/rhsmApiTypes';
-
-describe('GraphCard Component', () => {
- it('should render a non-connected component', async () => {
- const props = {
- useProduct: () => ({ productId: 'lorem' }),
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
- [RHSM_API_QUERY_TYPES.END_DATE]: '2021-02-24T23:59:59.999Z',
- [RHSM_API_QUERY_TYPES.START_DATE]: '2021-01-25T00:00:00.000Z'
- })
- };
- const component = await mountHookComponent();
-
- expect(component).toMatchSnapshot('non-connected');
- });
-
- it('should render multiple states', async () => {
- const props = {
- graphData: {
- physicalSockets: [
- {
- date: new Date('2019-06-01T00:00:00Z'),
- y: 10,
- x: 0
- },
- {
- date: new Date('2019-06-08T00:00:00Z'),
- y: 12,
- x: 1
- },
- {
- date: new Date('2019-06-25T00:00:00Z'),
- y: 3,
- x: 2
- }
- ]
- },
- useProduct: () => ({ productId: 'lorem' }),
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
- [RHSM_API_QUERY_TYPES.END_DATE]: '2021-02-24T23:59:59.999Z',
- [RHSM_API_QUERY_TYPES.START_DATE]: '2021-01-25T00:00:00.000Z'
- })
- };
- const component = await shallowHookComponent();
-
- component.setProps({
- error: true
- });
-
- expect(component).toMatchSnapshot('error state');
-
- component.setProps({
- error: false,
- pending: true
- });
-
- expect(component).toMatchSnapshot('pending state');
- });
-
- it('should return an empty render when disabled', () => {
- const props = {
- isDisabled: true,
- useProduct: () => ({ productId: 'lorem' }),
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
- [RHSM_API_QUERY_TYPES.END_DATE]: '2021-02-24T23:59:59.999Z',
- [RHSM_API_QUERY_TYPES.START_DATE]: '2021-01-25T00:00:00.000Z'
- })
- };
- const component = shallow();
-
- expect(component).toMatchSnapshot('disabled component');
- });
-
- it('should allow a custom display for card actions', async () => {
- const actionDisplay = jest.fn();
- const props = {
- useProduct: () => ({ productId: 'lorem' }),
- useProductGraphConfig: () => ({
- settings: {
- actionDisplay
- }
- }),
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
- [RHSM_API_QUERY_TYPES.END_DATE]: '2021-02-24T23:59:59.999Z',
- [RHSM_API_QUERY_TYPES.START_DATE]: '2021-01-25T00:00:00.000Z'
- })
- };
-
- shallow();
- expect(actionDisplay).toHaveBeenCalledTimes(1);
- });
-});
diff --git a/src/components/graphCard/__tests__/graphCardChart.deprecated.test.js b/src/components/graphCard/__tests__/graphCardChart.deprecated.test.js
deleted file mode 100644
index da9eee73b..000000000
--- a/src/components/graphCard/__tests__/graphCardChart.deprecated.test.js
+++ /dev/null
@@ -1,95 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { GraphCardChart } from '../graphCardChart.deprecated';
-import {
- RHSM_API_QUERY_GRANULARITY_TYPES as GRANULARITY_TYPES,
- RHSM_API_QUERY_TYPES
-} from '../../../types/rhsmApiTypes';
-import { Chart } from '../../chart/chart';
-
-describe('GraphCardChart Component', () => {
- it('should render a basic component', () => {
- const props = {
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
- })
- };
- const component = shallow();
-
- expect(component).toMatchSnapshot('basic');
- });
-
- it('should filter result sets', async () => {
- const props = {
- graphData: {
- loremIpsumSockets: [
- {
- date: new Date('2019-06-01T00:00:00Z'),
- y: 10,
- x: 0
- },
- {
- date: new Date('2019-06-08T00:00:00Z'),
- y: 12,
- x: 1
- },
- {
- date: new Date('2019-06-25T00:00:00Z'),
- y: 3,
- x: 2
- }
- ],
- dolorSitSockets: [
- {
- date: new Date('2019-06-01T00:00:00Z'),
- y: 10,
- x: 0
- },
- {
- date: new Date('2019-06-08T00:00:00Z'),
- y: 12,
- x: 1
- },
- {
- date: new Date('2019-06-25T00:00:00Z'),
- y: 3,
- x: 2
- }
- ],
- thresholdLoremIpsumSockets: [
- {
- date: new Date('2019-06-01T00:00:00Z'),
- y: 10,
- x: 0
- },
- {
- date: new Date('2019-06-08T00:00:00Z'),
- y: 12,
- x: 1
- },
- {
- date: new Date('2019-06-25T00:00:00Z'),
- y: 3,
- x: 2
- }
- ]
- },
- useProductGraphConfig: () => ({
- filters: [
- {
- id: 'loremIpsumSockets'
- },
- {
- id: 'thresholdLoremIpsumSockets'
- }
- ]
- }),
- useProductGraphTallyQuery: () => ({
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY
- })
- };
- const component = await shallowHookComponent();
-
- expect(component.find(Chart).prop('dataSets')).toMatchSnapshot('filtered dataSets');
- });
-});
diff --git a/src/components/graphCard/graphCard.deprecated.js b/src/components/graphCard/graphCard.deprecated.js
deleted file mode 100644
index f45b4acc9..000000000
--- a/src/components/graphCard/graphCard.deprecated.js
+++ /dev/null
@@ -1,157 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { Card, CardTitle, CardHeader, CardActions, CardBody, Title } from '@patternfly/react-core';
-import { useShallowCompareEffect } from 'react-use';
-import { connect, reduxActions, reduxSelectors } from '../../redux';
-import { useProduct, useProductGraphConfig, useProductGraphTallyQuery } from '../productView/productViewContext';
-import { helpers } from '../../common';
-import { RHSM_API_QUERY_TYPES } from '../../types/rhsmApiTypes';
-import { Loader } from '../loader/loader';
-import { MinHeight } from '../minHeight/minHeight';
-import { GraphCardChart } from './graphCardChart.deprecated';
-
-/**
- * A chart/graph card.
- *
- * @param {object} props
- * @param {Node} props.cardTitle
- * @param {Node} props.children
- * @param {boolean} props.error
- * @param {Function} props.getGraphReportsCapacity
- * @param {object} props.graphData
- * @param {object} props.meta
- * @param {boolean} props.isDisabled
- * @param {boolean} props.pending
- * @param {Function} props.useProduct
- * @param {Function} props.useProductGraphConfig
- * @param {Function} props.useProductGraphTallyQuery
- * @returns {Node}
- */
-const GraphCard = ({
- cardTitle,
- children,
- error,
- getGraphReportsCapacity,
- graphData,
- meta,
- isDisabled,
- pending,
- useProduct: useAliasProduct,
- useProductGraphConfig: useAliasProductGraphConfig,
- useProductGraphTallyQuery: useAliasProductGraphTallyQuery
-}) => {
- const { productId } = useAliasProduct();
- const { settings } = useAliasProductGraphConfig();
- const query = useAliasProductGraphTallyQuery();
-
- useShallowCompareEffect(() => {
- const {
- [RHSM_API_QUERY_TYPES.START_DATE]: startDate,
- [RHSM_API_QUERY_TYPES.END_DATE]: endDate,
- [RHSM_API_QUERY_TYPES.GRANULARITY]: granularity
- } = query;
-
- if (!isDisabled && granularity && startDate && endDate && productId) {
- getGraphReportsCapacity(productId, query);
- }
- }, [getGraphReportsCapacity, isDisabled, productId, query]);
-
- if (isDisabled) {
- return null;
- }
-
- let actionDisplay = null;
-
- if (typeof settings?.actionDisplay === 'function') {
- actionDisplay = settings.actionDisplay({ data: { ...graphData }, meta: { ...meta } });
- }
-
- return (
-
-
-
-
-
- {cardTitle}
-
-
-
- {actionDisplay}
- {children}
-
-
-
-
-
-
- {pending && }
- {!pending && }
-
-
-
-
- );
-};
-
-/**
- * Prop types.
- *
- * @type {{getGraphReportsCapacity: Function, useProduct: Function, useProductGraphTallyQuery: Function,
- * useProductGraphConfig: Function, children: Node, meta: object, pending: boolean, graphData: object,
- * isDisabled: boolean, error: boolean, cardTitle: Node}}
- */
-GraphCard.propTypes = {
- cardTitle: PropTypes.node,
- children: PropTypes.node,
- error: PropTypes.bool,
- getGraphReportsCapacity: PropTypes.func,
- graphData: PropTypes.object,
- isDisabled: PropTypes.bool,
- meta: PropTypes.object,
- pending: PropTypes.bool,
- useProduct: PropTypes.func,
- useProductGraphConfig: PropTypes.func,
- useProductGraphTallyQuery: PropTypes.func
-};
-
-/**
- * Default props.
- *
- * @type {{getGraphReportsCapacity: Function, useProduct: Function, useProductGraphTallyQuery: Function,
- * useProductGraphConfig: Function, children: Node, meta: object, pending: boolean, graphData: object,
- * isDisabled: boolean, error: boolean, cardTitle: Node}}
- */
-GraphCard.defaultProps = {
- cardTitle: null,
- children: null,
- error: false,
- getGraphReportsCapacity: helpers.noop,
- graphData: {},
- isDisabled: helpers.UI_DISABLED_GRAPH,
- meta: {},
- pending: false,
- useProduct,
- useProductGraphConfig,
- useProductGraphTallyQuery
-};
-
-/**
- * Apply actions to props.
- *
- * @param {Function} dispatch
- * @returns {object}
- */
-const mapDispatchToProps = dispatch => ({
- getGraphReportsCapacity: (id, query) => dispatch(reduxActions.rhsm.getGraphReportsCapacity(id, query))
-});
-
-/**
- * Create a selector from applied state, props.
- *
- * @type {Function}
- */
-const makeMapStateToProps = reduxSelectors.graphCard.makeGraphCard();
-
-const ConnectedGraphCard = connect(makeMapStateToProps, mapDispatchToProps)(GraphCard);
-
-export { ConnectedGraphCard as default, ConnectedGraphCard, GraphCard };
diff --git a/src/components/graphCard/graphCardChart.deprecated.js b/src/components/graphCard/graphCardChart.deprecated.js
deleted file mode 100644
index 14f2de8af..000000000
--- a/src/components/graphCard/graphCardChart.deprecated.js
+++ /dev/null
@@ -1,100 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { chart_color_green_300 as chartColorGreenDark } from '@patternfly/react-tokens';
-import { useProductGraphConfig, useProductGraphTallyQuery } from '../productView/productViewContext';
-import { graphCardHelpers } from './graphCardHelpers';
-import { Chart } from '../chart/chart';
-import GraphCardChartLegend from './graphCardChartLegend';
-import GraphCardChartTooltip from './graphCardChartTooltip';
-import { RHSM_API_QUERY_TYPES } from '../../types/rhsmApiTypes';
-
-/**
- * A chart/graph.
- *
- * @param {object} props
- * @param {object} props.graphData
- * @param {Function} props.useProductGraphConfig
- * @param {Function} props.useProductGraphTallyQuery
- * @returns {Node}
- */
-const GraphCardChart = ({
- graphData,
- useProductGraphConfig: useAliasProductGraphConfig,
- useProductGraphTallyQuery: useAliasProductGraphTallyQuery
-}) => {
- const { filters } = useAliasProductGraphConfig();
- const query = useAliasProductGraphTallyQuery();
- const { [RHSM_API_QUERY_TYPES.GRANULARITY]: granularity } = query;
-
- const chartAreaProps = {
- xAxisLabelIncrement: graphCardHelpers.getChartXAxisLabelIncrement(granularity),
- xAxisTickFormat: ({ item, previousItem, tick }) =>
- graphCardHelpers.xAxisTickFormat({
- tick,
- date: item.date,
- previousDate: previousItem.date,
- granularity
- }),
- yAxisTickFormat: graphCardHelpers.yAxisTickFormat
- };
-
- const filteredGraphData = data => {
- const filtered = key => {
- const tempFiltered = {
- data: data[key],
- id: key,
- strokeWidth: 2,
- isStacked: !/^threshold/.test(key),
- isThreshold: /^threshold/.test(key)
- };
-
- if (/^threshold/.test(key)) {
- tempFiltered.stroke = chartColorGreenDark.value;
- tempFiltered.strokeDasharray = '4,3';
- tempFiltered.strokeWidth = 3;
- }
-
- return tempFiltered;
- };
-
- if (filters?.length) {
- return filters.map(value => Object.assign(filtered(value.id), value));
- }
-
- return Object.keys(data).map(key => filtered(key));
- };
-
- return (
- }
- chartTooltip={({ datum }) => }
- />
- );
-};
-
-/**
- * Prop types.
- *
- * @type {{useProductGraphTallyQuery: Function, useProductGraphConfig: Function, graphData: object}}
- */
-GraphCardChart.propTypes = {
- graphData: PropTypes.object,
- useProductGraphConfig: PropTypes.func,
- useProductGraphTallyQuery: PropTypes.func
-};
-
-/**
- * Default props.
- *
- * @type {{useProductGraphTallyQuery: Function, useProductGraphConfig: Function, graphData: object}}
- */
-GraphCardChart.defaultProps = {
- graphData: {},
- useProductGraphConfig,
- useProductGraphTallyQuery
-};
-
-export { GraphCardChart as default, GraphCardChart };
diff --git a/src/components/i18n/__tests__/__snapshots__/i18n.test.js.snap b/src/components/i18n/__tests__/__snapshots__/i18n.test.js.snap
index 16427babe..744f0ad0e 100644
--- a/src/components/i18n/__tests__/__snapshots__/i18n.test.js.snap
+++ b/src/components/i18n/__tests__/__snapshots__/i18n.test.js.snap
@@ -165,15 +165,6 @@ exports[`I18n Component should generate a predictable locale key output snapshot
},
],
},
- {
- "file": "./src/components/inventoryCard/inventoryList.deprecated.js",
- "keys": [
- {
- "key": "curiosity-inventory.tab",
- "match": "t('curiosity-inventory.tab', { context: 'disabled' })",
- },
- ],
- },
{
"file": "./src/components/inventoryTabs/inventoryTabs.js",
"keys": [
@@ -272,18 +263,6 @@ exports[`I18n Component should generate a predictable locale key output snapshot
{
"file": "./src/components/productView/productView.js",
"keys": [
- {
- "key": "curiosity-graph.cardHeadingDescription",
- "match": "t('curiosity-graph.cardHeadingDescription', { context: productId })",
- },
- {
- "key": "curiosity-graph.cardHeading",
- "match": "t('curiosity-graph.cardHeading', { context: productId })",
- },
- {
- "key": "curiosity-inventory.tabHosts",
- "match": "t('curiosity-inventory.tabHosts', { context: [productId] })",
- },
{
"key": "curiosity-inventory.tabHosts",
"match": "t('curiosity-inventory.tabHosts', { context: [productId] })",
@@ -744,10 +723,6 @@ exports[`I18n Component should have locale keys that exist in the default langua
"file": "./src/components/inventoryCard/inventoryCard.js",
"key": "curiosity-inventory.tab",
},
- {
- "file": "./src/components/inventoryCard/inventoryList.deprecated.js",
- "key": "curiosity-inventory.tab",
- },
{
"file": "./src/components/toolbar/toolbarFieldGranularity.js",
"key": "curiosity-toolbar.granularity",
diff --git a/src/components/inventoryCard/__tests__/__snapshots__/inventoryList.deprecated.test.js.snap b/src/components/inventoryCard/__tests__/__snapshots__/inventoryList.deprecated.test.js.snap
deleted file mode 100644
index bada807f7..000000000
--- a/src/components/inventoryCard/__tests__/__snapshots__/inventoryList.deprecated.test.js.snap
+++ /dev/null
@@ -1,561 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`InventoryList Component should handle expandable guests data: number of guests 1`] = `
-
-`;
-
-exports[`InventoryList Component should handle expandable guests data: number of guests, and id 1`] = `
-,
- },
- ]
- }
- summary={null}
- t={[Function]}
- variant="compact"
-/>
-`;
-
-exports[`InventoryList Component should handle expandable guests data: number of guests, id, and NO expandable guests display 1`] = `
-
-`;
-
-exports[`InventoryList Component should handle updating paging through redux state: dispatch onPage 1`] = `
-[
- [
- [
- {
- "offset": 10,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_offset",
- "viewId": "lorem",
- },
- {
- "limit": 10,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_limit",
- "viewId": "lorem",
- },
- ],
- ],
- [
- [
- {
- "offset": 20,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_offset",
- "viewId": "lorem",
- },
- {
- "limit": 10,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_limit",
- "viewId": "lorem",
- },
- ],
- ],
- [
- [
- {
- "offset": 0,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_offset",
- "viewId": "lorem",
- },
- {
- "limit": 20,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_limit",
- "viewId": "lorem",
- },
- ],
- ],
- [
- [
- {
- "offset": 0,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_offset",
- "viewId": "lorem",
- },
- {
- "limit": 50,
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_limit",
- "viewId": "lorem",
- },
- ],
- ],
-]
-`;
-
-exports[`InventoryList Component should handle updating sorting through redux state: dispatch filter 1`] = `
-[
- [
- [
- {
- "dir": "asc",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_dir",
- "viewId": "lorem",
- },
- {
- "sort": "sockets",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_sort",
- "viewId": "lorem",
- },
- ],
- ],
- [
- [
- {
- "dir": "desc",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_dir",
- "viewId": "lorem",
- },
- {
- "sort": "sockets",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_sort",
- "viewId": "lorem",
- },
- ],
- ],
- [
- [
- {
- "dir": "asc",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_dir",
- "viewId": "lorem",
- },
- {
- "sort": "sockets",
- "type": "SET_QUERY_RHSM_HOSTS_INVENTORY_sort",
- "viewId": "lorem",
- },
- ],
- ],
-]
-`;
-
-exports[`InventoryList Component should handle variations in data: filtered data 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`InventoryList Component should handle variations in data: variable data 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`InventoryList Component should render a non-connected component: non-connected 1`] = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`;
-
-exports[`InventoryList Component should return an empty render when disabled: disabled component 1`] = `
-
-
-
- t(curiosity-inventory.tab, {"context":"disabled"})
-
-
-
-`;
diff --git a/src/components/inventoryCard/__tests__/inventoryList.deprecated.test.js b/src/components/inventoryCard/__tests__/inventoryList.deprecated.test.js
deleted file mode 100644
index f3edf1184..000000000
--- a/src/components/inventoryCard/__tests__/inventoryList.deprecated.test.js
+++ /dev/null
@@ -1,152 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { SortByDirection } from '@patternfly/react-table';
-import Table from '../../table/table';
-import { InventoryList } from '../inventoryList.deprecated';
-import { store } from '../../../redux';
-import { RHSM_API_QUERY_TYPES } from '../../../types/rhsmApiTypes';
-
-describe('InventoryList Component', () => {
- let mockDispatch;
-
- beforeEach(() => {
- mockDispatch = jest.spyOn(store, 'dispatch').mockImplementation((type, data) => ({ type, data }));
- });
-
- afterEach(() => {
- jest.clearAllMocks();
- });
-
- it('should render a non-connected component', () => {
- const props = {
- query: {
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- productId: 'lorem'
- };
-
- const component = shallow();
- expect(component).toMatchSnapshot('non-connected');
- });
-
- it('should return an empty render when disabled', () => {
- const props = {
- query: {
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- productId: 'lorem',
- listData: [
- { lorem: 'ipsum', dolor: 'sit' },
- { lorem: 'sit', dolor: 'amet' }
- ],
- itemCount: 2,
- isDisabled: true
- };
- const component = shallow();
-
- expect(component).toMatchSnapshot('disabled component');
- });
-
- it('should handle variations in data', () => {
- const props = {
- query: {
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- productId: 'lorem',
- listData: [
- { lorem: 'ipsum', dolor: 'sit' },
- { lorem: 'sit', dolor: 'amet' }
- ],
- itemCount: 2
- };
-
- const component = shallow();
- expect(component).toMatchSnapshot('variable data');
-
- component.setProps({
- filterInventoryData: [{ id: 'lorem' }]
- });
-
- expect(component).toMatchSnapshot('filtered data');
- });
-
- it('should handle expandable guests data', () => {
- const props = {
- query: {
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- productId: 'lorem',
- listData: [{ lorem: 'sit', dolor: 'amet', numberOfGuests: 1 }],
- itemCount: 1
- };
-
- const component = shallow();
- expect(component.find(Table)).toMatchSnapshot('number of guests');
-
- component.setProps({
- ...props,
- listData: [{ lorem: 'sit', dolor: 'amet', numberOfGuests: 1, subscriptionManagerId: 'loremIpsum' }]
- });
-
- expect(component.find(Table)).toMatchSnapshot('number of guests, and id');
-
- component.setProps({
- ...props,
- listData: [{ lorem: 'sit', dolor: 'amet', numberOfGuests: 2, subscriptionManagerId: 'loremIpsum' }],
- settings: {
- hasGuests: data => {
- const { numberOfGuests = 0, subscriptionManagerId = null } = data;
- return numberOfGuests > 2 && subscriptionManagerId;
- }
- }
- });
-
- expect(component.find(Table)).toMatchSnapshot('number of guests, id, and NO expandable guests display');
- });
-
- it('should handle updating sorting through redux state', () => {
- const props = {
- query: {
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- productId: 'lorem',
- listData: [
- { lorem: 'ipsum', dolor: 'sit' },
- { lorem: 'sit', dolor: 'amet' }
- ],
- itemCount: 2
- };
-
- const component = shallow();
- const componentInstance = component.instance();
-
- 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');
- });
-
- it('should handle updating paging through redux state', () => {
- const props = {
- query: {},
- productId: 'lorem'
- };
-
- const component = shallow();
- const componentInstance = component.instance();
-
- componentInstance.onPage({ offset: 10, perPage: 10 });
- componentInstance.onPage({ offset: 20, perPage: 10 });
- componentInstance.onPage({ offset: 0, perPage: 20 });
- componentInstance.onPage({ offset: 0, perPage: 50 });
-
- expect(mockDispatch.mock.calls).toMatchSnapshot('dispatch onPage');
- });
-});
diff --git a/src/components/inventoryCard/inventoryList.deprecated.js b/src/components/inventoryCard/inventoryList.deprecated.js
deleted file mode 100644
index bacba5f70..000000000
--- a/src/components/inventoryCard/inventoryList.deprecated.js
+++ /dev/null
@@ -1,379 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import _isEqual from 'lodash/isEqual';
-import { SortByDirection, TableVariant } from '@patternfly/react-table';
-import { Bullseye, Card, CardActions, CardBody, CardFooter, CardHeader, CardHeaderMain } from '@patternfly/react-core';
-import { TableToolbar } from '@redhat-cloud-services/frontend-components/TableToolbar';
-import _camelCase from 'lodash/camelCase';
-import { helpers } from '../../common';
-import { connect, reduxActions, reduxSelectors, reduxTypes, store } from '../../redux';
-import Table from '../table/table';
-import { Loader } from '../loader/loader';
-import { MinHeight } from '../minHeight/minHeight';
-import GuestsList from '../inventoryGuests/guestsList.deprecated';
-import { inventoryCardHelpers } from './inventoryCardHelpers';
-import Pagination from '../pagination/pagination';
-import { ToolbarFieldDisplayName } from '../toolbar/toolbarFieldDisplayName';
-import { paginationHelpers } from '../pagination/paginationHelpers';
-import {
- RHSM_API_QUERY_SORT_DIRECTION_TYPES as SORT_DIRECTION_TYPES,
- RHSM_API_QUERY_SORT_TYPES as SORT_TYPES,
- RHSM_API_QUERY_TYPES
-} from '../../types/rhsmApiTypes';
-import { translate } from '../i18n/i18n';
-
-/**
- * A hosts system inventory component.
- *
- * @augments React.Component
- * @fires onColumnSort
- * @fires onPage
- * @fires onUpdateInventoryData
- */
-class InventoryList extends React.Component {
- componentDidMount() {
- this.onUpdateInventoryData();
- }
-
- componentDidUpdate(prevProps) {
- const { productId, query } = this.props;
-
- if (productId !== prevProps.productId || !_isEqual(query, prevProps.query)) {
- this.onUpdateInventoryData();
- }
- }
-
- /**
- * On column sort update state.
- *
- * @event onColumnSort
- * @param {object} data pass-through inventory data.
- * @param {object} sortParams
- * @param {string} sortParams.direction
- * @param {string} sortParams.id column identifier
- */
- onColumnSort = (data, { direction, id }) => {
- const { productId } = this.props;
- const updatedSortColumn = Object.values(SORT_TYPES).find(value => _camelCase(value) === id);
- let updatedDirection;
-
- if (!updatedSortColumn) {
- if (helpers.DEV_MODE || helpers.REVIEW_MODE) {
- console.warn(`Sorting can only be performed on select fields, confirm field ${id} is allowed.`);
- }
- return;
- }
-
- switch (direction) {
- case SortByDirection.desc:
- updatedDirection = SORT_DIRECTION_TYPES.DESCENDING;
- break;
- default:
- updatedDirection = SORT_DIRECTION_TYPES.ASCENDING;
- break;
- }
-
- store.dispatch([
- {
- type: reduxTypes.query.SET_QUERY_RHSM_HOSTS_INVENTORY_TYPES[RHSM_API_QUERY_TYPES.DIRECTION],
- viewId: productId,
- [RHSM_API_QUERY_TYPES.DIRECTION]: updatedDirection
- },
- {
- type: reduxTypes.query.SET_QUERY_RHSM_HOSTS_INVENTORY_TYPES[RHSM_API_QUERY_TYPES.SORT],
- viewId: productId,
- [RHSM_API_QUERY_TYPES.SORT]: updatedSortColumn
- }
- ]);
- };
-
- /**
- * On paging and on perPage events.
- *
- * @event onPage
- * @param {object} params
- * @param {number} params.offset
- * @param {number} params.perPage
- */
- onPage = ({ offset, perPage }) => {
- const { productId } = this.props;
-
- store.dispatch([
- {
- type: reduxTypes.query.SET_QUERY_RHSM_HOSTS_INVENTORY_TYPES[RHSM_API_QUERY_TYPES.OFFSET],
- viewId: productId,
- [RHSM_API_QUERY_TYPES.OFFSET]: offset
- },
- {
- type: reduxTypes.query.SET_QUERY_RHSM_HOSTS_INVENTORY_TYPES[RHSM_API_QUERY_TYPES.LIMIT],
- viewId: productId,
- [RHSM_API_QUERY_TYPES.LIMIT]: perPage
- }
- ]);
- };
-
- /**
- * Call the RHSM APIs, apply filters.
- *
- * @event onUpdateInventoryData
- */
- onUpdateInventoryData = () => {
- const { getHostsInventory, isDisabled, productId, query } = this.props;
-
- if (!isDisabled && productId) {
- getHostsInventory(productId, query);
- }
- };
-
- /**
- * Render an inventory table.
- *
- * @returns {Node}
- */
- renderTable() {
- const { filterGuestsData, filterInventoryData, listData, productId, query, session, settings } = this.props;
- let updatedColumnHeaders = [];
-
- const updatedRows = listData.map(({ ...cellData }) => {
- const { columnHeaders, cells } = inventoryCardHelpers.parseRowCellsListData({
- filters: inventoryCardHelpers.parseInventoryFilters({
- filters: filterInventoryData,
- onSort: this.onColumnSort,
- query
- }),
- cellData,
- session
- });
-
- updatedColumnHeaders = columnHeaders;
-
- const guestsId = cellData?.subscriptionManagerId;
- let hasGuests = cellData?.numberOfGuests > 0 && guestsId;
-
- // Apply hasGuests callback, return boolean
- if (typeof settings?.hasGuests === 'function') {
- hasGuests = settings.hasGuests({ ...cellData }, { ...session });
- }
-
- return {
- cells,
- expandedContent:
- (hasGuests && (
-
- )) ||
- undefined
- };
- });
-
- return (
-
- );
- }
-
- /**
- * Render an inventory card.
- *
- * @returns {Node}
- */
- render() {
- const {
- error,
- filterInventoryData,
- fulfilled,
- isDisabled,
- itemCount,
- listData,
- pending,
- perPageDefault,
- query,
- t,
- viewId
- } = this.props;
-
- if (isDisabled) {
- return (
-
-
- {t('curiosity-inventory.tab', { context: 'disabled' })}
-
-
- );
- }
-
- const updatedPerPage = query[RHSM_API_QUERY_TYPES.LIMIT] || perPageDefault;
- const updatedOffset = query[RHSM_API_QUERY_TYPES.OFFSET];
- const isLastPage = paginationHelpers.isLastPage(updatedOffset, updatedPerPage, itemCount);
-
- // Set an updated key to force refresh minHeight
- const minHeightContentRefreshKey =
- (fulfilled === true && itemCount < updatedPerPage && `bodyMinHeight-${updatedPerPage}-resize`) ||
- (fulfilled === true && isLastPage && `bodyMinHeight-${updatedPerPage}-resize`) ||
- (error === true && `bodyMinHeight-${updatedPerPage}-resize`) ||
- `bodyMinHeight-${updatedPerPage}`;
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {pending && (
- cellWidth)) || [],
- rowCount: listData?.length || updatedPerPage,
- variant: TableVariant.compact
- }}
- />
- )}
- {!pending && this.renderTable()}
-
-
-
-
-
-
-
-
-
-
-
- );
- }
-}
-
-/**
- * Prop types.
- *
- * @type {{settings:object, productId: string, listData: Array, session: object, pending: boolean,
- * query: object, fulfilled: boolean, getHostsInventory: Function, error: boolean,
- * itemCount: number, viewId: string, t: Function, filterInventoryData: Array, filterGuestsData: Array,
- * perPageDefault: number, isDisabled: boolean}}
- */
-InventoryList.propTypes = {
- error: PropTypes.bool,
- fulfilled: PropTypes.bool,
- filterGuestsData: PropTypes.array,
- filterInventoryData: PropTypes.arrayOf(
- PropTypes.shape({
- id: PropTypes.string,
- header: PropTypes.oneOfType([
- PropTypes.shape({
- title: PropTypes.node.isRequired
- }),
- PropTypes.func,
- PropTypes.node
- ]),
- cell: PropTypes.oneOfType([
- PropTypes.shape({
- title: PropTypes.node.isRequired
- }),
- PropTypes.func,
- PropTypes.node
- ])
- }).isRequired
- ),
- getHostsInventory: PropTypes.func,
- isDisabled: PropTypes.bool,
- itemCount: PropTypes.number,
- listData: PropTypes.array,
- pending: PropTypes.bool,
- productId: PropTypes.string.isRequired,
- perPageDefault: PropTypes.number,
- query: PropTypes.object.isRequired,
- session: PropTypes.object,
- settings: PropTypes.shape({
- hasGuests: PropTypes.func
- }),
- t: PropTypes.func,
- viewId: PropTypes.string
-};
-
-/**
- * Default props.
- *
- * @type {{settings: object, listData: Array, session: object, pending: boolean, fulfilled: boolean,
- * getHostsInventory: Function, error: boolean, itemCount: number, viewId: string, t: translate,
- * filterInventoryData: Array, filterGuestsData: Array, perPageDefault: number, isDisabled: boolean}}
- */
-InventoryList.defaultProps = {
- error: false,
- fulfilled: false,
- filterGuestsData: [],
- filterInventoryData: [],
- getHostsInventory: helpers.noop,
- isDisabled: helpers.UI_DISABLED_TABLE_HOSTS,
- itemCount: 0,
- listData: [],
- pending: false,
- perPageDefault: 10,
- session: {},
- settings: {},
- t: translate,
- viewId: 'inventoryList'
-};
-
-/**
- * Apply actions to props.
- *
- * @param {Function} dispatch
- * @returns {object}
- */
-const mapDispatchToProps = dispatch => ({
- getHostsInventory: (id, query) => dispatch(reduxActions.rhsm.getHostsInventory(id, query))
-});
-
-/**
- * Create a selector from applied state, props.
- *
- * @type {Function}
- */
-const makeMapStateToProps = reduxSelectors.inventoryList.makeInventoryList();
-
-const ConnectedInventoryList = connect(makeMapStateToProps, mapDispatchToProps)(InventoryList);
-
-export { ConnectedInventoryList as default, ConnectedInventoryList, InventoryList };
diff --git a/src/components/inventoryGuests/__tests__/__snapshots__/guestsList.deprecated.test.js.snap b/src/components/inventoryGuests/__tests__/__snapshots__/guestsList.deprecated.test.js.snap
deleted file mode 100644
index 33829edc4..000000000
--- a/src/components/inventoryGuests/__tests__/__snapshots__/guestsList.deprecated.test.js.snap
+++ /dev/null
@@ -1,267 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`GuestsList Component should handle multiple display states: fulfilled 1`] = `
-
-`;
-
-exports[`GuestsList Component should handle multiple display states: initial pending 1`] = `
-
-
-
-`;
-
-exports[`GuestsList Component should handle multiple display states: paged pending 1`] = `
-
-`;
-
-exports[`GuestsList Component should handle updating paging state: state 1`] = `
-{
- "initialState": {
- "currentPage": 0,
- "limit": 100,
- "previousData": [],
- },
- "scrollComplete": {
- "currentPage": 1,
- "limit": 100,
- "previousData": [
- {
- "dolor": "sit",
- "lorem": "ipsum",
- },
- ],
- },
- "scrollProgress": {
- "currentPage": 0,
- "limit": 100,
- "previousData": [],
- },
-}
-`;
-
-exports[`GuestsList Component should handle variations in data: filtered data 1`] = `
-
-`;
-
-exports[`GuestsList Component should handle variations in data: variable data 1`] = `
-
-`;
-
-exports[`GuestsList Component should render a non-connected component: non-connected 1`] = `
-
-`;
diff --git a/src/components/inventoryGuests/__tests__/guestsList.deprecated.test.js b/src/components/inventoryGuests/__tests__/guestsList.deprecated.test.js
deleted file mode 100644
index c775a3c82..000000000
--- a/src/components/inventoryGuests/__tests__/guestsList.deprecated.test.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import React from 'react';
-import { shallow } from 'enzyme';
-import { GuestsList } from '../guestsList.deprecated';
-
-describe('GuestsList Component', () => {
- it('should render a non-connected component', () => {
- const props = {
- id: 'lorem',
- numberOfGuests: 0
- };
-
- const component = shallow();
- expect(component).toMatchSnapshot('non-connected');
- });
-
- it('should handle variations in data', () => {
- const props = {
- id: 'lorem',
- numberOfGuests: 2,
- listData: [
- { lorem: 'ipsum', dolor: 'sit' },
- { lorem: 'amet', dolor: 'amet' }
- ]
- };
-
- const component = shallow();
- expect(component).toMatchSnapshot('variable data');
-
- component.setProps({
- filterGuestsData: [{ id: 'lorem' }]
- });
-
- expect(component).toMatchSnapshot('filtered data');
- });
-
- it('should handle multiple display states', () => {
- const props = {
- id: 'lorem',
- numberOfGuests: 1,
- pending: true
- };
-
- const component = shallow();
- expect(component).toMatchSnapshot('initial pending');
-
- component.setProps({
- pending: false,
- listData: [{ lorem: 'ipsum', dolor: 'sit' }]
- });
-
- expect(component).toMatchSnapshot('fulfilled');
-
- component.setState({ currentPage: 1 });
-
- component.setProps({
- pending: true,
- listData: []
- });
-
- expect(component).toMatchSnapshot('paged pending');
- });
-
- it('should handle updating paging state', () => {
- const props = {
- id: 'lorem',
- numberOfGuests: 111,
- listData: [{ lorem: 'ipsum', dolor: 'sit' }]
- };
-
- const component = shallow();
- const componentInstance = component.instance();
-
- const initialState = component.state();
-
- componentInstance.onScroll({ target: { scrollHeight: 100, scrollTop: 20, clientHeight: 100 } });
- const scrollProgress = component.state();
-
- componentInstance.onScroll({ target: { scrollHeight: 100, scrollTop: 0, clientHeight: 100 } });
- const scrollComplete = component.state();
-
- expect({ initialState, scrollProgress, scrollComplete }).toMatchSnapshot('state');
- });
-});
diff --git a/src/components/inventoryGuests/guestsList.deprecated.js b/src/components/inventoryGuests/guestsList.deprecated.js
deleted file mode 100644
index 7f371bc0c..000000000
--- a/src/components/inventoryGuests/guestsList.deprecated.js
+++ /dev/null
@@ -1,267 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { TableVariant } from '@patternfly/react-table';
-import { helpers } from '../../common';
-import { apiQueries, connect, reduxActions, reduxSelectors } from '../../redux';
-import { Loader } from '../loader/loader';
-import { inventoryCardHelpers } from '../inventoryCard/inventoryCardHelpers';
-import { RHSM_API_QUERY_TYPES } from '../../types/rhsmApiTypes';
-import { Table } from '../table/table';
-
-/**
- * ToDo: Consider removing the query prop entirely.
- * The current API doesn't allow setting more than "offset" and "limit"
- */
-/**
- * ToDo: Review moving the "onScroll" layout into a standalone component.
- */
-/**
- * A system inventory guests component.
- *
- * @augments React.Component
- * @fires onUpdateGuestsData
- * @fires onScroll
- */
-class GuestsList extends React.Component {
- state = { currentPage: 0, limit: 100, previousData: [] };
-
- componentDidMount() {
- this.onUpdateGuestsData();
- }
-
- componentDidUpdate(prevProps, prevState) {
- const { currentPage } = this.state;
-
- if (currentPage !== prevState.currentPage) {
- this.onUpdateGuestsData();
- }
- }
-
- /**
- * Call the RHSM APIs, apply filters.
- *
- * @event onUpdateGuestsData
- */
- onUpdateGuestsData = () => {
- const { currentPage, limit } = this.state;
- const { getHostsInventoryGuests, query, id } = this.props;
-
- if (id) {
- const updatedQuery = {
- ...query,
- [RHSM_API_QUERY_TYPES.LIMIT]: limit,
- [RHSM_API_QUERY_TYPES.OFFSET]: currentPage * limit || 0
- };
-
- const { inventoryGuestsQuery } = apiQueries.parseRhsmQuery(updatedQuery);
- getHostsInventoryGuests(id, inventoryGuestsQuery);
- }
- };
-
- /**
- * Update page state.
- *
- * @event onScroll
- * @param {object} event
- */
- onScroll = event => {
- const { target } = event;
- const { currentPage, limit, previousData } = this.state;
- const { numberOfGuests, pending, listData } = this.props;
-
- const bottom = target.scrollHeight - target.scrollTop === target.clientHeight;
-
- if (numberOfGuests > (currentPage + 1) * limit && bottom && !pending) {
- const newPage = currentPage + 1;
- const updatedData = [...previousData, ...(listData || [])];
-
- this.setState({
- previousData: updatedData,
- currentPage: newPage
- });
- }
- };
-
- renderLoader() {
- const { currentPage } = this.state;
- const { filterGuestsData, listData, pending } = this.props;
-
- if (currentPage > 0 && pending) {
- const scrollLoader = (
- cellWidth)) || [],
- rowCount: 0,
- variant: TableVariant.compact
- }}
- />
- );
-
- return {scrollLoader}
;
- }
-
- return null;
- }
-
- /**
- * ToDo: Consider moving the "meaning of life" into the default props on iteration.
- * For everyone else... move the 42 into default props, possibly the 275.
- */
- /**
- * Render a guests table.
- *
- * @returns {Node}
- */
- renderTable() {
- const { previousData } = this.state;
- const { filterGuestsData, listData, numberOfGuests, session } = this.props;
- let updatedColumnHeaders = [];
-
- const updatedRows = [...previousData, ...(listData || [])].map(({ ...cellData }) => {
- const { columnHeaders, cells } = inventoryCardHelpers.parseRowCellsListData({
- filters: filterGuestsData,
- cellData,
- session
- });
-
- updatedColumnHeaders = columnHeaders;
-
- return {
- cells
- };
- });
-
- // Include the table header
- let updatedHeight = (numberOfGuests + 1) * 42;
- updatedHeight = (updatedHeight < 275 && updatedHeight) || 275;
-
- return (
-
-
- {this.renderLoader()}
- {(updatedRows.length && (
-
- )) ||
- null}
-
-
- );
- }
-
- /**
- * Render a guest list table.
- *
- * @returns {Node}
- */
- render() {
- const { currentPage } = this.state;
- const { error, filterGuestsData, listData, numberOfGuests, pending, perPageDefault } = this.props;
-
- return (
-
- {pending && currentPage === 0 && (
- cellWidth)) || [],
- rowCount: numberOfGuests < perPageDefault ? numberOfGuests : perPageDefault,
- variant: TableVariant.compact
- }}
- />
- )}
- {((!pending && currentPage === 0) || currentPage > 0) && this.renderTable()}
-
- );
- }
-}
-
-/**
- * Prop types.
- *
- * @type {{listData: Array, getHostsInventoryGuests: Function, session: object, filterGuestsData: object,
- * pending: boolean, query: object, numberOfGuests: number, perPageDefault: number, id: string,
- * error: boolean}}
- */
-GuestsList.propTypes = {
- error: PropTypes.bool,
- filterGuestsData: PropTypes.arrayOf(
- PropTypes.shape({
- id: PropTypes.string,
- header: PropTypes.oneOfType([
- PropTypes.shape({
- title: PropTypes.node.isRequired
- }),
- PropTypes.func,
- PropTypes.node
- ]),
- cell: PropTypes.oneOfType([
- PropTypes.shape({
- title: PropTypes.node.isRequired
- }),
- PropTypes.func,
- PropTypes.node
- ])
- }).isRequired
- ),
- getHostsInventoryGuests: PropTypes.func,
- listData: PropTypes.array,
- id: PropTypes.string.isRequired,
- numberOfGuests: PropTypes.number.isRequired,
- pending: PropTypes.bool,
- perPageDefault: PropTypes.number,
- query: PropTypes.object,
- session: PropTypes.object
-};
-
-/**
- * Default props.
- *
- * @type {{listData: Array, getHostsInventoryGuests: Function, session: object, filterGuestsData: Array,
- * pending: boolean, query: object, perPageDefault: number, error: boolean}}
- */
-GuestsList.defaultProps = {
- error: false,
- filterGuestsData: [],
- getHostsInventoryGuests: helpers.noop,
- listData: [],
- pending: false,
- perPageDefault: 5,
- query: {},
- session: {}
-};
-
-/**
- * Apply actions to props.
- *
- * @param {Function} dispatch
- * @returns {object}
- */
-const mapDispatchToProps = dispatch => ({
- getHostsInventoryGuests: (id, query) => dispatch(reduxActions.rhsm.getHostsInventoryGuests(id, query))
-});
-
-/**
- * Create a selector from applied state, props.
- *
- * @type {Function}
- */
-const makeMapStateToProps = reduxSelectors.guestsList.makeGuestsList();
-
-const ConnectedGuestsList = connect(makeMapStateToProps, mapDispatchToProps)(GuestsList);
-
-export { ConnectedGuestsList as default, ConnectedGuestsList, GuestsList };
diff --git a/src/components/productView/productView.js b/src/components/productView/productView.js
index fb49498cd..51568f797 100644
--- a/src/components/productView/productView.js
+++ b/src/components/productView/productView.js
@@ -1,21 +1,14 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { Tooltip, TooltipPosition } from '@patternfly/react-core';
-import InfoCircleIcon from '@patternfly/react-icons/dist/js/icons/info-circle-icon';
import { useRouteDetail } from '../../hooks/useRouter';
import { ProductViewContext } from './productViewContext';
import { PageLayout, PageHeader, PageSection, PageToolbar, PageMessages, PageColumns } from '../pageLayout/pageLayout';
-import { apiQueries } from '../../redux';
-import { ConnectedGraphCard as ConnectedGraphCardDeprecated } from '../graphCard/graphCard.deprecated';
import { GraphCard } from '../graphCard/graphCard';
import { Toolbar } from '../toolbar/toolbar';
-import { ConnectedInventoryList as ConnectedInventoryListDeprecated } from '../inventoryCard/inventoryList.deprecated';
import { InventoryCard } from '../inventoryCard/inventoryCard';
import { InventoryCardHosts } from '../inventoryCard/inventoryCardHosts';
import { helpers } from '../../common';
import BannerMessages from '../bannerMessages/bannerMessages';
-import { SelectPosition } from '../form/select';
-import { ToolbarFieldGranularity } from '../toolbar/toolbarFieldGranularity';
import InventoryTabs, { InventoryTab } from '../inventoryTabs/inventoryTabs';
import { InventoryCardSubscriptions } from '../inventoryCardSubscriptions/inventoryCardSubscriptions';
import { RHSM_INTERNAL_PRODUCT_DISPLAY_TYPES as DISPLAY_TYPES } from '../../services/rhsm/rhsmConstants';
@@ -26,62 +19,19 @@ import { translate } from '../i18n/i18n';
*
* @param {object} props
* @param {Function} props.t
- * @param {Node|boolean} props.toolbarGraph
- * @param {boolean} props.toolbarGraphDescription
* @param {Function} props.useRouteDetail
* @returns {Node}
*/
-const ProductView = ({ t, toolbarGraph, toolbarGraphDescription, useRouteDetail: useAliasRouteDetail }) => {
+const ProductView = ({ t, useRouteDetail: useAliasRouteDetail }) => {
const { productParameter: routeProductLabel, productConfig } = useAliasRouteDetail();
const renderProduct = config => {
- const {
- graphTallyQuery,
- inventoryHostsQuery,
- inventorySubscriptionsQuery,
- query,
- initialGuestsFilters,
- initialInventoryFilters,
- initialInventorySettings,
- initialSubscriptionsInventoryFilters,
- productDisplay,
- productId,
- viewId
- } = config;
+ const { initialInventoryFilters, initialSubscriptionsInventoryFilters, productDisplay, productId, viewId } = config;
if (!productId || !viewId) {
return null;
}
- const { graphTallyQuery: initialGraphTallyQuery, inventoryHostsQuery: initialInventoryHostsQuery } =
- apiQueries.parseRhsmQuery(query, { graphTallyQuery, inventoryHostsQuery, inventorySubscriptionsQuery });
-
- let graphCardTooltip = null;
-
- if (toolbarGraphDescription) {
- graphCardTooltip = (
- {t('curiosity-graph.cardHeadingDescription', { context: productId })}
}
- position={TooltipPosition.top}
- enableFlip={false}
- distance={5}
- entryDelay={100}
- exitDelay={0}
- >
-
-
-
-
- );
- }
-
- const graphCardTitle = (
-
- {t('curiosity-graph.cardHeading', { context: productId })}
- {graphCardTooltip}
-
- );
-
return (
{productDisplay !== DISPLAY_TYPES.HOURLY && }
@@ -89,19 +39,7 @@ const ProductView = ({ t, toolbarGraph, toolbarGraphDescription, useRouteDetail:
- {productDisplay === DISPLAY_TYPES.LEGACY && (
-
- {(React.isValidElement(toolbarGraph) && toolbarGraph) ||
- (toolbarGraph !== false && )}
-
- )}
- {productDisplay !== DISPLAY_TYPES.LEGACY && }
+
- {!helpers.UI_DISABLED_TABLE_HOSTS && productDisplay === DISPLAY_TYPES.LEGACY && initialInventoryFilters && (
+ {!helpers.UI_DISABLED_TABLE_HOSTS && productDisplay !== DISPLAY_TYPES.HOURLY && initialInventoryFilters && (
-
+
)}
- {!helpers.UI_DISABLED_TABLE_HOSTS &&
- productDisplay !== DISPLAY_TYPES.LEGACY &&
- productDisplay !== DISPLAY_TYPES.HOURLY &&
- initialInventoryFilters && (
-
-
-
- )}
{!helpers.UI_DISABLED_TABLE_INSTANCES &&
productDisplay === DISPLAY_TYPES.HOURLY &&
initialInventoryFilters && (
@@ -175,24 +94,20 @@ const ProductView = ({ t, toolbarGraph, toolbarGraphDescription, useRouteDetail:
/**
* Prop types.
*
- * @type {{t: translate, toolbarGraph: (Node|boolean), toolbarGraphDescription: boolean, useRouteDetail: Function}}
+ * @type {{t: translate, useRouteDetail: Function}}
*/
ProductView.propTypes = {
t: PropTypes.func,
- toolbarGraph: PropTypes.oneOfType([PropTypes.node, PropTypes.bool]),
- toolbarGraphDescription: PropTypes.bool,
useRouteDetail: PropTypes.func
};
/**
* Default props.
*
- * @type {{t: translate, toolbarGraph: (Node|boolean), toolbarGraphDescription: boolean, useRouteDetail: Function}}
+ * @type {{t: translate, useRouteDetail: Function}}
*/
ProductView.defaultProps = {
t: translate,
- toolbarGraph: null,
- toolbarGraphDescription: false,
useRouteDetail
};
diff --git a/src/redux/common/__tests__/__snapshots__/apiQueries.test.js.snap b/src/redux/common/__tests__/__snapshots__/apiQueries.test.js.snap
deleted file mode 100644
index d36e85111..000000000
--- a/src/redux/common/__tests__/__snapshots__/apiQueries.test.js.snap
+++ /dev/null
@@ -1,37 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`ApiQueries should have specific functions: apiQueries 1`] = `
-{
- "parseRhsmQuery": [Function],
-}
-`;
-
-exports[`ApiQueries should parse a query object into specific api facets: rhsm 1`] = `
-{
- "graphTallyQuery": {
- "granularity": "Daily",
- },
- "inventoryGuestsQuery": {
- "limit": 10,
- "offset": 0,
- },
- "inventoryHostsQuery": {
- "limit": 10,
- "offset": 0,
- },
- "inventorySubscriptionsQuery": {
- "limit": 10,
- "offset": 0,
- },
- "query": {
- "granularity": "Daily",
- "limit": 10,
- "offset": 0,
- },
- "toolbarQuery": {
- "granularity": "Daily",
- "limit": 10,
- "offset": 0,
- },
-}
-`;
diff --git a/src/redux/common/__tests__/apiQueries.test.js b/src/redux/common/__tests__/apiQueries.test.js
deleted file mode 100644
index e3452ec2e..000000000
--- a/src/redux/common/__tests__/apiQueries.test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { apiQueries } from '../apiQueries';
-import {
- RHSM_API_QUERY_GRANULARITY_TYPES as GRANULARITY_TYPES,
- RHSM_API_QUERY_TYPES
-} from '../../../types/rhsmApiTypes';
-
-describe('ApiQueries', () => {
- it('should have specific functions', () => {
- expect(apiQueries).toMatchSnapshot('apiQueries');
- });
-
- it('should parse a query object into specific api facets', () => {
- const rhsmApiQuery = {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY,
- [RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [RHSM_API_QUERY_TYPES.OFFSET]: 0
- };
- expect(apiQueries.parseRhsmQuery(rhsmApiQuery)).toMatchSnapshot('rhsm');
- });
-});
diff --git a/src/redux/common/apiQueries.js b/src/redux/common/apiQueries.js
deleted file mode 100644
index 42404aa93..000000000
--- a/src/redux/common/apiQueries.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { rhsmConstants } from '../../services/rhsm/rhsmConstants';
-import { reduxHelpers } from './reduxHelpers';
-
-/**
- * Parse a query object against a schema for specific RHSM endpoints.
- *
- * @param {object} query
- * @param {object} queries
- * @returns {{graphTallyQuery: object, inventoryHostsQuery: object, inventorySubscriptionsQuery: object,
- * query: object, inventoryGuestsQuery: object, toolbarQuery: object}}
- */
-const parseRhsmQuery = (query = {}, queries = {}) => {
- const { graphTallyQuery, inventoryGuestsQuery, inventoryHostsQuery, inventorySubscriptionsQuery } = queries;
-
- const updatedGraphTallyQuery = reduxHelpers.setApiQuery(query, rhsmConstants.RHSM_API_QUERY_SET_TALLY_CAPACITY_TYPES);
- const updatedInventoryGuestsQuery = reduxHelpers.setApiQuery(query, rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES);
- const updatedInventoryHostsQuery = reduxHelpers.setApiQuery(query, rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES);
- const updatedInventorySubscriptionsQuery = reduxHelpers.setApiQuery(
- query,
- rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES
- );
-
- return {
- query,
- graphTallyQuery: { ...updatedGraphTallyQuery, ...graphTallyQuery },
- inventoryGuestsQuery: { ...updatedInventoryGuestsQuery, ...inventoryGuestsQuery },
- inventoryHostsQuery: { ...updatedInventoryHostsQuery, ...inventoryHostsQuery },
- inventorySubscriptionsQuery: { ...updatedInventorySubscriptionsQuery, ...inventorySubscriptionsQuery },
- toolbarQuery: query
- };
-};
-
-const apiQueries = {
- parseRhsmQuery
-};
-
-export { apiQueries as default, apiQueries };
diff --git a/src/redux/common/index.js b/src/redux/common/index.js
index 8f4132fd7..979ae9b16 100644
--- a/src/redux/common/index.js
+++ b/src/redux/common/index.js
@@ -1,4 +1,3 @@
-import { apiQueries } from './apiQueries';
import { reduxHelpers } from './reduxHelpers';
-export { reduxHelpers as default, reduxHelpers, apiQueries };
+export { reduxHelpers as default, reduxHelpers };
diff --git a/src/redux/index.js b/src/redux/index.js
index ed597257a..197de88e0 100644
--- a/src/redux/index.js
+++ b/src/redux/index.js
@@ -2,10 +2,9 @@ import { connect } from 'react-redux';
import { withRouter } from 'react-router-dom';
import { store } from './store';
import { reduxActions } from './actions';
-import { reduxHelpers, apiQueries } from './common';
+import { reduxHelpers } from './common';
import { storeHooks } from './hooks';
import { reduxReducers } from './reducers';
-import { reduxSelectors } from './selectors';
import { reduxTypes } from './types';
/**
@@ -18,15 +17,4 @@ import { reduxTypes } from './types';
const connectRouter = (mapStateToProps, mapDispatchToProps) => component =>
withRouter(connect(mapStateToProps, mapDispatchToProps)(component));
-export {
- apiQueries,
- connect,
- connectRouter,
- reduxActions,
- reduxHelpers,
- reduxReducers,
- reduxSelectors,
- reduxTypes,
- store,
- storeHooks
-};
+export { connect, connectRouter, reduxActions, reduxHelpers, reduxReducers, reduxTypes, store, storeHooks };
diff --git a/src/redux/selectors/__tests__/__snapshots__/graphCardSelectors.test.js.snap b/src/redux/selectors/__tests__/__snapshots__/graphCardSelectors.test.js.snap
deleted file mode 100644
index 96ea1ad22..000000000
--- a/src/redux/selectors/__tests__/__snapshots__/graphCardSelectors.test.js.snap
+++ /dev/null
@@ -1,2179 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`GraphCardSelectors should handle pending state on a product ID: pending 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "graphData": {},
- "meta": {},
- "pending": true,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should map a fulfilled product ID response to an aggregated output: fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 2,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 4,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 1,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 2,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 1,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 2,
- },
- ],
- "instanceHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 1,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 2,
- },
- ],
- "physicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 1,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": null,
- },
- ],
- "sockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 1,
- "y": 2,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 2,
- "y": 4,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 100,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": true,
- "x": 1,
- "y": null,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": true,
- "x": 2,
- "y": null,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should pass minimal data on a product ID without a product ID provided: no product id error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "graphData": {},
- "meta": {},
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should pass minimal data on a product ID without granularity provided: no granularity error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "graphData": {},
- "meta": {},
- "pending": false,
- "query": {},
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should pass minimal data on missing a reducer response: missing reducer error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "graphData": {},
- "meta": {},
- "pending": false,
- "query": {},
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data from the in memory cache: cached data: ERROR, query mismatch 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "instanceHours": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "physicalSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "sockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 100,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data from the in memory cache: cached data: cache used and pending 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "instanceHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "physicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "sockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 100,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data from the in memory cache: cached data: initial fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "instanceHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "physicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "sockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 100,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data from the in memory cache: cached data: update and fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "instanceHours": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "physicalSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 1,
- },
- ],
- "sockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasCloudigradeData": true,
- "hasCloudigradeMismatch": true,
- "hasData": true,
- "x": 0,
- "y": 2,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 50,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2018-07-04T00:00:00.000Z,
- "hasInfinite": false,
- "x": 0,
- "y": 100,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data on a product ID when the api response is missing expected properties: data populated, missing properties 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "cores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "hasCloudigradeData": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "hasCloudigradeMismatch": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "hasData": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 1,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "instanceHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "physicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 2,
- },
- ],
- "sockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 2,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 1,
- "y": 2,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 2,
- "y": 4,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdHasInfiniteQuantity": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 50,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 50,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 50,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 50,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 100,
- },
- {
- "date": 2019-09-05T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 1,
- "y": 0,
- },
- {
- "date": 2019-09-06T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 2,
- "y": 100,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should populate data on a product ID when the api response provided mismatches index or date: data populated on mismatch fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "graphData": {
- "cloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "cloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "coreHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1000.03,
- },
- ],
- "cores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 2,
- },
- ],
- "hasCloudigradeData": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "hasCloudigradeMismatch": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "hasData": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "hypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1,
- },
- ],
- "hypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1,
- },
- ],
- "instanceHours": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "physicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1,
- },
- ],
- "physicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 1,
- },
- ],
- "sockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasCloudigradeData": undefined,
- "hasCloudigradeMismatch": undefined,
- "hasData": undefined,
- "x": 0,
- "y": 2,
- },
- ],
- "thresholdCloudCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudInstanceCount": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCloudSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdDate": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHasInfiniteQuantity": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdHypervisorSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalCores": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdPhysicalSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- "thresholdSockets": [
- {
- "date": 2019-09-04T00:00:00.000Z,
- "hasInfinite": undefined,
- "x": 0,
- "y": 0,
- },
- ],
- },
- "meta": {
- "count": undefined,
- "totalCoreHours": undefined,
- "totalInstanceHours": undefined,
- },
- "pending": false,
- "query": {
- "granularity": "Daily",
- },
- "status": undefined,
-}
-`;
-
-exports[`GraphCardSelectors should return specific selectors: selectors 1`] = `
-{
- "graphCard": [Function],
- "makeGraphCard": [Function],
-}
-`;
diff --git a/src/redux/selectors/__tests__/__snapshots__/guestsListSelectors.test.js.snap b/src/redux/selectors/__tests__/__snapshots__/guestsListSelectors.test.js.snap
deleted file mode 100644
index 74fc6d2f3..000000000
--- a/src/redux/selectors/__tests__/__snapshots__/guestsListSelectors.test.js.snap
+++ /dev/null
@@ -1,84 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`GuestsListSelectors should handle pending state on an ID: pending 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "listData": [],
- "pending": true,
- "status": undefined,
-}
-`;
-
-exports[`GuestsListSelectors should map a fulfilled ID response to an aggregated output: fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "listData": [
- {
- "displayName": "db.lorem.com",
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "lastSeen": 2019-07-03T00:00:00.000Z,
- "subscriptionManagerId": "adafd9d5-5b00-42fa-a6c9-75801d45cc6d",
- },
- {
- "displayName": "db.ipsum.com",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "subscriptionManagerId": "b101a72f-1859-4489-acb8-d6d31c2578c4",
- },
- ],
- "pending": false,
- "status": undefined,
-}
-`;
-
-exports[`GuestsListSelectors should pass minimal data on an ID without an ID provided: no id error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "listData": [],
- "pending": false,
- "status": undefined,
-}
-`;
-
-exports[`GuestsListSelectors should pass minimal data on missing a reducer response: missing reducer error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "listData": [],
- "pending": false,
- "status": undefined,
-}
-`;
-
-exports[`GuestsListSelectors should populate data on an ID when the api response is missing expected properties: data populated, missing properties 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "listData": [
- {
- "displayName": null,
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "lastSeen": null,
- "subscriptionManagerId": "adafd9d5-5b00-42fa-a6c9-75801d45cc6d",
- },
- {
- "displayName": "db.example.com",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "status": undefined,
-}
-`;
-
-exports[`GuestsListSelectors should return specific selectors: selectors 1`] = `
-{
- "guestsList": [Function],
- "makeGuestsList": [Function],
-}
-`;
diff --git a/src/redux/selectors/__tests__/__snapshots__/inventoryListSelectors.test.js.snap b/src/redux/selectors/__tests__/__snapshots__/inventoryListSelectors.test.js.snap
deleted file mode 100644
index 017618112..000000000
--- a/src/redux/selectors/__tests__/__snapshots__/inventoryListSelectors.test.js.snap
+++ /dev/null
@@ -1,275 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`InventoryListSelectors should handle pending state on a product ID: pending 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "itemCount": 0,
- "listData": [],
- "pending": true,
- "query": {},
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should map a fulfilled product ID response to an aggregated output: fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.lorem.com",
- "hardwareType": "physical",
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "inventoryId": null,
- "lastSeen": 2019-07-03T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.ipsum.com",
- "hardwareType": "physical",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "inventoryId": null,
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should pass minimal data on a product ID without a product ID provided: no product id error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "itemCount": 0,
- "listData": [],
- "pending": false,
- "query": {},
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should pass minimal data on missing a reducer response: missing reducer error 1`] = `
-{
- "error": false,
- "fulfilled": false,
- "itemCount": 0,
- "listData": [],
- "pending": false,
- "query": {},
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data from the in memory cache: cached data: ERROR, cancelled API call, maintain prior response 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.ipsum.com",
- "hardwareType": "physical",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "inventoryId": null,
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data from the in memory cache: cached data: cache used and pending 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.lorem.com",
- "hardwareType": "physical",
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "inventoryId": null,
- "lastSeen": 2019-07-03T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data from the in memory cache: cached data: initial fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.lorem.com",
- "hardwareType": "physical",
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "inventoryId": null,
- "lastSeen": 2019-07-03T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data from the in memory cache: cached data: query updated and fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 3,
- "displayName": "db.ipsum-lorem.com",
- "hardwareType": "virtual",
- "insightsId": "XXXXXXXXX-1c9f-42f4-8910-dcef6e970852",
- "inventoryId": null,
- "lastSeen": 2019-09-05T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 2,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data from the in memory cache: cached data: updated and fulfilled 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": "db.ipsum.com",
- "hardwareType": "physical",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "inventoryId": null,
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should populate data on a product ID when the api response is missing expected properties: data populated, missing properties 1`] = `
-{
- "error": false,
- "fulfilled": true,
- "itemCount": 0,
- "listData": [
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": 2,
- "displayName": null,
- "hardwareType": null,
- "insightsId": "d6214a0b-b344-4778-831c-d53dcacb2da3",
- "inventoryId": null,
- "lastSeen": null,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": 1,
- "subscriptionManagerId": null,
- },
- {
- "cloudProvider": null,
- "coreHours": null,
- "cores": null,
- "displayName": "db.example.com",
- "hardwareType": "physical",
- "insightsId": "9358e312-1c9f-42f4-8910-dcef6e970852",
- "inventoryId": null,
- "lastSeen": 2019-09-04T00:00:00.000Z,
- "measurementType": null,
- "numberOfGuests": null,
- "sockets": null,
- "subscriptionManagerId": null,
- },
- ],
- "pending": false,
- "query": {
- "sla": "Premium",
- },
- "status": undefined,
-}
-`;
-
-exports[`InventoryListSelectors should return specific selectors: selectors 1`] = `
-{
- "inventoryList": [Function],
- "makeInventoryList": [Function],
-}
-`;
diff --git a/src/redux/selectors/__tests__/__snapshots__/userSelectors.test.js.snap b/src/redux/selectors/__tests__/__snapshots__/userSelectors.test.js.snap
deleted file mode 100644
index c63ab6ee4..000000000
--- a/src/redux/selectors/__tests__/__snapshots__/userSelectors.test.js.snap
+++ /dev/null
@@ -1,76 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`UserSelectors should pass error state data through response: error state data 1`] = `
-{
- "session": {
- "admin": false,
- "authorized": {},
- "entitled": false,
- "error": true,
- "errorCodes": [
- "loremIpsum",
- ],
- "errorMessage": "lorem ipsum",
- "permissions": {},
- "status": 403,
- },
-}
-`;
-
-exports[`UserSelectors should pass existing state data through response: existing state data 1`] = `
-{
- "session": {
- "admin": false,
- "authorized": {},
- "entitled": false,
- "error": false,
- "permissions": {},
- },
-}
-`;
-
-exports[`UserSelectors should pass minimal data on missing a reducer response: missing reducer error 1`] = `
-{
- "session": {
- "admin": false,
- "authorized": {},
- "entitled": false,
- "error": false,
- "permissions": {},
- },
-}
-`;
-
-exports[`UserSelectors should pass transformed data on fulfill: fulfilled state data 1`] = `
-{
- "session": {
- "admin": false,
- "authorized": {
- "subscriptions": true,
- },
- "entitled": true,
- "error": false,
- "permissions": [
- {
- "subscriptions": {
- "all": true,
- "resources": {
- "*": {
- "*": [],
- "loremCustom": [],
- "read": [],
- },
- },
- },
- },
- ],
- },
-}
-`;
-
-exports[`UserSelectors should return specific selectors: selectors 1`] = `
-{
- "makeUserSession": [Function],
- "userSession": [Function],
-}
-`;
diff --git a/src/redux/selectors/__tests__/graphCardSelectors.test.js b/src/redux/selectors/__tests__/graphCardSelectors.test.js
deleted file mode 100644
index 0a3a3c789..000000000
--- a/src/redux/selectors/__tests__/graphCardSelectors.test.js
+++ /dev/null
@@ -1,413 +0,0 @@
-import graphCardSelectors from '../graphCardSelectors';
-import {
- RHSM_API_QUERY_GRANULARITY_TYPES as GRANULARITY_TYPES,
- RHSM_API_QUERY_TYPES,
- rhsmApiTypes
-} from '../../../types/rhsmApiTypes';
-
-describe('GraphCardSelectors', () => {
- it('should return specific selectors', () => {
- expect(graphCardSelectors).toMatchSnapshot('selectors');
- });
-
- it('should pass minimal data on missing a reducer response', () => {
- const state = {};
- expect(graphCardSelectors.graphCard(state)).toMatchSnapshot('missing reducer error');
- });
-
- it('should pass minimal data on a product ID without granularity provided', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum ID missing granularity'
- };
- const state = {
- graph: {
- reportCapacity: {
- fulfilled: true,
- metaId: 'Lorem Ipsum ID missing granularity',
- metaQuery: {},
- data: [
- { [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [] },
- { [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [] }
- ]
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('no granularity error');
- });
-
- it('should pass minimal data on a product ID without a product ID provided', () => {
- const props = {
- viewId: 'test',
- productId: undefined,
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const state = {
- graph: {
- reportCapacity: {
- fulfilled: true,
- metaId: undefined,
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- { [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [] },
- { [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [] }
- ]
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('no product id error');
- });
-
- it('should handle pending state on a product ID', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum ID pending state',
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const state = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum ID pending state': {
- pending: true,
- metaId: 'Lorem Ipsum ID pending state',
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- { [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [] },
- { [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [] }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('pending');
- });
-
- it('should populate data on a product ID when the api response provided mismatches index or date', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum mismatched index or date',
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const state = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum mismatched index or date': {
- fulfilled: true,
- metaId: 'Lorem Ipsum mismatched index or date',
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORE_HOURS]: 1000.02578,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1
- }
- ]
- },
- { [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [] }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('data populated on mismatch fulfilled');
- });
-
- it('should populate data on a product ID when the api response is missing expected properties', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum missing expected properties',
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const state = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum missing expected properties': {
- fulfilled: true,
- metaId: 'Lorem Ipsum missing expected properties',
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-05T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-06T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 4,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 2
- }
- ]
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-05T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 0,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 0,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 0
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-06T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50
- }
- ]
- }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('data populated, missing properties');
- });
-
- it('should map a fulfilled product ID response to an aggregated output', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum fulfilled aggregated output',
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const state = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum fulfilled aggregated output': {
- fulfilled: true,
- metaId: 'Lorem Ipsum fulfilled aggregated output',
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]: true
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-05T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]: true
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-06T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 4,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 4,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: null,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]: true
- }
- ]
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]: false
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-05T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 0,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 0,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 0,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]: true
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-06T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: null,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]: true
- }
- ]
- }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(state, props)).toMatchSnapshot('fulfilled');
- });
-
- it('should populate data from the in memory cache', () => {
- const props = {
- viewId: 'cache-test',
- productId: 'Lorem Ipsum ID cached',
- query: { [RHSM_API_QUERY_TYPES.GRANULARITY]: GRANULARITY_TYPES.DAILY }
- };
- const stateInitialFulfilled = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum ID cached': {
- fulfilled: true,
- metaId: 'Lorem Ipsum ID cached',
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.DAILY
- },
- data: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]: true
- }
- ]
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2019-09-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]: false
- }
- ]
- }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(stateInitialFulfilled, props)).toMatchSnapshot(
- 'cached data: initial fulfilled'
- );
-
- const statePending = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.graph.reportCapacity['Lorem Ipsum ID cached'],
- pending: true
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(statePending, props)).toMatchSnapshot('cached data: cache used and pending');
-
- const stateFulfilled = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.graph.reportCapacity['Lorem Ipsum ID cached'],
- fulfilled: true,
- data: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]: '2018-07-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HYPERVISOR_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_CORES]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.PHYSICAL_SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA]: true,
- [rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]: true
- }
- ]
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.DATE]: '2018-07-04T00:00:00.000Z',
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.SOCKETS]: 100,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HYPERVISOR_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.PHYSICAL_SOCKETS]: 50,
- [rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]: false
- }
- ]
- }
- ]
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(stateFulfilled, props)).toMatchSnapshot('cached data: update and fulfilled');
-
- const stateFulfilledQueryMismatch = {
- graph: {
- reportCapacity: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.graph.reportCapacity['Lorem Ipsum ID cached'],
- metaQuery: {
- [RHSM_API_QUERY_TYPES.GRANULARITY]: rhsmApiTypes.RHSM_API_QUERY_GRANULARITY_TYPES.WEEKLY
- }
- }
- }
- }
- };
-
- expect(graphCardSelectors.graphCard(stateFulfilledQueryMismatch, props)).toMatchSnapshot(
- 'cached data: ERROR, query mismatch'
- );
- });
-});
diff --git a/src/redux/selectors/__tests__/guestsListSelectors.test.js b/src/redux/selectors/__tests__/guestsListSelectors.test.js
deleted file mode 100644
index 026445584..000000000
--- a/src/redux/selectors/__tests__/guestsListSelectors.test.js
+++ /dev/null
@@ -1,131 +0,0 @@
-import guestsListSelectors from '../guestsListSelectors';
-import { rhsmApiTypes } from '../../../types/rhsmApiTypes';
-
-describe('GuestsListSelectors', () => {
- it('should return specific selectors', () => {
- expect(guestsListSelectors).toMatchSnapshot('selectors');
- });
-
- it('should pass minimal data on missing a reducer response', () => {
- const state = {};
- expect(guestsListSelectors.guestsList(state)).toMatchSnapshot('missing reducer error');
- });
-
- it('should pass minimal data on an ID without an ID provided', () => {
- const props = {
- id: undefined
- };
- const state = {
- inventory: {
- hostsGuests: {
- fulfilled: true,
- metaId: undefined,
- metaQuery: {},
- data: { [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [] }
- }
- }
- };
-
- expect(guestsListSelectors.guestsList(state, props)).toMatchSnapshot('no id error');
- });
-
- it('should handle pending state on an ID', () => {
- const props = {
- id: 'Lorem Ipsum ID pending state'
- };
- const state = {
- inventory: {
- hostsGuests: {
- 'Lorem Ipsum ID pending state': {
- pending: true,
- metaId: 'Lorem Ipsum ID pending state',
- metaQuery: {},
- data: { [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [] }
- }
- }
- }
- };
-
- expect(guestsListSelectors.guestsList(state, props)).toMatchSnapshot('pending');
- });
-
- it('should populate data on an ID when the api response is missing expected properties', () => {
- const props = {
- id: 'Lorem Ipsum missing expected properties'
- };
- const state = {
- inventory: {
- hostsGuests: {
- 'Lorem Ipsum missing expected properties': {
- fulfilled: true,
- metaId: 'Lorem Ipsum missing expected properties',
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.ID]:
- 'd6214a0b-b344-4778-831c-d53dcacb2da3',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.SUBSCRIPTION_ID]:
- 'adafd9d5-5b00-42fa-a6c9-75801d45cc6d'
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.ID]:
- '9358e312-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.NAME]: 'db.example.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.LAST_SEEN]: '2019-09-04T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(guestsListSelectors.guestsList(state, props)).toMatchSnapshot('data populated, missing properties');
- });
-
- it('should map a fulfilled ID response to an aggregated output', () => {
- const props = {
- id: 'Lorem Ipsum fulfilled aggregated output'
- };
- const state = {
- inventory: {
- hostsGuests: {
- 'Lorem Ipsum fulfilled aggregated output': {
- fulfilled: true,
- metaId: 'Lorem Ipsum fulfilled aggregated output',
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.LIMIT]: 10,
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.OFFSET]: 0
- },
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.ID]:
- 'd6214a0b-b344-4778-831c-d53dcacb2da3',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.NAME]: 'db.lorem.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.SUBSCRIPTION_ID]:
- 'adafd9d5-5b00-42fa-a6c9-75801d45cc6d',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.LAST_SEEN]: '2019-07-03T00:00:00.000Z'
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.ID]:
- '9358e312-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.NAME]: 'db.ipsum.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.SUBSCRIPTION_ID]:
- 'b101a72f-1859-4489-acb8-d6d31c2578c4',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES.LAST_SEEN]: '2019-09-04T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(guestsListSelectors.guestsList(state, props)).toMatchSnapshot('fulfilled');
- });
-});
diff --git a/src/redux/selectors/__tests__/inventoryListSelectors.test.js b/src/redux/selectors/__tests__/inventoryListSelectors.test.js
deleted file mode 100644
index e00ff2268..000000000
--- a/src/redux/selectors/__tests__/inventoryListSelectors.test.js
+++ /dev/null
@@ -1,273 +0,0 @@
-import inventoryListSelectors from '../inventoryListSelectors';
-import { rhsmApiTypes } from '../../../types/rhsmApiTypes';
-
-describe('InventoryListSelectors', () => {
- it('should return specific selectors', () => {
- expect(inventoryListSelectors).toMatchSnapshot('selectors');
- });
-
- it('should pass minimal data on missing a reducer response', () => {
- const state = {};
- expect(inventoryListSelectors.inventoryList(state)).toMatchSnapshot('missing reducer error');
- });
-
- it('should pass minimal data on a product ID without a product ID provided', () => {
- const props = {
- viewId: 'test',
- productId: undefined,
- query: {}
- };
- const state = {
- inventory: {
- hostsInventory: {
- fulfilled: true,
- metaId: undefined,
- metaQuery: {},
- data: { [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [] }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(state, props)).toMatchSnapshot('no product id error');
- });
-
- it('should handle pending state on a product ID', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum ID pending state'
- };
- const state = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID pending state': {
- pending: true,
- metaId: 'Lorem Ipsum ID pending state',
- metaQuery: {},
- data: { [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [] }
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(state, props)).toMatchSnapshot('pending');
- });
-
- it('should populate data on a product ID when the api response is missing expected properties', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum missing expected properties',
- query: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- }
- };
- const state = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum missing expected properties': {
- fulfilled: true,
- metaId: 'Lorem Ipsum missing expected properties',
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- },
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: 'd6214a0b-b344-4778-831c-d53dcacb2da3',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 1
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: '9358e312-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.example.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'physical',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-09-04T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(state, props)).toMatchSnapshot('data populated, missing properties');
- });
-
- it('should map a fulfilled product ID response to an aggregated output', () => {
- const props = {
- viewId: 'test',
- productId: 'Lorem Ipsum fulfilled aggregated output',
- query: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- }
- };
- const state = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum fulfilled aggregated output': {
- fulfilled: true,
- metaId: 'Lorem Ipsum fulfilled aggregated output',
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- },
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: 'd6214a0b-b344-4778-831c-d53dcacb2da3',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.lorem.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'physical',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-07-03T00:00:00.000Z'
- },
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: '9358e312-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.ipsum.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'physical',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-09-04T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(state, props)).toMatchSnapshot('fulfilled');
- });
-
- it('should populate data from the in memory cache', () => {
- const props = {
- viewId: 'cache-test',
- productId: 'Lorem Ipsum ID cached',
- query: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- }
- };
- const stateInitialFulfilled = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID cached': {
- fulfilled: true,
- metaId: 'Lorem Ipsum ID cached',
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.PREMIUM
- },
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: 'd6214a0b-b344-4778-831c-d53dcacb2da3',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.lorem.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'physical',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-07-03T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(stateInitialFulfilled, props)).toMatchSnapshot(
- 'cached data: initial fulfilled'
- );
-
- const statePending = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.inventory.hostsInventory['Lorem Ipsum ID cached'],
- pending: true
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(statePending, props)).toMatchSnapshot(
- 'cached data: cache used and pending'
- );
-
- const stateFulfilled = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.inventory.hostsInventory['Lorem Ipsum ID cached'],
- fulfilled: true,
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: '9358e312-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.ipsum.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 1,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'physical',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-09-04T00:00:00.000Z'
- }
- ]
- }
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(stateFulfilled, props)).toMatchSnapshot(
- 'cached data: updated and fulfilled'
- );
-
- const stateCancelled = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.inventory.hostsInventory['Lorem Ipsum ID cached'],
- cancelled: true,
- fulfilled: false
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(stateCancelled, props)).toMatchSnapshot(
- 'cached data: ERROR, cancelled API call, maintain prior response'
- );
-
- const stateFulfilledQueryUpdated = {
- inventory: {
- hostsInventory: {
- 'Lorem Ipsum ID cached': {
- ...stateInitialFulfilled.inventory.hostsInventory['Lorem Ipsum ID cached'],
- metaQuery: {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.NONE
- },
- fulfilled: true,
- data: {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: [
- {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.ID]: 'XXXXXXXXX-1c9f-42f4-8910-dcef6e970852',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.NAME]: 'db.ipsum-lorem.com',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.CORES]: 3,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.SOCKETS]: 2,
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.HARDWARE]: 'virtual',
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN]: '2019-09-05T00:00:00.000Z'
- }
- ]
- }
- }
- }
- },
- view: {
- query: {
- 'Lorem Ipsum ID cached': {
- [rhsmApiTypes.RHSM_API_QUERY_TYPES.SLA]: rhsmApiTypes.RHSM_API_QUERY_SLA_TYPES.NONE
- }
- }
- }
- };
-
- expect(inventoryListSelectors.inventoryList(stateFulfilledQueryUpdated, props)).toMatchSnapshot(
- 'cached data: query updated and fulfilled'
- );
- });
-});
diff --git a/src/redux/selectors/__tests__/userSelectors.test.js b/src/redux/selectors/__tests__/userSelectors.test.js
deleted file mode 100644
index 7de27c0ed..000000000
--- a/src/redux/selectors/__tests__/userSelectors.test.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import userSelectors from '../userSelectors';
-
-describe('UserSelectors', () => {
- it('should return specific selectors', () => {
- expect(userSelectors).toMatchSnapshot('selectors');
- });
-
- it('should pass minimal data on missing a reducer response', () => {
- const state = {};
- expect(userSelectors.userSession(state)).toMatchSnapshot('missing reducer error');
- });
-
- it('should pass existing state data through response', () => {
- const state = {
- user: {
- session: {
- locale: 'en-US'
- }
- }
- };
-
- expect(userSelectors.userSession(state)).toMatchSnapshot('existing state data');
- });
-
- it('should pass error state data through response', () => {
- const state = {
- user: {
- errors: {
- error: true,
- errorCodes: ['loremIpsum'],
- errorMessage: 'lorem ipsum',
- status: 403
- }
- }
- };
-
- expect(userSelectors.userSession(state)).toMatchSnapshot('error state data');
- });
-
- it('should pass transformed data on fulfill', () => {
- const state = {
- user: {
- auth: {
- fulfilled: true,
- data: [
- {
- isAdmin: false,
- isEntitled: true
- },
- {
- permissions: [
- {
- subscriptions: {
- all: true,
- resources: {
- '*': {
- '*': [],
- loremCustom: [],
- read: []
- }
- }
- }
- }
- ],
- authorized: {
- subscriptions: true
- }
- }
- ]
- }
- }
- };
-
- expect(userSelectors.userSession(state)).toMatchSnapshot('fulfilled state data');
- });
-});
diff --git a/src/redux/selectors/graphCardSelectors.js b/src/redux/selectors/graphCardSelectors.js
deleted file mode 100644
index 5b4e38e3f..000000000
--- a/src/redux/selectors/graphCardSelectors.js
+++ /dev/null
@@ -1,208 +0,0 @@
-import { createSelector } from 'reselect';
-import LruCache from 'lru-cache';
-import moment from 'moment';
-import _isEqual from 'lodash/isEqual';
-import _camelCase from 'lodash/camelCase';
-import { rhsmApiTypes } from '../../types/rhsmApiTypes';
-import { reduxHelpers } from '../common/reduxHelpers';
-import { apiQueries } from '../common';
-
-/**
- * Selector cache.
- *
- * @private
- * @type {object}
- */
-const selectorCache = new LruCache({
- ttl: Number.parseInt(process.env.REACT_APP_SELECTOR_CACHE, 10),
- max: 10,
- allowStale: true,
- updateAgeOnGet: true
-});
-
-/**
- * Return a combined state, props object.
- *
- * @private
- * @param {object} state
- * @param {object} props
- * @returns {object}
- */
-const statePropsFilter = (state, props = {}) => ({
- ...state.graph?.reportCapacity?.[props.productId],
- ...{
- viewId: props.viewId,
- productId: props.productId
- }
-});
-
-/**
- * Return a combined query object.
- *
- * @param {object} state
- * @param {object} props
- * @returns {object}
- */
-const queryFilter = (state, props = {}) => {
- const { graphTallyQuery: query } = apiQueries.parseRhsmQuery(
- {
- ...props.query,
- ...state.view?.query?.[props.productId],
- ...state.view?.query?.[props.viewId]
- },
- {
- graphTallyQuery: { ...state.view?.graphTallyQuery?.[props.viewId] }
- }
- );
-
- return query;
-};
-
-/**
- * Create selector, transform combined state, props into a consumable graph/charting object.
- *
- * @type {{pending: boolean, fulfilled: boolean, graphData: object, error: boolean, status: (*|number)}}
- */
-const selector = createSelector([statePropsFilter, queryFilter], (response, query = {}) => {
- const { viewId = null, productId = null, metaId, metaQuery = {}, ...responseData } = response || {};
-
- const updatedResponseData = {
- error: responseData.error || false,
- fulfilled: false,
- pending: responseData.pending || responseData.cancelled || false,
- graphData: {},
- meta: {},
- query,
- status: responseData.status
- };
-
- const responseMetaQuery = { ...metaQuery };
-
- const cache =
- (viewId && productId && selectorCache.get(`${viewId}_${productId}_${JSON.stringify(query)}`)) || undefined;
-
- Object.assign(updatedResponseData, { ...cache });
-
- if (responseData.fulfilled && productId === metaId && _isEqual(query, responseMetaQuery)) {
- const [report, capacity] = responseData.data;
- const reportData = report?.[rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA] || [];
- const reportMeta = report?.[rhsmApiTypes.RHSM_API_RESPONSE_META] || {};
- const capacityData = capacity?.[rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA] || [];
-
- /**
- * ToDo: Reevaluate this reset on graphData when working with Reselect's memoize.
- * Creating a new object i.e. updatedResponseData.graphData = {}; causes an update,
- * which in turn causes the graph to reload and flash.
- */
- Object.keys(updatedResponseData.graphData).forEach(graphDataKey => {
- updatedResponseData.graphData[graphDataKey] = [];
- });
-
- // Populate expected API response values with undefined
- const [tallySchema = {}, capacitySchema = {}] = reduxHelpers.setResponseSchemas([
- rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES,
- rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES
- ]);
-
- // Apply "display logic" then return a custom value for Reporting graph entries
- const customReportValue = (data, key, presetData) => ({
- ...presetData,
- hasData: data[rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_DATA],
- hasCloudigradeData: data[rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_DATA],
- hasCloudigradeMismatch: data[rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.HAS_CLOUDIGRADE_MISMATCH]
- });
-
- // Apply "display logic" then return a custom value for Capacity graph entries
- const customCapacityValue = (data, key, { date, x, y }) => ({
- date,
- x,
- y: data[rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE] === true ? null : y,
- hasInfinite: data[rhsmApiTypes.RHSM_API_RESPONSE_CAPACITY_DATA_TYPES.HAS_INFINITE]
- });
-
- // Generate reflected graph data for number, undefined, and null
- reportData.forEach((value, index) => {
- const date = moment.utc(value[rhsmApiTypes.RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES.DATE]).startOf('day').toDate();
-
- const generateGraphData = ({ graphDataObj, keyPrefix = '', customValue = null }) => {
- Object.keys(graphDataObj).forEach(graphDataObjKey => {
- if (
- typeof graphDataObj[graphDataObjKey] === 'number' ||
- graphDataObj[graphDataObjKey] === undefined ||
- graphDataObj[graphDataObjKey] === null
- ) {
- const casedGraphDataObjKey = _camelCase(`${keyPrefix} ${graphDataObjKey}`).trim();
-
- if (!updatedResponseData.graphData[casedGraphDataObjKey]) {
- updatedResponseData.graphData[casedGraphDataObjKey] = [];
- }
-
- let generatedY;
-
- if (typeof graphDataObj[graphDataObjKey] === 'number') {
- generatedY =
- (Number.isInteger(graphDataObj[graphDataObjKey]) &&
- Number.parseInt(graphDataObj[graphDataObjKey], 10)) ||
- Number.parseFloat(Number.parseFloat(graphDataObj[graphDataObjKey]).toFixed(2));
- } else if (graphDataObj[graphDataObjKey] === undefined) {
- generatedY = 0;
- } else if (graphDataObj[graphDataObjKey] === null) {
- generatedY = graphDataObj[graphDataObjKey];
- }
-
- const updatedItem =
- (typeof customValue === 'function' &&
- customValue(graphDataObj, graphDataObjKey, { date, x: index, y: generatedY })) ||
- {};
-
- updatedResponseData.graphData[casedGraphDataObjKey][index] = {
- date,
- x: index,
- y: generatedY,
- ...updatedItem
- };
- }
- });
- };
-
- generateGraphData({ graphDataObj: { ...tallySchema, ...value }, customValue: customReportValue });
- generateGraphData({
- graphDataObj: { ...capacitySchema, ...capacityData[index] },
- keyPrefix: 'threshold',
- customValue: customCapacityValue
- });
- });
-
- // Generate normalized properties
- const [updatedReportMeta] = reduxHelpers.setNormalizedResponse({
- schema: rhsmApiTypes.RHSM_API_RESPONSE_META_TYPES,
- data: reportMeta
- });
-
- const [meta = {}] = updatedReportMeta || [];
-
- // Update response and cache
- Object.assign(updatedResponseData.meta, meta);
- updatedResponseData.fulfilled = true;
- selectorCache.set(`${viewId}_${productId}_${JSON.stringify(query)}`, { ...updatedResponseData });
- }
-
- return updatedResponseData;
-});
-
-/**
- * Expose selector instance. For scenarios where a selector is reused across component instances.
- *
- * @param {object} defaultProps
- * @returns {{pending: boolean, fulfilled: boolean, graphData: object, error: boolean, status: (*|number)}}
- */
-const makeSelector = defaultProps => (state, props) => ({
- ...selector(state, props, defaultProps)
-});
-
-const graphCardSelectors = {
- graphCard: selector,
- makeGraphCard: makeSelector
-};
-
-export { graphCardSelectors as default, graphCardSelectors, selector, makeSelector };
diff --git a/src/redux/selectors/guestsListSelectors.js b/src/redux/selectors/guestsListSelectors.js
deleted file mode 100644
index 633ace05e..000000000
--- a/src/redux/selectors/guestsListSelectors.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import { createSelector } from 'reselect';
-import { rhsmApiTypes } from '../../types/rhsmApiTypes';
-import { reduxHelpers } from '../common/reduxHelpers';
-import { selector as userSession } from './userSelectors';
-
-/**
- * Return a combined state, props object.
- *
- * @private
- * @param {object} state
- * @param {object} props
- * @returns {object}
- */
-const statePropsFilter = (state, props = {}) => ({
- ...state.inventory?.hostsGuests?.[props.id]
-});
-
-/**
- * Create selector, transform combined state, props into a consumable object.
- *
- * @type {{listData: Array, pending: boolean, fulfilled: boolean, error: boolean, status: (*|number)}}
- */
-const selector = createSelector([statePropsFilter], response => {
- const { metaId, ...responseData } = response || {};
-
- const updatedResponseData = {
- error: responseData.error || false,
- fulfilled: false,
- pending: responseData.pending || responseData.cancelled || false,
- listData: [],
- status: responseData.status
- };
-
- if (responseData.fulfilled) {
- const { [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: listData = [] } = responseData.data || {};
-
- // Apply "display logic" then return a custom value for entries
- const customInventoryValue = ({ key, value }) => {
- switch (key) {
- case rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN:
- return (value && new Date(value)) || null;
- default:
- return value ?? null;
- }
- };
-
- // Generate normalized properties
- const [updatedListData] = reduxHelpers.setNormalizedResponse({
- schema: rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES,
- data: listData,
- customResponseValue: customInventoryValue
- });
-
- // Update response and cache
- updatedResponseData.fulfilled = true;
- updatedResponseData.listData = updatedListData;
- }
-
- return updatedResponseData;
-});
-
-/**
- * Expose selector instance. For scenarios where a selector is reused across component instances.
- *
- * @param {object} defaultProps
- * @returns {{listData: Array, pending: boolean, fulfilled: boolean, error: boolean, session: object,
- * status: (*|number)}}
- */
-const makeSelector = defaultProps => (state, props) => ({
- ...userSession(state, props, defaultProps),
- ...selector(state, props, defaultProps)
-});
-
-const guestsListSelectors = {
- guestsList: selector,
- makeGuestsList: makeSelector
-};
-
-export { guestsListSelectors as default, guestsListSelectors, selector, makeSelector };
diff --git a/src/redux/selectors/index.js b/src/redux/selectors/index.js
deleted file mode 100644
index debc19620..000000000
--- a/src/redux/selectors/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import guestsListSelectors from './guestsListSelectors';
-import graphCardSelectors from './graphCardSelectors';
-import inventoryListSelectors from './inventoryListSelectors';
-import userSelectors from './userSelectors';
-
-const reduxSelectors = {
- guestsList: guestsListSelectors,
- graphCard: graphCardSelectors,
- inventoryList: inventoryListSelectors,
- user: userSelectors
-};
-
-export { reduxSelectors as default, reduxSelectors };
diff --git a/src/redux/selectors/inventoryListSelectors.js b/src/redux/selectors/inventoryListSelectors.js
deleted file mode 100644
index a4347e5c6..000000000
--- a/src/redux/selectors/inventoryListSelectors.js
+++ /dev/null
@@ -1,161 +0,0 @@
-import { createSelectorCreator, defaultMemoize } from 'reselect';
-import LruCache from 'lru-cache';
-import _isEqual from 'lodash/isEqual';
-import { rhsmApiTypes } from '../../types/rhsmApiTypes';
-import { reduxHelpers } from '../common/reduxHelpers';
-import { apiQueries } from '../common';
-import { selector as userSession } from './userSelectors';
-
-/**
- * Create a custom "are objects equal" selector.
- *
- * @private
- * @type {Function}}
- */
-const createDeepEqualSelector = createSelectorCreator(defaultMemoize, _isEqual);
-
-/**
- * Selector cache.
- *
- * @private
- * @type {object}
- */
-const selectorCache = new LruCache({
- ttl: Number.parseInt(process.env.REACT_APP_SELECTOR_CACHE, 10),
- max: 10,
- allowStale: true,
- updateAgeOnGet: true
-});
-
-/**
- * Return a combined state, props object.
- *
- * @private
- * @param {object} state
- * @param {object} props
- * @returns {object}
- */
-const statePropsFilter = (state, props = {}) => ({
- ...state.inventory?.hostsInventory?.[props.productId],
- ...{
- viewId: props.viewId,
- productId: props.productId
- }
-});
-
-/**
- * Return a combined query object.
- *
- * @param {object} state
- * @param {object} props
- * @returns {object}
- */
-const queryFilter = (state, props = {}) => {
- const { inventoryHostsQuery: query } = apiQueries.parseRhsmQuery(
- {
- ...props.query,
- ...state.view?.query?.[props.productId],
- ...state.view?.query?.[props.viewId]
- },
- {
- inventoryHostsQuery: {
- ...state.view?.inventoryHostsQuery?.[props.productId],
- ...state.view?.inventoryHostsQuery?.[props.viewId]
- }
- }
- );
-
- return query;
-};
-
-/**
- * Note: We use an in-memory cache to provide the user a pleasant UX experience. To
- * aid in that UX we need "pending" to fire in scenarios that are not loaded in-memory. Because
- * we load the cache first there are scenarios where the previous XHR call is still in state
- * when a subsequent fulfilled XHR call comes through. Without the _isEqual(query, metaQuery) check
- * the overlap of the prior fulfilled call interferes with the pending of the subsequent call.
- */
-/**
- * Create selector, transform combined state, props into a consumable object.
- *
- * @type {{pending: boolean, fulfilled: boolean, listData: object, error: boolean, status: (*|number)}}
- */
-const selector = createDeepEqualSelector([statePropsFilter, queryFilter], (response, query = {}) => {
- const { viewId = null, productId = null, metaId, metaQuery = {}, ...responseData } = response || {};
-
- const updatedResponseData = {
- error: responseData.error || false,
- fulfilled: false,
- pending: responseData.pending || responseData.cancelled || false,
- listData: [],
- itemCount: 0,
- query,
- status: responseData.status
- };
-
- const cache =
- (viewId && productId && selectorCache.get(`${viewId}_${productId}_${JSON.stringify(query)}`)) || undefined;
-
- Object.assign(updatedResponseData, { ...cache });
-
- if (responseData.fulfilled && productId === metaId && _isEqual(query, metaQuery)) {
- const {
- [rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA]: listData = [],
- [rhsmApiTypes.RHSM_API_RESPONSE_META]: listMeta = {}
- } = responseData.data || {};
-
- updatedResponseData.listData.length = 0;
-
- // Apply "display logic" then return a custom value for entries
- const customInventoryValue = ({ key, value }) => {
- switch (key) {
- case rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES.LAST_SEEN:
- return (value && new Date(value)) || null;
- default:
- return value ?? null;
- }
- };
-
- // Generate normalized properties
- const [updatedListData, updatedListMeta] = reduxHelpers.setNormalizedResponse(
- {
- schema: rhsmApiTypes.RHSM_API_RESPONSE_INVENTORY_DATA_TYPES,
- data: listData,
- customResponseValue: customInventoryValue
- },
- {
- schema: rhsmApiTypes.RHSM_API_RESPONSE_META_TYPES,
- data: listMeta
- }
- );
-
- const [meta = {}] = updatedListMeta || [];
-
- // Update response and cache
- updatedResponseData.itemCount = meta[rhsmApiTypes.RHSM_API_RESPONSE_META_TYPES.COUNT] ?? 0;
- updatedResponseData.listData = updatedListData;
- updatedResponseData.fulfilled = true;
- selectorCache.set(`${viewId}_${productId}_${JSON.stringify(query)}`, { ...updatedResponseData });
- }
-
- return updatedResponseData;
-});
-
-/**
- * Expose selector instance. For scenarios where a selector is reused across component instances.
- *
- * @param {object} defaultProps
- * @returns {{pending: boolean, fulfilled: boolean, graphData: object, error: boolean, session: object,
- * status: (*|number)}}
- */
-const makeSelector = defaultProps => (state, props) => ({
- ...userSession(state, props, defaultProps),
- ...selector(state, props, defaultProps)
-});
-
-const inventoryListSelectors = {
- inventoryList: selector,
- makeInventoryList: makeSelector
-};
-
-export { inventoryListSelectors as default, inventoryListSelectors, selector, makeSelector };
diff --git a/src/redux/selectors/userSelectors.js b/src/redux/selectors/userSelectors.js
deleted file mode 100644
index 0f96bc8fe..000000000
--- a/src/redux/selectors/userSelectors.js
+++ /dev/null
@@ -1,74 +0,0 @@
-import { createSelectorCreator, defaultMemoize } from 'reselect';
-import _isEqual from 'lodash/isEqual';
-
-/**
- * ToDo: This selector can be removed after guestsList.deprecated and inventoryList.deprecated components are removed
- */
-/**
- * Create a custom "are objects equal" selector.
- *
- * @private
- * @type {Function}}
- */
-const createDeepEqualSelector = createSelectorCreator(defaultMemoize, _isEqual);
-
-/**
- * Return a combined state, props object.
- *
- * @private
- * @param {object} state
- * @returns {object}
- */
-const statePropsFilter = state => ({
- auth: {
- ...state.user?.auth
- },
- errors: {
- ...state.user?.errors
- }
-});
-
-/**
- * Create selector, transform combined state, props into a consumable graph/charting object.
- *
- * @type {{session: {entitled: boolean, permissions: object, authorized: object, admin: boolean,
- * error: boolean}}}
- */
-const selector = createDeepEqualSelector([statePropsFilter], response => {
- const { errors = {}, auth = {} } = response || {};
- const updatedSession = {
- ...errors,
- admin: false,
- entitled: false,
- error: errors?.error || false,
- authorized: {},
- permissions: {}
- };
-
- if (!updatedSession?.error && auth?.fulfilled) {
- const [user = {}, responsePermissions = {}] = auth?.data || [];
- updatedSession.admin = user.isAdmin;
- updatedSession.entitled = user.isEntitled;
- updatedSession.permissions = responsePermissions.permissions;
- updatedSession.authorized = responsePermissions.authorized;
- }
-
- return { session: updatedSession };
-});
-
-/**
- * Expose selector instance. For scenarios where a selector is reused across component instances.
- *
- * @param {object} defaultProps
- * @returns {{session: {entitled: boolean, permissions: Array, authorized: boolean, admin: boolean}}}
- */
-const makeSelector = defaultProps => (state, props) => ({
- ...selector(state, props, defaultProps)
-});
-
-const userSessionSelectors = {
- userSession: selector,
- makeUserSession: makeSelector
-};
-
-export { userSessionSelectors as default, userSessionSelectors, selector, makeSelector };
diff --git a/src/types/__tests__/__snapshots__/index.test.js.snap b/src/types/__tests__/__snapshots__/index.test.js.snap
deleted file mode 100644
index 60b7a1ef5..000000000
--- a/src/types/__tests__/__snapshots__/index.test.js.snap
+++ /dev/null
@@ -1,847 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`ApiTypes should have specific API properties: all exported api types 1`] = `
-{
- "apiTypes": {
- "rhsmApi": {
- "RHSM_API_PATH_ID_TYPES": {
- "OPENSHIFT": "OpenShift Container Platform",
- "OPENSHIFT_DEDICATED_METRICS": "OpenShift-dedicated-metrics",
- "OPENSHIFT_METRICS": "OpenShift-metrics",
- "RHACS": "rhacs",
- "RHEL": "RHEL",
- "RHEL_ARM": "RHEL for ARM",
- "RHEL_COMPUTE_NODE": "RHEL Compute Node",
- "RHEL_DESKTOP": "RHEL Desktop",
- "RHEL_IBM_POWER": "RHEL for IBM Power",
- "RHEL_IBM_Z": "RHEL for IBM z",
- "RHEL_SERVER": "RHEL Server",
- "RHEL_WORKSTATION": "RHEL Workstation",
- "RHEL_X86": "RHEL for x86",
- "RHODS": "rhods",
- "RHOSAK": "rhosak",
- "SATELLITE": "Satellite",
- "SATELLITE_CAPSULE": "Satellite Capsule",
- "SATELLITE_SERVER": "Satellite Server",
- },
- "RHSM_API_QUERY_GRANULARITY_TYPES": {
- "DAILY": "Daily",
- "MONTHLY": "Monthly",
- "QUARTERLY": "Quarterly",
- "WEEKLY": "Weekly",
- },
- "RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_OPTIN_TYPES": {
- "CONDUIT_SYNC": "enable_conduit_sync",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- },
- "RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES": {
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "SLA": "sla",
- "START_DATE": "beginning",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SLA_TYPES": {
- "NONE": "",
- "PREMIUM": "Premium",
- "SELF": "Self-Support",
- "STANDARD": "Standard",
- },
- "RHSM_API_QUERY_SORT_DIRECTION_TYPES": {
- "ASCENDING": "asc",
- "DESCENDING": "desc",
- },
- "RHSM_API_QUERY_SORT_TYPES": {
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "HARDWARE": "hardware_type",
- "INSTANCE_HOURS": "instance_hours",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "CONDUIT_SYNC": "enable_conduit_sync",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_UOM_TYPES": {
- "CORES": "cores",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_USAGE_TYPES": {
- "DEVELOPMENT": "Development/Test",
- "DISASTER": "Disaster Recovery",
- "PRODUCTION": "Production",
- "UNSPECIFIED": "",
- },
- "RHSM_API_RESPONSE_CAPACITY_DATA": "data",
- "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "DATE": "date",
- "HAS_INFINITE": "has_infinite_quantity",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- "RHSM_API_RESPONSE_DATA": "data",
- "RHSM_API_RESPONSE_ERROR_DATA": "errors",
- "RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES": {
- "GENERIC": "SUBSCRIPTIONS1003",
- "OPTIN": "SUBSCRIPTIONS1004",
- },
- "RHSM_API_RESPONSE_ERROR_DATA_TYPES": {
- "CODE": "code",
- },
- "RHSM_API_RESPONSE_INVENTORY_DATA": "data",
- "RHSM_API_RESPONSE_INVENTORY_DATA_TYPES": {
- "CLOUD_PROVIDER": "cloud_provider",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "GUESTS": "number_of_guests",
- "HARDWARE": "hardware_type",
- "ID": "insights_id",
- "INVENTORY_ID": "inventory_id",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES": {
- "ID": "insights_id",
- "LAST_SEEN": "last_seen",
- "NAME": "display_name",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_LINKS": "links",
- "RHSM_API_RESPONSE_LINKS_TYPES": {
- "FIRST": "first",
- "LAST": "last",
- "NEXT": "next",
- "PREVIOUS": "previous",
- },
- "RHSM_API_RESPONSE_META": "meta",
- "RHSM_API_RESPONSE_META_TYPES": {
- "COUNT": "count",
- "TOTAL_CORE_HOURS": "total_core_hours",
- "TOTAL_INSTANCE_HOURS": "total_instance_hours",
- },
- "RHSM_API_RESPONSE_PRODUCTS_DATA": "data",
- "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "DATE": "date",
- "HAS_CLOUDIGRADE_DATA": "has_cloudigrade_data",
- "HAS_CLOUDIGRADE_MISMATCH": "has_cloudigrade_mismatch",
- "HAS_DATA": "has_data",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "INSTANCE_HOURS": "instance_hours",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- },
- },
- "default": {
- "rhsmApi": {
- "RHSM_API_PATH_ID_TYPES": {
- "OPENSHIFT": "OpenShift Container Platform",
- "OPENSHIFT_DEDICATED_METRICS": "OpenShift-dedicated-metrics",
- "OPENSHIFT_METRICS": "OpenShift-metrics",
- "RHACS": "rhacs",
- "RHEL": "RHEL",
- "RHEL_ARM": "RHEL for ARM",
- "RHEL_COMPUTE_NODE": "RHEL Compute Node",
- "RHEL_DESKTOP": "RHEL Desktop",
- "RHEL_IBM_POWER": "RHEL for IBM Power",
- "RHEL_IBM_Z": "RHEL for IBM z",
- "RHEL_SERVER": "RHEL Server",
- "RHEL_WORKSTATION": "RHEL Workstation",
- "RHEL_X86": "RHEL for x86",
- "RHODS": "rhods",
- "RHOSAK": "rhosak",
- "SATELLITE": "Satellite",
- "SATELLITE_CAPSULE": "Satellite Capsule",
- "SATELLITE_SERVER": "Satellite Server",
- },
- "RHSM_API_QUERY_GRANULARITY_TYPES": {
- "DAILY": "Daily",
- "MONTHLY": "Monthly",
- "QUARTERLY": "Quarterly",
- "WEEKLY": "Weekly",
- },
- "RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_OPTIN_TYPES": {
- "CONDUIT_SYNC": "enable_conduit_sync",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- },
- "RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES": {
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "SLA": "sla",
- "START_DATE": "beginning",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SLA_TYPES": {
- "NONE": "",
- "PREMIUM": "Premium",
- "SELF": "Self-Support",
- "STANDARD": "Standard",
- },
- "RHSM_API_QUERY_SORT_DIRECTION_TYPES": {
- "ASCENDING": "asc",
- "DESCENDING": "desc",
- },
- "RHSM_API_QUERY_SORT_TYPES": {
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "HARDWARE": "hardware_type",
- "INSTANCE_HOURS": "instance_hours",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "CONDUIT_SYNC": "enable_conduit_sync",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_UOM_TYPES": {
- "CORES": "cores",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_USAGE_TYPES": {
- "DEVELOPMENT": "Development/Test",
- "DISASTER": "Disaster Recovery",
- "PRODUCTION": "Production",
- "UNSPECIFIED": "",
- },
- "RHSM_API_RESPONSE_CAPACITY_DATA": "data",
- "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "DATE": "date",
- "HAS_INFINITE": "has_infinite_quantity",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- "RHSM_API_RESPONSE_DATA": "data",
- "RHSM_API_RESPONSE_ERROR_DATA": "errors",
- "RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES": {
- "GENERIC": "SUBSCRIPTIONS1003",
- "OPTIN": "SUBSCRIPTIONS1004",
- },
- "RHSM_API_RESPONSE_ERROR_DATA_TYPES": {
- "CODE": "code",
- },
- "RHSM_API_RESPONSE_INVENTORY_DATA": "data",
- "RHSM_API_RESPONSE_INVENTORY_DATA_TYPES": {
- "CLOUD_PROVIDER": "cloud_provider",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "GUESTS": "number_of_guests",
- "HARDWARE": "hardware_type",
- "ID": "insights_id",
- "INVENTORY_ID": "inventory_id",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES": {
- "ID": "insights_id",
- "LAST_SEEN": "last_seen",
- "NAME": "display_name",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_LINKS": "links",
- "RHSM_API_RESPONSE_LINKS_TYPES": {
- "FIRST": "first",
- "LAST": "last",
- "NEXT": "next",
- "PREVIOUS": "previous",
- },
- "RHSM_API_RESPONSE_META": "meta",
- "RHSM_API_RESPONSE_META_TYPES": {
- "COUNT": "count",
- "TOTAL_CORE_HOURS": "total_core_hours",
- "TOTAL_INSTANCE_HOURS": "total_instance_hours",
- },
- "RHSM_API_RESPONSE_PRODUCTS_DATA": "data",
- "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "DATE": "date",
- "HAS_CLOUDIGRADE_DATA": "has_cloudigrade_data",
- "HAS_CLOUDIGRADE_MISMATCH": "has_cloudigrade_mismatch",
- "HAS_DATA": "has_data",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "INSTANCE_HOURS": "instance_hours",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- },
- },
- "rhsmApiTypes": {
- "RHSM_API_PATH_ID_TYPES": {
- "OPENSHIFT": "OpenShift Container Platform",
- "OPENSHIFT_DEDICATED_METRICS": "OpenShift-dedicated-metrics",
- "OPENSHIFT_METRICS": "OpenShift-metrics",
- "RHACS": "rhacs",
- "RHEL": "RHEL",
- "RHEL_ARM": "RHEL for ARM",
- "RHEL_COMPUTE_NODE": "RHEL Compute Node",
- "RHEL_DESKTOP": "RHEL Desktop",
- "RHEL_IBM_POWER": "RHEL for IBM Power",
- "RHEL_IBM_Z": "RHEL for IBM z",
- "RHEL_SERVER": "RHEL Server",
- "RHEL_WORKSTATION": "RHEL Workstation",
- "RHEL_X86": "RHEL for x86",
- "RHODS": "rhods",
- "RHOSAK": "rhosak",
- "SATELLITE": "Satellite",
- "SATELLITE_CAPSULE": "Satellite Capsule",
- "SATELLITE_SERVER": "Satellite Server",
- },
- "RHSM_API_QUERY_GRANULARITY_TYPES": {
- "DAILY": "Daily",
- "MONTHLY": "Monthly",
- "QUARTERLY": "Quarterly",
- "WEEKLY": "Weekly",
- },
- "RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_OPTIN_TYPES": {
- "CONDUIT_SYNC": "enable_conduit_sync",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- },
- "RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES": {
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "SLA": "sla",
- "START_DATE": "beginning",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SLA_TYPES": {
- "NONE": "",
- "PREMIUM": "Premium",
- "SELF": "Self-Support",
- "STANDARD": "Standard",
- },
- "RHSM_API_QUERY_SORT_DIRECTION_TYPES": {
- "ASCENDING": "asc",
- "DESCENDING": "desc",
- },
- "RHSM_API_QUERY_SORT_TYPES": {
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "HARDWARE": "hardware_type",
- "INSTANCE_HOURS": "instance_hours",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "CONDUIT_SYNC": "enable_conduit_sync",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_UOM_TYPES": {
- "CORES": "cores",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_USAGE_TYPES": {
- "DEVELOPMENT": "Development/Test",
- "DISASTER": "Disaster Recovery",
- "PRODUCTION": "Production",
- "UNSPECIFIED": "",
- },
- "RHSM_API_RESPONSE_CAPACITY_DATA": "data",
- "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "DATE": "date",
- "HAS_INFINITE": "has_infinite_quantity",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- "RHSM_API_RESPONSE_DATA": "data",
- "RHSM_API_RESPONSE_ERROR_DATA": "errors",
- "RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES": {
- "GENERIC": "SUBSCRIPTIONS1003",
- "OPTIN": "SUBSCRIPTIONS1004",
- },
- "RHSM_API_RESPONSE_ERROR_DATA_TYPES": {
- "CODE": "code",
- },
- "RHSM_API_RESPONSE_INVENTORY_DATA": "data",
- "RHSM_API_RESPONSE_INVENTORY_DATA_TYPES": {
- "CLOUD_PROVIDER": "cloud_provider",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "GUESTS": "number_of_guests",
- "HARDWARE": "hardware_type",
- "ID": "insights_id",
- "INVENTORY_ID": "inventory_id",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES": {
- "ID": "insights_id",
- "LAST_SEEN": "last_seen",
- "NAME": "display_name",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_LINKS": "links",
- "RHSM_API_RESPONSE_LINKS_TYPES": {
- "FIRST": "first",
- "LAST": "last",
- "NEXT": "next",
- "PREVIOUS": "previous",
- },
- "RHSM_API_RESPONSE_META": "meta",
- "RHSM_API_RESPONSE_META_TYPES": {
- "COUNT": "count",
- "TOTAL_CORE_HOURS": "total_core_hours",
- "TOTAL_INSTANCE_HOURS": "total_instance_hours",
- },
- "RHSM_API_RESPONSE_PRODUCTS_DATA": "data",
- "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "DATE": "date",
- "HAS_CLOUDIGRADE_DATA": "has_cloudigrade_data",
- "HAS_CLOUDIGRADE_MISMATCH": "has_cloudigrade_mismatch",
- "HAS_DATA": "has_data",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "INSTANCE_HOURS": "instance_hours",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- },
-}
-`;
-
-exports[`ApiTypes should have specific API properties: specific types 1`] = `
-{
- "rhsmApi": {
- "RHSM_API_PATH_ID_TYPES": {
- "OPENSHIFT": "OpenShift Container Platform",
- "OPENSHIFT_DEDICATED_METRICS": "OpenShift-dedicated-metrics",
- "OPENSHIFT_METRICS": "OpenShift-metrics",
- "RHACS": "rhacs",
- "RHEL": "RHEL",
- "RHEL_ARM": "RHEL for ARM",
- "RHEL_COMPUTE_NODE": "RHEL Compute Node",
- "RHEL_DESKTOP": "RHEL Desktop",
- "RHEL_IBM_POWER": "RHEL for IBM Power",
- "RHEL_IBM_Z": "RHEL for IBM z",
- "RHEL_SERVER": "RHEL Server",
- "RHEL_WORKSTATION": "RHEL Workstation",
- "RHEL_X86": "RHEL for x86",
- "RHODS": "rhods",
- "RHOSAK": "rhosak",
- "SATELLITE": "Satellite",
- "SATELLITE_CAPSULE": "Satellite Capsule",
- "SATELLITE_SERVER": "Satellite Server",
- },
- "RHSM_API_QUERY_GRANULARITY_TYPES": {
- "DAILY": "Daily",
- "MONTHLY": "Monthly",
- "QUARTERLY": "Quarterly",
- "WEEKLY": "Weekly",
- },
- "RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_INVENTORY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SET_OPTIN_TYPES": {
- "CONDUIT_SYNC": "enable_conduit_sync",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- },
- "RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES": {
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "SLA": "sla",
- "START_DATE": "beginning",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_SLA_TYPES": {
- "NONE": "",
- "PREMIUM": "Premium",
- "SELF": "Self-Support",
- "STANDARD": "Standard",
- },
- "RHSM_API_QUERY_SORT_DIRECTION_TYPES": {
- "ASCENDING": "asc",
- "DESCENDING": "desc",
- },
- "RHSM_API_QUERY_SORT_TYPES": {
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "HARDWARE": "hardware_type",
- "INSTANCE_HOURS": "instance_hours",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_TYPES": {
- "BILLING_ACCOUNT_ID": "billing_account_id",
- "BILLING_PROVIDER": "billing_provider",
- "CATEGORY": "category",
- "CONDUIT_SYNC": "enable_conduit_sync",
- "DIRECTION": "dir",
- "DISPLAY_NAME": "display_name_contains",
- "END_DATE": "ending",
- "GRANULARITY": "granularity",
- "LIMIT": "limit",
- "OFFSET": "offset",
- "SLA": "sla",
- "SORT": "sort",
- "START_DATE": "beginning",
- "TALLY_REPORT": "enable_tally_reporting",
- "TALLY_SYNC": "enable_tally_sync",
- "UOM": "uom",
- "USAGE": "usage",
- },
- "RHSM_API_QUERY_UOM_TYPES": {
- "CORES": "cores",
- "SOCKETS": "sockets",
- },
- "RHSM_API_QUERY_USAGE_TYPES": {
- "DEVELOPMENT": "Development/Test",
- "DISASTER": "Disaster Recovery",
- "PRODUCTION": "Production",
- "UNSPECIFIED": "",
- },
- "RHSM_API_RESPONSE_CAPACITY_DATA": "data",
- "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "DATE": "date",
- "HAS_INFINITE": "has_infinite_quantity",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- "RHSM_API_RESPONSE_DATA": "data",
- "RHSM_API_RESPONSE_ERROR_DATA": "errors",
- "RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES": {
- "GENERIC": "SUBSCRIPTIONS1003",
- "OPTIN": "SUBSCRIPTIONS1004",
- },
- "RHSM_API_RESPONSE_ERROR_DATA_TYPES": {
- "CODE": "code",
- },
- "RHSM_API_RESPONSE_INVENTORY_DATA": "data",
- "RHSM_API_RESPONSE_INVENTORY_DATA_TYPES": {
- "CLOUD_PROVIDER": "cloud_provider",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "GUESTS": "number_of_guests",
- "HARDWARE": "hardware_type",
- "ID": "insights_id",
- "INVENTORY_ID": "inventory_id",
- "LAST_SEEN": "last_seen",
- "MEASUREMENT": "measurement_type",
- "NAME": "display_name",
- "SOCKETS": "sockets",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES": {
- "ID": "insights_id",
- "LAST_SEEN": "last_seen",
- "NAME": "display_name",
- "SUBSCRIPTION_ID": "subscription_manager_id",
- },
- "RHSM_API_RESPONSE_LINKS": "links",
- "RHSM_API_RESPONSE_LINKS_TYPES": {
- "FIRST": "first",
- "LAST": "last",
- "NEXT": "next",
- "PREVIOUS": "previous",
- },
- "RHSM_API_RESPONSE_META": "meta",
- "RHSM_API_RESPONSE_META_TYPES": {
- "COUNT": "count",
- "TOTAL_CORE_HOURS": "total_core_hours",
- "TOTAL_INSTANCE_HOURS": "total_instance_hours",
- },
- "RHSM_API_RESPONSE_PRODUCTS_DATA": "data",
- "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": {
- "CLOUD_CORES": "cloud_cores",
- "CLOUD_INSTANCES": "cloud_instance_count",
- "CLOUD_SOCKETS": "cloud_sockets",
- "CORES": "cores",
- "CORE_HOURS": "core_hours",
- "DATE": "date",
- "HAS_CLOUDIGRADE_DATA": "has_cloudigrade_data",
- "HAS_CLOUDIGRADE_MISMATCH": "has_cloudigrade_mismatch",
- "HAS_DATA": "has_data",
- "HYPERVISOR_CORES": "hypervisor_cores",
- "HYPERVISOR_SOCKETS": "hypervisor_sockets",
- "INSTANCE_HOURS": "instance_hours",
- "PHYSICAL_CORES": "physical_cores",
- "PHYSICAL_SOCKETS": "physical_sockets",
- "SOCKETS": "sockets",
- },
- },
-}
-`;
diff --git a/src/types/__tests__/index.test.js b/src/types/__tests__/index.test.js
deleted file mode 100644
index f022b26f5..000000000
--- a/src/types/__tests__/index.test.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import apiTypes, * as allApiTypes from '..';
-
-describe('ApiTypes', () => {
- it('should have specific API properties', () => {
- expect(apiTypes).toMatchSnapshot('specific types');
- expect(allApiTypes).toMatchSnapshot('all exported api types');
- });
-});
diff --git a/src/types/index.js b/src/types/index.js
deleted file mode 100644
index cd498dd00..000000000
--- a/src/types/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { rhsmApiTypes } from './rhsmApiTypes';
-
-const apiTypes = {
- rhsmApi: rhsmApiTypes
-};
-
-export { apiTypes as default, apiTypes, rhsmApiTypes };
diff --git a/src/types/rhsmApiTypes.js b/src/types/rhsmApiTypes.js
deleted file mode 100644
index e5e0e5f73..000000000
--- a/src/types/rhsmApiTypes.js
+++ /dev/null
@@ -1,451 +0,0 @@
-import { rhsmConstants } from '../services/rhsm/rhsmConstants';
-
-/**
- * ToDo: Clean up params, see userReducer.
- */
-/**
- * RHSM response Error DATA type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_ERROR_DATA = rhsmConstants.RHSM_API_RESPONSE_ERRORS;
-
-/**
- * ToDo: Clean up params, see userReducer.
- */
-/**
- * RHSM response Error DATA types.
- * Schema/map of expected Error data response properties.
- *
- * @type {{CODE: string, DETAIL: string}}
- */
-const RHSM_API_RESPONSE_ERROR_DATA_TYPES = {
- ...rhsmConstants.RHSM_API_RESPONSE_ERRORS_TYPES
-};
-
-/**
- * RHSM response Error DATA CODE types.
- *
- * @type {{GENERIC: string, OPTIN: string}}
- */
-const RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES = {
- ...rhsmConstants.RHSM_API_RESPONSE_ERRORS_CODE_TYPES
-};
-
-/**
- * ToDo: Clean up params, unused.
- */
-/**
- * RHSM response links type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_LINKS = 'links';
-
-/**
- * ToDo: Clean up params, unused.
- */
-/**
- * RHSM response LINKS type.
- * Schema/map of expected inventory LINKS response properties.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_LINKS_TYPES = {
- FIRST: 'first',
- LAST: 'last',
- PREVIOUS: 'previous',
- NEXT: 'next'
-};
-
-/**
- * RHSM response meta type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_META = 'meta';
-
-/**
- * ToDo: Clean up params, used by deprecated graph component selector and deprecated inventory component selector.
- * It appears some of these may need to move over towards rhsmSchemas.js
- */
-/**
- * RHSM response META types.
- * Schema/map of expected META response properties.
- *
- * @type {{COUNT: string, TOTAL_INSTANCE_HOURS: string, TOTAL_CORE_HOURS: string}}
- */
-const RHSM_API_RESPONSE_META_TYPES = {
- COUNT: 'count',
- TOTAL_CORE_HOURS: 'total_core_hours',
- TOTAL_INSTANCE_HOURS: 'total_instance_hours'
-};
-
-/**
- * RHSM response data type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_DATA = 'data';
-
-/**
- * RHSM response Capacity DATA type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_CAPACITY_DATA = RHSM_API_RESPONSE_DATA;
-
-/**
- * ToDo: Clean up params, used by deprecated graph component selector.
- * We may need to relocate this as part of a "capacity" schema some of these params towards rhsmSchemas.js
- */
-/**
- * RHSM response Capacity DATA types.
- * Schema/map of expected Capacity data response properties.
- *
- * @type {{HYPERVISOR_SOCKETS: string, CORES: string, DATE: string, SOCKETS: string, PHYSICAL_SOCKETS: string,
- * HYPERVISOR_CORES: string, HAS_INFINITE: string, PHYSICAL_CORES: string}}
- */
-const RHSM_API_RESPONSE_CAPACITY_DATA_TYPES = {
- CLOUD_CORES: 'cloud_cores',
- CLOUD_INSTANCES: 'cloud_instance_count',
- CLOUD_SOCKETS: 'cloud_sockets',
- CORES: 'cores',
- DATE: 'date',
- HYPERVISOR_CORES: 'hypervisor_cores',
- HYPERVISOR_SOCKETS: 'hypervisor_sockets',
- PHYSICAL_CORES: 'physical_cores',
- PHYSICAL_SOCKETS: 'physical_sockets',
- SOCKETS: 'sockets',
- HAS_INFINITE: 'has_infinite_quantity'
-};
-
-/**
- * RHSM response inventory DATA type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_INVENTORY_DATA = RHSM_API_RESPONSE_DATA;
-
-/**
- * ToDo: Clean up params, used by deprecated inventory component and related selector.
- */
-/**
- * RHSM response inventory DATA types.
- * Schema/map of expected inventory DATA response properties.
- *
- * @type {{CORES: string, CORE_HOURS: string, HARDWARE: string, SOCKETS: string, SUBSCRIPTION_ID: string,
- * INVENTORY_ID: string, MEASUREMENT: string, ID: string, GUESTS: string, CLOUD_PROVIDER: string,
- * LAST_SEEN: string, NAME: string}}
- */
-const RHSM_API_RESPONSE_INVENTORY_DATA_TYPES = {
- CLOUD_PROVIDER: 'cloud_provider',
- CORES: 'cores',
- CORE_HOURS: 'core_hours',
- GUESTS: 'number_of_guests',
- HARDWARE: 'hardware_type',
- ID: 'insights_id',
- INVENTORY_ID: 'inventory_id',
- LAST_SEEN: 'last_seen',
- MEASUREMENT: 'measurement_type',
- NAME: 'display_name',
- SOCKETS: 'sockets',
- SUBSCRIPTION_ID: 'subscription_manager_id'
-};
-
-/**
- * ToDo: Clean up params, used by deprecated guests component selector.
- */
-/**
- * RHSM response inventory guests DATA types.
- * Schema/map of expected inventory guests DATA response properties.
- *
- * @type {{SUBSCRIPTION_ID: string, ID: string, NAME: string, LAST_SEEN: string}}
- */
-const RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES = {
- ID: 'insights_id',
- NAME: 'display_name',
- SUBSCRIPTION_ID: 'subscription_manager_id',
- LAST_SEEN: 'last_seen'
-};
-
-/**
- * RHSM response Reporting/Tally DATA type.
- *
- * @type {string}
- */
-const RHSM_API_RESPONSE_PRODUCTS_DATA = RHSM_API_RESPONSE_DATA;
-
-/**
- * ToDo: Clean up params, used by app message component, deprecated graph component, and Tally response selectors.
- * May need to move part of this towards rhsmConstants.js
- */
-/**
- * RHSM response Reporting/Tally DATA types.
- * Schema/map of expected Reporting/Tally DATA response properties.
- *
- * @type {{HYPERVISOR_SOCKETS: string, CORES: string, INSTANCE_HOURS: string, SOCKETS: string, CLOUD_CORES: string,
- * HAS_DATA: string, PHYSICAL_SOCKETS: string, PHYSICAL_CORES: string, CLOUD_INSTANCES: string, DATE: string,
- * CORE_HOURS: string, CLOUD_SOCKETS: string, HAS_CLOUDIGRADE_DATA: string, HAS_CLOUDIGRADE_MISMATCH: string,
- * HYPERVISOR_CORES: string}}
- */
-const RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES = {
- CLOUD_CORES: 'cloud_cores',
- CLOUD_INSTANCES: 'cloud_instance_count',
- CLOUD_SOCKETS: 'cloud_sockets',
- CORE_HOURS: 'core_hours',
- CORES: 'cores',
- DATE: 'date',
- HYPERVISOR_CORES: 'hypervisor_cores',
- HYPERVISOR_SOCKETS: 'hypervisor_sockets',
- INSTANCE_HOURS: 'instance_hours',
- PHYSICAL_CORES: 'physical_cores',
- PHYSICAL_SOCKETS: 'physical_sockets',
- SOCKETS: 'sockets',
- HAS_CLOUDIGRADE_DATA: 'has_cloudigrade_data',
- HAS_CLOUDIGRADE_MISMATCH: 'has_cloudigrade_mismatch',
- HAS_DATA: 'has_data'
-};
-
-/**
- * RHSM product id type values.
- *
- * @type {{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}}
- */
-const RHSM_API_PATH_ID_TYPES = {
- ...rhsmConstants.RHSM_API_PATH_PRODUCT_TYPES
-};
-
-/**
- * RHSM API query/search parameter of GRANULARITY type values.
- * Schema/map of expected query/search parameter granularity types.
- *
- * @type {{WEEKLY: string, QUARTERLY: string, DAILY: string, MONTHLY: string}}
- */
-const RHSM_API_QUERY_GRANULARITY_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_GRANULARITY_TYPES
-};
-
-/**
- * ToDo: Clean up sort params since they're hosts API specific.
- * Hosts is being deprecated in favor of instances API. Instances sort params
- * can be found in /services/rhsm/rhsmConstants.js
- */
-/**
- * RHSM API query/search parameter SORT type values for HOSTS.
- *
- * @type {{CORES: string, CORE_HOURS: string, HARDWARE: string, SOCKETS: string, MEASUREMENT: string,
- * LAST_SEEN: string, NAME: string}}
- */
-const RHSM_API_QUERY_SORT_TYPES = {
- CORES: 'cores',
- CORE_HOURS: 'core_hours',
- HARDWARE: 'hardware_type',
- INSTANCE_HOURS: 'instance_hours',
- LAST_SEEN: 'last_seen',
- MEASUREMENT: 'measurement_type',
- NAME: 'display_name',
- SOCKETS: 'sockets'
-};
-
-/**
- * RHSM API query/search parameter SORT DIRECTION type values.
- *
- * @type {{ASCENDING: string, DESCENDING: string}}
- */
-const RHSM_API_QUERY_SORT_DIRECTION_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_INVENTORY_SORT_DIRECTION_TYPES
-};
-
-/**
- * RHSM API query/search parameter SLA type values.
- *
- * @type {{PREMIUM: string, SELF: string, NONE: string, STANDARD: string}}
- */
-const RHSM_API_QUERY_SLA_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_SLA_TYPES
-};
-
-/**
- * RHSM API query/search parameter UOM type values.
- *
- * @type {{CORES: string, SOCKETS: string}}
- */
-const RHSM_API_QUERY_UOM_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_UOM_TYPES
-};
-
-/**
- * RHSM API query/search parameter USAGE type values.
- *
- * @type {{UNSPECIFIED: string, DISASTER: string, DEVELOPMENT: string, PRODUCTION: string}}
- */
-const RHSM_API_QUERY_USAGE_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_USAGE_TYPES
-};
-
-/**
- * ToDo: Clean up params, unused.
- */
-/**
- * RHSM API query/search parameter OPTIN type values.
- *
- * @type {{TALLY_SYNC: string, TALLY_REPORT: string, CONDUIT_SYNC: string}}
- */
-const RHSM_API_QUERY_SET_OPTIN_TYPES = {
- CONDUIT_SYNC: 'enable_conduit_sync',
- TALLY_REPORT: 'enable_tally_reporting',
- TALLY_SYNC: 'enable_tally_sync'
-};
-
-/**
- * RHSM API query/search parameter CAPACITY type values.
- *
- * @type {{GRANULARITY: string, USAGE: string, END_DATE: string, SLA: string, START_DATE: string}}
- */
-const RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_SET_TALLY_CAPACITY_TYPES
-};
-
-/**
- * RHSM API query/search parameter INVENTORY type values.
- *
- * @type {{UOM: string, USAGE: string, DIRECTION: string, SORT: string, OFFSET: string,
- * SLA: string, LIMIT: string}}
- */
-const RHSM_API_QUERY_SET_INVENTORY_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES
-};
-
-/**
- * RHSM API query/search parameter GUESTS INVENTORY type values.
- *
- * @type {{OFFSET: string, LIMIT: string}}
- */
-const RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES
-};
-
-/**
- * RHSM API query/search parameter SUBSCRIPTIONS INVENTORY type values.
- *
- * @type {{UOM: string, USAGE: string, DIRECTION: string, SORT: string, OFFSET: string, SLA: string,
- * LIMIT: string}}
- */
-const RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES = {
- ...rhsmConstants.RHSM_API_QUERY_SET_INVENTORY_TYPES
-};
-
-/**
- * RHSM API query/search parameter values.
- *
- * @type {{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}}
- */
-const RHSM_API_QUERY_TYPES = {
- ...RHSM_API_QUERY_SET_OPTIN_TYPES,
- ...RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES,
- ...RHSM_API_QUERY_SET_INVENTORY_TYPES,
- ...RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES,
- ...RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES
-};
-
-/**
- * RHSM API types.
- *
- * @type {{RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES: {UOM: string, USAGE: string, DIRECTION: string, SORT: string, OFFSET: string,
- * SLA: string, LIMIT: string}, RHSM_API_RESPONSE_DATA: string, RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES: {GENERIC: string, OPTIN: string},
- * RHSM_API_RESPONSE_INVENTORY_DATA: string, RHSM_API_RESPONSE_CAPACITY_DATA: string, RHSM_API_RESPONSE_ERROR_DATA_TYPES: {CODE: string,
- * DETAIL: string}, RHSM_API_RESPONSE_CAPACITY_DATA_TYPES: {HYPERVISOR_SOCKETS: string, CORES: string, DATE: string, SOCKETS: string,
- * PHYSICAL_SOCKETS: string, HYPERVISOR_CORES: string, HAS_INFINITE: string, PHYSICAL_CORES: string},
- * RHSM_API_RESPONSE_META_TYPES: {COUNT: string, TOTAL_INSTANCE_HOURS: string, TOTAL_CORE_HOURS: string},
- * RHSM_API_QUERY_GRANULARITY_TYPES: {WEEKLY: string, QUARTERLY: string, DAILY: string, MONTHLY: string},
- * RHSM_API_QUERY_SORT_DIRECTION_TYPES: {ASCENDING: string, DESCENDING: string}, 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, 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_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, CORE_HOURS: string, HARDWARE: string, SOCKETS: string,
- * MEASUREMENT: string, LAST_SEEN: string, NAME: string}, RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES: {HYPERVISOR_SOCKETS: string,
- * CORES: string, INSTANCE_HOURS: string, SOCKETS: string, CLOUD_CORES: string, HAS_DATA: string, PHYSICAL_SOCKETS: string,
- * PHYSICAL_CORES: string, CLOUD_INSTANCES: string, DATE: string, CORE_HOURS: string, CLOUD_SOCKETS: string,
- * HAS_CLOUDIGRADE_DATA: string, HAS_CLOUDIGRADE_MISMATCH: string, HYPERVISOR_CORES: string}, RHSM_API_QUERY_UOM_TYPES: {CORES: string,
- * SOCKETS: string}, RHSM_API_RESPONSE_LINKS_TYPES: string, RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES: {SUBSCRIPTION_ID: string,
- * ID: string, NAME: string, LAST_SEEN: string}, RHSM_API_RESPONSE_ERROR_DATA: string, RHSM_API_RESPONSE_META: string,
- * RHSM_API_RESPONSE_INVENTORY_DATA_TYPES: {CORES: string, CORE_HOURS: string, HARDWARE: string, SOCKETS: string, SUBSCRIPTION_ID: string,
- * INVENTORY_ID: string, MEASUREMENT: string, ID: string, GUESTS: string, CLOUD_PROVIDER: string, LAST_SEEN: string, NAME: string},
- * RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES: {GRANULARITY: string, USAGE: string, END_DATE: string, SLA: string, START_DATE: string}}}
- */
-const rhsmApiTypes = {
- RHSM_API_RESPONSE_ERROR_DATA,
- RHSM_API_RESPONSE_ERROR_DATA_TYPES,
- RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES,
- RHSM_API_RESPONSE_LINKS,
- RHSM_API_RESPONSE_LINKS_TYPES,
- RHSM_API_RESPONSE_META,
- RHSM_API_RESPONSE_META_TYPES,
- RHSM_API_RESPONSE_DATA,
- RHSM_API_RESPONSE_CAPACITY_DATA,
- RHSM_API_RESPONSE_CAPACITY_DATA_TYPES,
- RHSM_API_RESPONSE_INVENTORY_DATA,
- RHSM_API_RESPONSE_INVENTORY_DATA_TYPES,
- RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES,
- RHSM_API_RESPONSE_PRODUCTS_DATA,
- RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES,
- RHSM_API_PATH_ID_TYPES,
- RHSM_API_QUERY_GRANULARITY_TYPES,
- RHSM_API_QUERY_SORT_TYPES,
- RHSM_API_QUERY_SORT_DIRECTION_TYPES,
- RHSM_API_QUERY_SLA_TYPES,
- RHSM_API_QUERY_UOM_TYPES,
- RHSM_API_QUERY_USAGE_TYPES,
- RHSM_API_QUERY_TYPES,
- RHSM_API_QUERY_SET_OPTIN_TYPES,
- RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES
-};
-
-export {
- rhsmApiTypes as default,
- rhsmApiTypes,
- RHSM_API_RESPONSE_ERROR_DATA,
- RHSM_API_RESPONSE_ERROR_DATA_TYPES,
- RHSM_API_RESPONSE_ERROR_DATA_CODE_TYPES,
- RHSM_API_RESPONSE_LINKS,
- RHSM_API_RESPONSE_LINKS_TYPES,
- RHSM_API_RESPONSE_META,
- RHSM_API_RESPONSE_META_TYPES,
- RHSM_API_RESPONSE_DATA,
- RHSM_API_RESPONSE_CAPACITY_DATA,
- RHSM_API_RESPONSE_CAPACITY_DATA_TYPES,
- RHSM_API_RESPONSE_INVENTORY_DATA,
- RHSM_API_RESPONSE_INVENTORY_DATA_TYPES,
- RHSM_API_RESPONSE_INVENTORY_GUESTS_DATA_TYPES,
- RHSM_API_RESPONSE_PRODUCTS_DATA,
- RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES,
- RHSM_API_PATH_ID_TYPES,
- RHSM_API_QUERY_GRANULARITY_TYPES,
- RHSM_API_QUERY_SORT_TYPES,
- RHSM_API_QUERY_SORT_DIRECTION_TYPES,
- RHSM_API_QUERY_SLA_TYPES,
- RHSM_API_QUERY_UOM_TYPES,
- RHSM_API_QUERY_USAGE_TYPES,
- RHSM_API_QUERY_TYPES,
- RHSM_API_QUERY_SET_OPTIN_TYPES,
- RHSM_API_QUERY_SET_REPORT_CAPACITY_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_GUESTS_TYPES,
- RHSM_API_QUERY_SET_INVENTORY_SUBSCRIPTIONS_TYPES
-};
diff --git a/tests/__snapshots__/code.test.js.snap b/tests/__snapshots__/code.test.js.snap
index ece4cabae..ee09c95d8 100644
--- a/tests/__snapshots__/code.test.js.snap
+++ b/tests/__snapshots__/code.test.js.snap
@@ -4,7 +4,6 @@ exports[`General code checks should only have specific console.[warn|log|info|er
[
"components/inventoryCard/inventoryCardContext.js:168: console.warn(\`Sorting can only be performed on select fields, confirm field \${id} is allowed.\`);",
"components/inventoryCard/inventoryCardHelpers.js:87: console.warn(\`Warning: Filter "\${id}" not found in "table row" response data.\`, cellData);",
- "components/inventoryCard/inventoryList.deprecated.js:62: console.warn(\`Sorting can only be performed on select fields, confirm field \${id} is allowed.\`);",
"components/inventoryCardSubscriptions/inventoryCardSubscriptionsContext.js:127: console.warn(\`Sorting can only be performed on select fields, confirm field \${id} is allowed.\`);",
"index.js:12: console.log(\`Emulated appNavClick: \${JSON.stringify({ id, ...rest })}\`);",
"redux/common/reduxHelpers.js:282: console.error(\`Error: Property \${prop} does not exist within the passed state.\`, state);",
diff --git a/tests/__snapshots__/dist.test.js.snap b/tests/__snapshots__/dist.test.js.snap
index de9323ddc..82cd38ea4 100644
--- a/tests/__snapshots__/dist.test.js.snap
+++ b/tests/__snapshots__/dist.test.js.snap
@@ -8,7 +8,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/css/3577.css",
"./dist/css/401.css",
"./dist/css/6402.css",
- "./dist/css/7080.css",
"./dist/css/8485.css",
"./dist/css/9222.css",
"./dist/css/9283.css",
@@ -27,9 +26,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/1799*js",
"./dist/js/1824*js",
"./dist/js/1858*js",
- "./dist/js/2195*js",
- "./dist/js/2211*js",
- "./dist/js/2211*txt",
"./dist/js/2217*js",
"./dist/js/2243*js",
"./dist/js/2293*js",
@@ -46,6 +42,8 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/3722*js",
"./dist/js/3768*js",
"./dist/js/384*js",
+ "./dist/js/387*js",
+ "./dist/js/387*txt",
"./dist/js/3914*js",
"./dist/js/3935*js",
"./dist/js/3935*txt",
@@ -66,7 +64,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/5250*js",
"./dist/js/5250*txt",
"./dist/js/5394*js",
- "./dist/js/5473*js",
"./dist/js/5876*js",
"./dist/js/5993*js",
"./dist/js/6402*js",
@@ -74,26 +71,22 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/6706*js",
"./dist/js/6706*txt",
"./dist/js/6816*js",
- "./dist/js/7080*js",
"./dist/js/7183*js",
"./dist/js/7235*js",
+ "./dist/js/7276*js",
"./dist/js/7294*js",
"./dist/js/7294*txt",
"./dist/js/7297*js",
"./dist/js/7585*js",
"./dist/js/7745*js",
- "./dist/js/7780*js",
"./dist/js/7970*js",
"./dist/js/8007*js",
- "./dist/js/8191*js",
- "./dist/js/8341*js",
"./dist/js/8485*js",
"./dist/js/8710*js",
"./dist/js/8900*js",
"./dist/js/9051*js",
"./dist/js/9077*js",
"./dist/js/9222*js",
- "./dist/js/9270*js",
"./dist/js/9283*js",
"./dist/js/931*js",
"./dist/js/939*js",
@@ -103,6 +96,7 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/js/9669*txt",
"./dist/js/9844*js",
"./dist/js/9928*js",
+ "./dist/js/9942*js",
"./dist/js/App*js",
"./dist/locales/en-US.json",
"./dist/locales/en.json",
@@ -118,8 +112,6 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/1799*map",
"./dist/sourcemaps/1824*map",
"./dist/sourcemaps/1858*map",
- "./dist/sourcemaps/2195*map",
- "./dist/sourcemaps/2211*map",
"./dist/sourcemaps/2217*map",
"./dist/sourcemaps/2243*map",
"./dist/sourcemaps/2293*map",
@@ -136,6 +128,7 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/3722*map",
"./dist/sourcemaps/3768*map",
"./dist/sourcemaps/384*map",
+ "./dist/sourcemaps/387*map",
"./dist/sourcemaps/3914*map",
"./dist/sourcemaps/3935*map",
"./dist/sourcemaps/4021*map",
@@ -152,30 +145,25 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/5242*map",
"./dist/sourcemaps/5250*map",
"./dist/sourcemaps/5394*map",
- "./dist/sourcemaps/5473*map",
"./dist/sourcemaps/5876*map",
"./dist/sourcemaps/5993*map",
"./dist/sourcemaps/6402*map",
"./dist/sourcemaps/6476*map",
"./dist/sourcemaps/6706*map",
"./dist/sourcemaps/6816*map",
- "./dist/sourcemaps/7080*map",
"./dist/sourcemaps/7183*map",
"./dist/sourcemaps/7235*map",
+ "./dist/sourcemaps/7276*map",
"./dist/sourcemaps/7294*map",
"./dist/sourcemaps/7297*map",
"./dist/sourcemaps/7585*map",
- "./dist/sourcemaps/7780*map",
"./dist/sourcemaps/7970*map",
- "./dist/sourcemaps/8191*map",
- "./dist/sourcemaps/8341*map",
"./dist/sourcemaps/8485*map",
"./dist/sourcemaps/8710*map",
"./dist/sourcemaps/8900*map",
"./dist/sourcemaps/9051*map",
"./dist/sourcemaps/9077*map",
"./dist/sourcemaps/9222*map",
- "./dist/sourcemaps/9270*map",
"./dist/sourcemaps/9283*map",
"./dist/sourcemaps/931*map",
"./dist/sourcemaps/939*map",
@@ -184,6 +172,7 @@ exports[`Build distribution should match a specific file output 1`] = `
"./dist/sourcemaps/9669*map",
"./dist/sourcemaps/9844*map",
"./dist/sourcemaps/9928*map",
+ "./dist/sourcemaps/9942*map",
"./dist/sourcemaps/App*map",
"./dist/subscriptions*js",
]