From a10c7dc7e4ffe68e8e46338ef42c89258d4cf7da Mon Sep 17 00:00:00 2001 From: CD Cabrera Date: Wed, 8 Apr 2020 14:45:05 -0400 Subject: [PATCH] feat(platformServices): issues/240 initial getUserPermissions * build, expand platform testing mock * reduxHelpers, add getDataFromResults function alias * userReducer, add admin, entitled, and permissions * platformServices, expose getUserPermissions * userServices, expose getUserPermissions through authorizeUser * platformApiTypes, apply API types --- .../__snapshots__/reduxHelpers.test.js.snap | 20 + .../common/__tests__/reduxHelpers.test.js | 36 ++ src/redux/common/reduxHelpers.js | 9 + .../__snapshots__/userReducer.test.js.snap | 80 ++++ .../reducers/__tests__/userReducer.test.js | 12 +- src/redux/reducers/userReducer.js | 40 +- .../platformServices.test.js.snap | 2 + .../__snapshots__/userServices.test.js.snap | 15 +- .../__tests__/platformServices.test.js | 12 +- src/services/platformServices.js | 17 +- src/services/userServices.js | 10 +- src/setupTests.js | 1 + .../__snapshots__/index.test.js.snap | 351 ++++++++++++++++++ .../__snapshots__/rhsmApiTypes.test.js.snap | 291 --------------- src/types/__tests__/index.test.js | 8 + src/types/__tests__/rhsmApiTypes.test.js | 8 - src/types/index.js | 9 + src/types/platformApiTypes.js | 33 ++ 18 files changed, 638 insertions(+), 316 deletions(-) create mode 100644 src/types/__tests__/__snapshots__/index.test.js.snap delete mode 100644 src/types/__tests__/__snapshots__/rhsmApiTypes.test.js.snap create mode 100644 src/types/__tests__/index.test.js delete mode 100644 src/types/__tests__/rhsmApiTypes.test.js create mode 100644 src/types/index.js create mode 100644 src/types/platformApiTypes.js diff --git a/src/redux/common/__tests__/__snapshots__/reduxHelpers.test.js.snap b/src/redux/common/__tests__/__snapshots__/reduxHelpers.test.js.snap index e2298695f..00ddb8642 100644 --- a/src/redux/common/__tests__/__snapshots__/reduxHelpers.test.js.snap +++ b/src/redux/common/__tests__/__snapshots__/reduxHelpers.test.js.snap @@ -152,6 +152,25 @@ exports[`ReduxHelpers should get a message from a service call response: respons exports[`ReduxHelpers should get a message from a service call response: response for 4XX 1`] = `"Request failed with status code 400"`; +exports[`ReduxHelpers should get data from a service call response: ARRAY data 1`] = ` +Array [ + Object { + "dolor": "sit", + "lorem": "ipsum", + }, + Object { + "hello": "world", + }, +] +`; + +exports[`ReduxHelpers should get data from a service call response: data 1`] = ` +Object { + "dolor": "sit", + "lorem": "ipsum", +} +`; + exports[`ReduxHelpers should have specific functions: reduxHelpers 1`] = ` Object { "FULFILLED_ACTION": [Function], @@ -159,6 +178,7 @@ Object { "PENDING_ACTION": [Function], "REJECTED_ACTION": [Function], "generatedPromiseActionReducer": [Function], + "getDataFromResults": [Function], "getDateFromResults": [Function], "getMessageFromResults": [Function], "getSingleResponseFromResultArray": [Function], diff --git a/src/redux/common/__tests__/reduxHelpers.test.js b/src/redux/common/__tests__/reduxHelpers.test.js index a30cdd647..c73f9f380 100644 --- a/src/redux/common/__tests__/reduxHelpers.test.js +++ b/src/redux/common/__tests__/reduxHelpers.test.js @@ -187,6 +187,42 @@ describe('ReduxHelpers', () => { ).toMatchSnapshot('ARRAY date'); }); + it('should get data from a service call response', () => { + expect( + reduxHelpers.getDataFromResults({ + payload: { + headers: { + date: 'Tue, 11 Feb 2020 15:27:16 GMT' + }, + status: 200, + statusText: 'OK', + data: { lorem: 'ipsum', dolor: 'sit' } + } + }) + ).toMatchSnapshot('data'); + + expect( + reduxHelpers.getDataFromResults([ + { + headers: { + date: 'Tue, 11 Feb 2020 15:27:16 GMT' + }, + status: 200, + statusText: 'OK', + data: { lorem: 'ipsum', dolor: 'sit' } + }, + { + headers: { + date: 'Tue, 11 Feb 2020 15:27:18 GMT' + }, + status: 200, + statusText: 'OK', + data: { hello: 'world' } + } + ]) + ).toMatchSnapshot('ARRAY data'); + }); + it('should update a state object', () => { const initialState = { lorem: false, diff --git a/src/redux/common/reduxHelpers.js b/src/redux/common/reduxHelpers.js index 3cbcb8bee..e9985b9bb 100644 --- a/src/redux/common/reduxHelpers.js +++ b/src/redux/common/reduxHelpers.js @@ -206,6 +206,14 @@ const singlePromiseDataResponseFromArray = results => { return updatedResults.data || {}; }; +/** + * Alias for singlePromiseDataResponseFromArray. + * + * @param {Array|object} results + * @returns {Array|object} + */ +const getDataFromResults = results => singlePromiseDataResponseFromArray(results); + /** * Automatically apply reducer logic to state by handling promise responses from redux-promise-middleware. * @@ -318,6 +326,7 @@ const reduxHelpers = { HTTP_STATUS_RANGE, setResponseSchemas, generatedPromiseActionReducer, + getDataFromResults, getDateFromResults, getMessageFromResults, getSingleResponseFromResultArray, diff --git a/src/redux/reducers/__tests__/__snapshots__/userReducer.test.js.snap b/src/redux/reducers/__tests__/__snapshots__/userReducer.test.js.snap index a3c33dc4b..8fbebcfd2 100644 --- a/src/redux/reducers/__tests__/__snapshots__/userReducer.test.js.snap +++ b/src/redux/reducers/__tests__/__snapshots__/userReducer.test.js.snap @@ -15,13 +15,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "DELETE_USER_OPTIN_REJECTED", @@ -43,13 +46,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "GET_USER_OPTIN_REJECTED", @@ -71,13 +77,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "UPDATE_USER_OPTIN_REJECTED", @@ -89,13 +98,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": true, "errorMessage": "MESSAGE", "errorStatus": 0, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "USER_AUTH_REJECTED", @@ -107,7 +119,15 @@ Object { "result": Object { "optin": Object { "data": Object { + "permissions": Array [], "test": "success", + "user": Object { + "identity": Object { + "user": Object { + "is_org_admin": true, + }, + }, + }, }, "date": null, "error": false, @@ -120,13 +140,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "DELETE_USER_OPTIN_FULFILLED", @@ -138,7 +161,15 @@ Object { "result": Object { "optin": Object { "data": Object { + "permissions": Array [], "test": "success", + "user": Object { + "identity": Object { + "user": Object { + "is_org_admin": true, + }, + }, + }, }, "date": null, "error": false, @@ -151,13 +182,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "GET_USER_OPTIN_FULFILLED", @@ -169,7 +203,15 @@ Object { "result": Object { "optin": Object { "data": Object { + "permissions": Array [], "test": "success", + "user": Object { + "identity": Object { + "user": Object { + "is_org_admin": true, + }, + }, + }, }, "date": null, "error": false, @@ -182,13 +224,16 @@ Object { "pending": false, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "UPDATE_USER_OPTIN_FULFILLED", @@ -200,13 +245,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": true, "authorized": true, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": true, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "USER_AUTH_FULFILLED", @@ -218,15 +266,26 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": Object { + "permissions": Array [], "test": "success", + "user": Object { + "identity": Object { + "user": Object { + "is_org_admin": true, + }, + }, + }, }, "pending": false, + "permissions": Array [], }, }, "type": "USER_LOCALE_FULFILLED", @@ -247,13 +306,16 @@ Object { "pending": true, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "DELETE_USER_OPTIN_PENDING", @@ -274,13 +336,16 @@ Object { "pending": true, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "GET_USER_OPTIN_PENDING", @@ -301,13 +366,16 @@ Object { "pending": true, }, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "UPDATE_USER_OPTIN_PENDING", @@ -319,13 +387,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": true, + "permissions": Array [], }, }, "type": "USER_AUTH_PENDING", @@ -337,13 +408,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": false, "errorMessage": null, "errorStatus": null, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "4XX", @@ -355,13 +429,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": true, "errorMessage": "Lorem test status", "errorStatus": 401, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "4XX", @@ -373,13 +450,16 @@ Object { "result": Object { "optin": Object {}, "session": Object { + "admin": false, "authorized": false, + "entitled": false, "error": true, "errorMessage": "Lorem test status", "errorStatus": 403, "fulfilled": false, "locale": null, "pending": false, + "permissions": Array [], }, }, "type": "4XX", diff --git a/src/redux/reducers/__tests__/userReducer.test.js b/src/redux/reducers/__tests__/userReducer.test.js index 4a19ef7b8..e8c885968 100644 --- a/src/redux/reducers/__tests__/userReducer.test.js +++ b/src/redux/reducers/__tests__/userReducer.test.js @@ -1,5 +1,7 @@ import userReducer from '../userReducer'; +import { platformApiTypes } from '../../../types'; import { appTypes, userTypes as types } from '../../types'; +import { helpers } from '../../../common'; import { reduxHelpers } from '../../common/reduxHelpers'; describe('UserReducer', () => { @@ -84,7 +86,15 @@ describe('UserReducer', () => { type: reduxHelpers.FULFILLED_ACTION(value), payload: { data: { - test: 'success' + test: 'success', + user: { + [platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY]: { + [platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES.USER]: { + [platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES.ORG_ADMIN]: true + } + } + }, + permissions: [] } } }; diff --git a/src/redux/reducers/userReducer.js b/src/redux/reducers/userReducer.js index 10c722a84..888f7a66b 100644 --- a/src/redux/reducers/userReducer.js +++ b/src/redux/reducers/userReducer.js @@ -1,4 +1,7 @@ +import _get from 'lodash/get'; import { appTypes, userTypes } from '../types'; +import { platformApiTypes } from '../../types'; +import { helpers } from '../../common'; import { reduxHelpers } from '../common/reduxHelpers'; /** @@ -11,13 +14,16 @@ import { reduxHelpers } from '../common/reduxHelpers'; const initialState = { optin: {}, session: { + admin: false, + authorized: false, + entitled: false, error: false, errorMessage: null, errorStatus: null, - pending: false, fulfilled: false, - authorized: false, - locale: null + locale: null, + pending: false, + permissions: [] } }; @@ -59,12 +65,38 @@ const userReducer = (state = initialState, action) => { ); case reduxHelpers.FULFILLED_ACTION(userTypes.USER_AUTH): + const { user, permissions } = reduxHelpers.getDataFromResults(action); + const admin = _get( + user, + [ + platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY, + platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES.USER, + platformApiTypes.PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES.ORG_ADMIN + ], + false + ); + + const entitled = _get( + user, + [ + platformApiTypes.PLATFORM_API_RESPONSE_USER_ENTITLEMENTS, + helpers.UI_NAME, + platformApiTypes.PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES.ENTITLED + ], + false + ); + + const subscriptionPermissions = permissions.filter(value => new RegExp(helpers.UI_NAME, 'i').test(value)); + return reduxHelpers.setStateProp( 'session', { + admin, authorized: true, + entitled, fulfilled: true, - locale: state.session.locale + locale: state.session.locale, + permissions: subscriptionPermissions }, { state, diff --git a/src/services/__tests__/__snapshots__/platformServices.test.js.snap b/src/services/__tests__/__snapshots__/platformServices.test.js.snap index 32920fdd3..89a73f9e5 100644 --- a/src/services/__tests__/__snapshots__/platformServices.test.js.snap +++ b/src/services/__tests__/__snapshots__/platformServices.test.js.snap @@ -2,6 +2,8 @@ exports[`PlatformServices should return a failed getUser: failed authorized user 1`] = `[Error: { getUser } = insights.chrome.auth, insights.chrome.auth.getUser is not a function]`; +exports[`PlatformServices should return a failed getUserPermissions: failed user permissions 1`] = `[Error: { getUserPermissions } = insights.chrome, insights.chrome.getUserPermissions is not a function]`; + exports[`PlatformServices should return a failed initializeChrome: failed initializeChrome 1`] = `[Error: { init } = insights.chrome, insights.chrome.init is not a function]`; exports[`PlatformServices should return a failed setAppName: failed setAppName 1`] = `"{ identifyApp } = insights.chrome, insights.chrome.identifyApp is not a function"`; diff --git a/src/services/__tests__/__snapshots__/userServices.test.js.snap b/src/services/__tests__/__snapshots__/userServices.test.js.snap index 6c0219fbf..589d6cd23 100644 --- a/src/services/__tests__/__snapshots__/userServices.test.js.snap +++ b/src/services/__tests__/__snapshots__/userServices.test.js.snap @@ -2,14 +2,14 @@ exports[`UserServices should return a failed authorized user on an unexpected response: failed authorized user: unexpected 1`] = ` Object { - "message": "{ getUser } = insights.chrome.auth", + "message": "{ auth.getUser, getUserPermissions } = insights.chrome", "status": 418, } `; exports[`UserServices should return a failed authorized user on empty response: failed authorized user: empty object 1`] = ` Object { - "message": "{ getUser } = insights.chrome.auth", + "message": "{ auth.getUser, getUserPermissions } = insights.chrome", "status": 418, } `; @@ -33,12 +33,15 @@ Object { exports[`UserServices should return a successful authorized user: success authorized user 1`] = ` Object { "data": Object { - "identity": Object { - "account_number": "0", - "type": "User", + "permissions": Array [], + "user": Object { + "identity": Object { + "account_number": "0", + "type": "User", + }, }, }, - "message": "{ getUser } = insights.chrome.auth", + "message": "{ auth.getUser, getUserPermissions } = insights.chrome", "status": 200, } `; diff --git a/src/services/__tests__/platformServices.test.js b/src/services/__tests__/platformServices.test.js index ed34f50ed..1ed9a69ed 100644 --- a/src/services/__tests__/platformServices.test.js +++ b/src/services/__tests__/platformServices.test.js @@ -2,11 +2,12 @@ import platformServices from '../platformServices'; describe('PlatformServices', () => { it('should export a specific number of methods and classes', () => { - expect(Object.keys(platformServices)).toHaveLength(5); + expect(Object.keys(platformServices)).toHaveLength(6); }); it('should have specific methods', () => { expect(platformServices.getUser).toBeDefined(); + expect(platformServices.getUserPermissions).toBeDefined(); expect(platformServices.initializeChrome).toBeDefined(); expect(platformServices.onNavigation).toBeDefined(); expect(platformServices.setAppName).toBeDefined(); @@ -51,6 +52,15 @@ describe('PlatformServices', () => { }); }); + it('should return a failed getUserPermissions', done => { + window.insights.chrome.getUserPermissions = undefined; + + platformServices.getUserPermissions().catch(error => { + expect(error).toMatchSnapshot('failed user permissions'); + done(); + }); + }); + it('should return a failed initializeChrome', done => { window.insights.chrome.init = undefined; diff --git a/src/services/platformServices.js b/src/services/platformServices.js index 3d20f6b66..174388036 100644 --- a/src/services/platformServices.js +++ b/src/services/platformServices.js @@ -14,6 +14,20 @@ const getUser = async () => { } }; +/** + * Basic user permissions. + * + * @returns {Promise} + */ +const getUserPermissions = async () => { + const { insights } = window; + try { + await insights.chrome.getUserPermissions(); + } catch (e) { + throw new Error(`{ getUserPermissions } = insights.chrome, ${e.message}`); + } +}; + /** * Help initialize global platform methods. * @@ -81,12 +95,13 @@ const setNavigation = (data = []) => { } }; -const platformServices = { getUser, initializeChrome, onNavigation, setAppName, setNavigation }; +const platformServices = { getUser, getUserPermissions, initializeChrome, onNavigation, setAppName, setNavigation }; export { platformServices as default, platformServices, getUser, + getUserPermissions, initializeChrome, onNavigation, setAppName, diff --git a/src/services/userServices.js b/src/services/userServices.js index 7ba31c6fc..234f794b6 100644 --- a/src/services/userServices.js +++ b/src/services/userServices.js @@ -1,26 +1,28 @@ import Cookies from 'js-cookie'; import LocaleCode from 'locale-code'; import _isPlainObject from 'lodash/isPlainObject'; -import { getUser } from './platformServices'; +import { getUser, getUserPermissions } from './platformServices'; import { serviceCall } from './config'; /** * Apply an emulated API response to the platforms getUser method. * - * @returns {Promise<{data: void, message: string, status: number}>} + * @returns {Promise<{data: {permissions: (void|*[]), user: void}, message: string, status: number}>} */ const authorizeUser = async () => { - let message = '{ getUser } = insights.chrome.auth'; + let message = '{ auth.getUser, getUserPermissions } = insights.chrome'; let userData; + let userPermissions; try { userData = await getUser(); + userPermissions = await getUserPermissions(); } catch (e) { message = e.message; } if (_isPlainObject(userData) && Object.keys(userData).length) { - return Promise.resolve({ data: userData, message, status: 200 }); + return Promise.resolve({ data: { user: userData, permissions: userPermissions || [] }, message, status: 200 }); } const emulatedErrorResponse = { diff --git a/src/setupTests.js b/src/setupTests.js index 6df9401b5..1edf03022 100644 --- a/src/setupTests.js +++ b/src/setupTests.js @@ -16,6 +16,7 @@ global.window.insights = { }) ) }, + getUserPermissions: Function.prototype, identifyApp: Function.prototype, init: Function.prototype, navigation: Function.prototype, diff --git a/src/types/__tests__/__snapshots__/index.test.js.snap b/src/types/__tests__/__snapshots__/index.test.js.snap new file mode 100644 index 000000000..0d8311bfe --- /dev/null +++ b/src/types/__tests__/__snapshots__/index.test.js.snap @@ -0,0 +1,351 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ApiTypes should have specific API properties: all exported api types 1`] = ` +Object { + "apiTypes": Object { + "platformApi": Object { + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS": "entitlements", + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES": Object { + "ENTITLED": "is_entitled", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY": "identity", + "PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES": Object { + "USER": "user", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES": Object { + "ORG_ADMIN": "is_org_admin", + }, + }, + "rhsmApi": Object { + "RHSM_API_PATH_ID_TYPES": Object { + "OPENSHIFT": "OpenShift Container Platform", + "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", + }, + "RHSM_API_QUERY_END_DATE": "ending", + "RHSM_API_QUERY_GRANULARITY": "granularity", + "RHSM_API_QUERY_GRANULARITY_TYPES": Object { + "DAILY": "daily", + "MONTHLY": "monthly", + "QUARTERLY": "quarterly", + "WEEKLY": "weekly", + }, + "RHSM_API_QUERY_LIMIT": "limit", + "RHSM_API_QUERY_OFFSET": "offset", + "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", + "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", + "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", + "RHSM_API_QUERY_SLA": "sla", + "RHSM_API_QUERY_SLA_TYPES": Object { + "NONE": "", + "PREMIUM": "premium", + "SELF": "self-support", + "STANDARD": "standard", + }, + "RHSM_API_QUERY_START_DATE": "beginning", + "RHSM_API_RESPONSE_CAPACITY_DATA": "data", + "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { + "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_CAPACITY_META": "meta", + "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { + "COUNT": "count", + }, + "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", + "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { + "CLOUD_CORES": "cloud_cores", + "CLOUD_INSTANCES": "cloud_instance_count", + "CLOUD_SOCKETS": "cloud_sockets", + "CORES": "cores", + "DATE": "date", + "HAS_DATA": "has_data", + "HYPERVISOR_CORES": "hypervisor_cores", + "HYPERVISOR_SOCKETS": "hypervisor_sockets", + "PHYSICAL_CORES": "physical_cores", + "PHYSICAL_SOCKETS": "physical_sockets", + "SOCKETS": "sockets", + }, + "RHSM_API_RESPONSE_PRODUCTS_META": "meta", + "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { + "COUNT": "count", + }, + }, + }, + "default": Object { + "platformApi": Object { + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS": "entitlements", + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES": Object { + "ENTITLED": "is_entitled", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY": "identity", + "PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES": Object { + "USER": "user", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES": Object { + "ORG_ADMIN": "is_org_admin", + }, + }, + "rhsmApi": Object { + "RHSM_API_PATH_ID_TYPES": Object { + "OPENSHIFT": "OpenShift Container Platform", + "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", + }, + "RHSM_API_QUERY_END_DATE": "ending", + "RHSM_API_QUERY_GRANULARITY": "granularity", + "RHSM_API_QUERY_GRANULARITY_TYPES": Object { + "DAILY": "daily", + "MONTHLY": "monthly", + "QUARTERLY": "quarterly", + "WEEKLY": "weekly", + }, + "RHSM_API_QUERY_LIMIT": "limit", + "RHSM_API_QUERY_OFFSET": "offset", + "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", + "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", + "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", + "RHSM_API_QUERY_SLA": "sla", + "RHSM_API_QUERY_SLA_TYPES": Object { + "NONE": "", + "PREMIUM": "premium", + "SELF": "self-support", + "STANDARD": "standard", + }, + "RHSM_API_QUERY_START_DATE": "beginning", + "RHSM_API_RESPONSE_CAPACITY_DATA": "data", + "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { + "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_CAPACITY_META": "meta", + "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { + "COUNT": "count", + }, + "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", + "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { + "CLOUD_CORES": "cloud_cores", + "CLOUD_INSTANCES": "cloud_instance_count", + "CLOUD_SOCKETS": "cloud_sockets", + "CORES": "cores", + "DATE": "date", + "HAS_DATA": "has_data", + "HYPERVISOR_CORES": "hypervisor_cores", + "HYPERVISOR_SOCKETS": "hypervisor_sockets", + "PHYSICAL_CORES": "physical_cores", + "PHYSICAL_SOCKETS": "physical_sockets", + "SOCKETS": "sockets", + }, + "RHSM_API_RESPONSE_PRODUCTS_META": "meta", + "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { + "COUNT": "count", + }, + }, + }, + "platformApiTypes": Object { + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS": "entitlements", + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES": Object { + "ENTITLED": "is_entitled", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY": "identity", + "PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES": Object { + "USER": "user", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES": Object { + "ORG_ADMIN": "is_org_admin", + }, + }, + "rhsmApiTypes": Object { + "RHSM_API_PATH_ID_TYPES": Object { + "OPENSHIFT": "OpenShift Container Platform", + "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", + }, + "RHSM_API_QUERY_END_DATE": "ending", + "RHSM_API_QUERY_GRANULARITY": "granularity", + "RHSM_API_QUERY_GRANULARITY_TYPES": Object { + "DAILY": "daily", + "MONTHLY": "monthly", + "QUARTERLY": "quarterly", + "WEEKLY": "weekly", + }, + "RHSM_API_QUERY_LIMIT": "limit", + "RHSM_API_QUERY_OFFSET": "offset", + "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", + "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", + "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", + "RHSM_API_QUERY_SLA": "sla", + "RHSM_API_QUERY_SLA_TYPES": Object { + "NONE": "", + "PREMIUM": "premium", + "SELF": "self-support", + "STANDARD": "standard", + }, + "RHSM_API_QUERY_START_DATE": "beginning", + "RHSM_API_RESPONSE_CAPACITY_DATA": "data", + "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { + "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_CAPACITY_META": "meta", + "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { + "COUNT": "count", + }, + "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", + "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { + "CLOUD_CORES": "cloud_cores", + "CLOUD_INSTANCES": "cloud_instance_count", + "CLOUD_SOCKETS": "cloud_sockets", + "CORES": "cores", + "DATE": "date", + "HAS_DATA": "has_data", + "HYPERVISOR_CORES": "hypervisor_cores", + "HYPERVISOR_SOCKETS": "hypervisor_sockets", + "PHYSICAL_CORES": "physical_cores", + "PHYSICAL_SOCKETS": "physical_sockets", + "SOCKETS": "sockets", + }, + "RHSM_API_RESPONSE_PRODUCTS_META": "meta", + "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { + "COUNT": "count", + }, + }, +} +`; + +exports[`ApiTypes should have specific API properties: specific types 1`] = ` +Object { + "platformApi": Object { + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS": "entitlements", + "PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES": Object { + "ENTITLED": "is_entitled", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY": "identity", + "PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES": Object { + "USER": "user", + }, + "PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES": Object { + "ORG_ADMIN": "is_org_admin", + }, + }, + "rhsmApi": Object { + "RHSM_API_PATH_ID_TYPES": Object { + "OPENSHIFT": "OpenShift Container Platform", + "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", + }, + "RHSM_API_QUERY_END_DATE": "ending", + "RHSM_API_QUERY_GRANULARITY": "granularity", + "RHSM_API_QUERY_GRANULARITY_TYPES": Object { + "DAILY": "daily", + "MONTHLY": "monthly", + "QUARTERLY": "quarterly", + "WEEKLY": "weekly", + }, + "RHSM_API_QUERY_LIMIT": "limit", + "RHSM_API_QUERY_OFFSET": "offset", + "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", + "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", + "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", + "RHSM_API_QUERY_SLA": "sla", + "RHSM_API_QUERY_SLA_TYPES": Object { + "NONE": "", + "PREMIUM": "premium", + "SELF": "self-support", + "STANDARD": "standard", + }, + "RHSM_API_QUERY_START_DATE": "beginning", + "RHSM_API_RESPONSE_CAPACITY_DATA": "data", + "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { + "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_CAPACITY_META": "meta", + "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { + "COUNT": "count", + }, + "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", + "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { + "CLOUD_CORES": "cloud_cores", + "CLOUD_INSTANCES": "cloud_instance_count", + "CLOUD_SOCKETS": "cloud_sockets", + "CORES": "cores", + "DATE": "date", + "HAS_DATA": "has_data", + "HYPERVISOR_CORES": "hypervisor_cores", + "HYPERVISOR_SOCKETS": "hypervisor_sockets", + "PHYSICAL_CORES": "physical_cores", + "PHYSICAL_SOCKETS": "physical_sockets", + "SOCKETS": "sockets", + }, + "RHSM_API_RESPONSE_PRODUCTS_META": "meta", + "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { + "COUNT": "count", + }, + }, +} +`; diff --git a/src/types/__tests__/__snapshots__/rhsmApiTypes.test.js.snap b/src/types/__tests__/__snapshots__/rhsmApiTypes.test.js.snap deleted file mode 100644 index fab749fb8..000000000 --- a/src/types/__tests__/__snapshots__/rhsmApiTypes.test.js.snap +++ /dev/null @@ -1,291 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`RhsmApiTypes Should have specific API properties: all exported api types 1`] = ` -Object { - "RHSM_API_PATH_ID_TYPES": Object { - "OPENSHIFT": "OpenShift Container Platform", - "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", - }, - "RHSM_API_QUERY_END_DATE": "ending", - "RHSM_API_QUERY_GRANULARITY": "granularity", - "RHSM_API_QUERY_GRANULARITY_TYPES": Object { - "DAILY": "daily", - "MONTHLY": "monthly", - "QUARTERLY": "quarterly", - "WEEKLY": "weekly", - }, - "RHSM_API_QUERY_LIMIT": "limit", - "RHSM_API_QUERY_OFFSET": "offset", - "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", - "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", - "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", - "RHSM_API_QUERY_SLA": "sla", - "RHSM_API_QUERY_SLA_TYPES": Object { - "NONE": "", - "PREMIUM": "premium", - "SELF": "self-support", - "STANDARD": "standard", - }, - "RHSM_API_QUERY_START_DATE": "beginning", - "RHSM_API_RESPONSE_CAPACITY_DATA": "data", - "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { - "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_CAPACITY_META": "meta", - "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { - "COUNT": "count", - }, - "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", - "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { - "CLOUD_CORES": "cloud_cores", - "CLOUD_INSTANCES": "cloud_instance_count", - "CLOUD_SOCKETS": "cloud_sockets", - "CORES": "cores", - "DATE": "date", - "HAS_DATA": "has_data", - "HYPERVISOR_CORES": "hypervisor_cores", - "HYPERVISOR_SOCKETS": "hypervisor_sockets", - "PHYSICAL_CORES": "physical_cores", - "PHYSICAL_SOCKETS": "physical_sockets", - "SOCKETS": "sockets", - }, - "RHSM_API_RESPONSE_PRODUCTS_META": "meta", - "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { - "COUNT": "count", - }, - "default": Object { - "RHSM_API_PATH_ID_TYPES": Object { - "OPENSHIFT": "OpenShift Container Platform", - "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", - }, - "RHSM_API_QUERY_END_DATE": "ending", - "RHSM_API_QUERY_GRANULARITY": "granularity", - "RHSM_API_QUERY_GRANULARITY_TYPES": Object { - "DAILY": "daily", - "MONTHLY": "monthly", - "QUARTERLY": "quarterly", - "WEEKLY": "weekly", - }, - "RHSM_API_QUERY_LIMIT": "limit", - "RHSM_API_QUERY_OFFSET": "offset", - "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", - "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", - "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", - "RHSM_API_QUERY_SLA": "sla", - "RHSM_API_QUERY_SLA_TYPES": Object { - "NONE": "", - "PREMIUM": "premium", - "SELF": "self-support", - "STANDARD": "standard", - }, - "RHSM_API_QUERY_START_DATE": "beginning", - "RHSM_API_RESPONSE_CAPACITY_DATA": "data", - "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { - "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_CAPACITY_META": "meta", - "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { - "COUNT": "count", - }, - "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", - "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { - "CLOUD_CORES": "cloud_cores", - "CLOUD_INSTANCES": "cloud_instance_count", - "CLOUD_SOCKETS": "cloud_sockets", - "CORES": "cores", - "DATE": "date", - "HAS_DATA": "has_data", - "HYPERVISOR_CORES": "hypervisor_cores", - "HYPERVISOR_SOCKETS": "hypervisor_sockets", - "PHYSICAL_CORES": "physical_cores", - "PHYSICAL_SOCKETS": "physical_sockets", - "SOCKETS": "sockets", - }, - "RHSM_API_RESPONSE_PRODUCTS_META": "meta", - "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { - "COUNT": "count", - }, - }, - "rhsmApiTypes": Object { - "RHSM_API_PATH_ID_TYPES": Object { - "OPENSHIFT": "OpenShift Container Platform", - "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", - }, - "RHSM_API_QUERY_END_DATE": "ending", - "RHSM_API_QUERY_GRANULARITY": "granularity", - "RHSM_API_QUERY_GRANULARITY_TYPES": Object { - "DAILY": "daily", - "MONTHLY": "monthly", - "QUARTERLY": "quarterly", - "WEEKLY": "weekly", - }, - "RHSM_API_QUERY_LIMIT": "limit", - "RHSM_API_QUERY_OFFSET": "offset", - "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", - "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", - "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", - "RHSM_API_QUERY_SLA": "sla", - "RHSM_API_QUERY_SLA_TYPES": Object { - "NONE": "", - "PREMIUM": "premium", - "SELF": "self-support", - "STANDARD": "standard", - }, - "RHSM_API_QUERY_START_DATE": "beginning", - "RHSM_API_RESPONSE_CAPACITY_DATA": "data", - "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { - "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_CAPACITY_META": "meta", - "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { - "COUNT": "count", - }, - "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", - "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { - "CLOUD_CORES": "cloud_cores", - "CLOUD_INSTANCES": "cloud_instance_count", - "CLOUD_SOCKETS": "cloud_sockets", - "CORES": "cores", - "DATE": "date", - "HAS_DATA": "has_data", - "HYPERVISOR_CORES": "hypervisor_cores", - "HYPERVISOR_SOCKETS": "hypervisor_sockets", - "PHYSICAL_CORES": "physical_cores", - "PHYSICAL_SOCKETS": "physical_sockets", - "SOCKETS": "sockets", - }, - "RHSM_API_RESPONSE_PRODUCTS_META": "meta", - "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { - "COUNT": "count", - }, - }, -} -`; - -exports[`RhsmApiTypes Should have specific API properties: specific types 1`] = ` -Object { - "RHSM_API_PATH_ID_TYPES": Object { - "OPENSHIFT": "OpenShift Container Platform", - "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", - }, - "RHSM_API_QUERY_END_DATE": "ending", - "RHSM_API_QUERY_GRANULARITY": "granularity", - "RHSM_API_QUERY_GRANULARITY_TYPES": Object { - "DAILY": "daily", - "MONTHLY": "monthly", - "QUARTERLY": "quarterly", - "WEEKLY": "weekly", - }, - "RHSM_API_QUERY_LIMIT": "limit", - "RHSM_API_QUERY_OFFSET": "offset", - "RHSM_API_QUERY_OPTIN_CONDUIT_SYNC": "enable_conduit_sync", - "RHSM_API_QUERY_OPTIN_TALLY_REPORT": "enable_tally_reporting", - "RHSM_API_QUERY_OPTIN_TALLY_SYNC": "enable_tally_sync", - "RHSM_API_QUERY_SLA": "sla", - "RHSM_API_QUERY_SLA_TYPES": Object { - "NONE": "", - "PREMIUM": "premium", - "SELF": "self-support", - "STANDARD": "standard", - }, - "RHSM_API_QUERY_START_DATE": "beginning", - "RHSM_API_RESPONSE_CAPACITY_DATA": "data", - "RHSM_API_RESPONSE_CAPACITY_DATA_TYPES": Object { - "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_CAPACITY_META": "meta", - "RHSM_API_RESPONSE_CAPACITY_META_TYPES": Object { - "COUNT": "count", - }, - "RHSM_API_RESPONSE_PRODUCTS_DATA": "data", - "RHSM_API_RESPONSE_PRODUCTS_DATA_TYPES": Object { - "CLOUD_CORES": "cloud_cores", - "CLOUD_INSTANCES": "cloud_instance_count", - "CLOUD_SOCKETS": "cloud_sockets", - "CORES": "cores", - "DATE": "date", - "HAS_DATA": "has_data", - "HYPERVISOR_CORES": "hypervisor_cores", - "HYPERVISOR_SOCKETS": "hypervisor_sockets", - "PHYSICAL_CORES": "physical_cores", - "PHYSICAL_SOCKETS": "physical_sockets", - "SOCKETS": "sockets", - }, - "RHSM_API_RESPONSE_PRODUCTS_META": "meta", - "RHSM_API_RESPONSE_PRODUCTS_META_TYPES": Object { - "COUNT": "count", - }, -} -`; diff --git a/src/types/__tests__/index.test.js b/src/types/__tests__/index.test.js new file mode 100644 index 000000000..f022b26f5 --- /dev/null +++ b/src/types/__tests__/index.test.js @@ -0,0 +1,8 @@ +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/__tests__/rhsmApiTypes.test.js b/src/types/__tests__/rhsmApiTypes.test.js deleted file mode 100644 index ab5389e3b..000000000 --- a/src/types/__tests__/rhsmApiTypes.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import rhsmApiTypes, * as allApiTypes from '../rhsmApiTypes'; - -describe('RhsmApiTypes', () => { - it('Should have specific API properties', () => { - expect(rhsmApiTypes).toMatchSnapshot('specific types'); - expect(allApiTypes).toMatchSnapshot('all exported api types'); - }); -}); diff --git a/src/types/index.js b/src/types/index.js new file mode 100644 index 000000000..06ebc4aa8 --- /dev/null +++ b/src/types/index.js @@ -0,0 +1,9 @@ +import { platformApiTypes } from './platformApiTypes'; +import { rhsmApiTypes } from './rhsmApiTypes'; + +const apiTypes = { + platformApi: platformApiTypes, + rhsmApi: rhsmApiTypes +}; + +export { apiTypes as default, apiTypes, platformApiTypes, rhsmApiTypes }; diff --git a/src/types/platformApiTypes.js b/src/types/platformApiTypes.js new file mode 100644 index 000000000..a81d6a535 --- /dev/null +++ b/src/types/platformApiTypes.js @@ -0,0 +1,33 @@ +const PLATFORM_API_RESPONSE_USER_ENTITLEMENTS = 'entitlements'; + +const PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES = { + ENTITLED: 'is_entitled' +}; + +const PLATFORM_API_RESPONSE_USER_IDENTITY = 'identity'; + +const PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES = { + USER: 'user' +}; + +const PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES = { + ORG_ADMIN: 'is_org_admin' +}; + +const platformApiTypes = { + PLATFORM_API_RESPONSE_USER_ENTITLEMENTS, + PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES, + PLATFORM_API_RESPONSE_USER_IDENTITY, + PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES, + PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES +}; + +export { + platformApiTypes as default, + platformApiTypes, + PLATFORM_API_RESPONSE_USER_ENTITLEMENTS, + PLATFORM_API_RESPONSE_USER_ENTITLEMENTS_APP_TYPES, + PLATFORM_API_RESPONSE_USER_IDENTITY, + PLATFORM_API_RESPONSE_USER_IDENTITY_TYPES, + PLATFORM_API_RESPONSE_USER_IDENTITY_USER_TYPES +};