Skip to content

Commit

Permalink
fix(rhsmTransformers): ent-5121 hide graph future dates (RedHatInsigh…
Browse files Browse the repository at this point in the history
  • Loading branch information
cdcabrera authored Jun 24, 2022
1 parent 3ef53f5 commit 7776fd7
Show file tree
Hide file tree
Showing 3 changed files with 330 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,198 @@ Object {
}
`;

exports[`RHSM Transformers should attempt to parse a tally response: tally, daily like granularity 1`] = `
Object {
"data": Array [
Object {
"date": "2019-07-14T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 0,
"y": 0,
},
Object {
"date": "2019-07-15T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 1,
"y": 0,
},
Object {
"date": "2019-07-16T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 2,
"y": 1.4977989514668784,
},
Object {
"date": "2019-07-17T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 3,
"y": 1.5547887908087836,
},
Object {
"date": "2019-07-18T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 4,
"y": 4.446975872251722,
},
Object {
"date": "2019-07-19T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 5,
"y": 4.69084013303121,
},
Object {
"date": "2019-07-20T00:00:00Z",
"hasData": false,
"isCurrentDate": true,
"isFutureDate": false,
"x": 6,
"y": null,
},
Object {
"date": "2019-07-21T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 7,
"y": null,
},
Object {
"date": "2019-07-22T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 8,
"y": null,
},
Object {
"date": "2019-07-23T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 9,
"y": null,
},
Object {
"date": "2019-07-24T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 10,
"y": null,
},
Object {
"date": "2019-07-25T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 11,
"y": null,
},
],
"meta": Object {
"cloudigradeHasMismatch": undefined,
"count": undefined,
"metricId": undefined,
"productId": undefined,
"totalMonthlyDate": undefined,
"totalMonthlyHasData": undefined,
"totalMonthlyValue": undefined,
},
}
`;

exports[`RHSM Transformers should attempt to parse a tally response: tally, monthly like granularity 1`] = `
Object {
"data": Array [
Object {
"date": "2019-01-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 0,
"y": 0,
},
Object {
"date": "2019-02-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 1,
"y": 0,
},
Object {
"date": "2019-03-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 2,
"y": 0,
},
Object {
"date": "2019-04-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 3,
"y": 0,
},
Object {
"date": "2019-05-01T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 4,
"y": 4.767144674723709,
},
Object {
"date": "2019-06-01T00:00:00Z",
"hasData": true,
"isCurrentDate": false,
"isFutureDate": false,
"x": 5,
"y": 4.446975872251722,
},
Object {
"date": "2019-07-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": false,
"x": 6,
"y": 0,
},
Object {
"date": "2019-08-01T00:00:00Z",
"hasData": false,
"isCurrentDate": false,
"isFutureDate": true,
"x": 7,
"y": null,
},
],
"meta": Object {
"cloudigradeHasMismatch": undefined,
"count": undefined,
"metricId": undefined,
"productId": undefined,
"totalMonthlyDate": undefined,
"totalMonthlyHasData": undefined,
"totalMonthlyValue": undefined,
},
}
`;

exports[`RHSM Transformers should attempt to parse an instances response: instances 1`] = `
Object {
"data": Array [
Expand Down
125 changes: 123 additions & 2 deletions src/services/rhsm/__tests__/rhsmTransformers.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { rhsmTransformers } from '../rhsmTransformers';
import { rhsmConstants } from '../rhsmConstants';
import { rhsmConstants, RHSM_API_RESPONSE_TALLY_DATA_TYPES as TALLY_DATA_TYPES } from '../rhsmConstants';

describe('RHSM Transformers', () => {
it('should have specific response transformers', () => {
Expand All @@ -22,6 +22,127 @@ describe('RHSM Transformers', () => {
});

it('should attempt to parse a tally response', () => {
expect(rhsmTransformers.tally()).toMatchSnapshot('tally');
const baseTallyResponse = {
[rhsmConstants.RHSM_API_RESPONSE_DATA]: [],
[rhsmConstants.RHSM_API_RESPONSE_META]: {}
};

expect(rhsmTransformers.tally(baseTallyResponse)).toMatchSnapshot('tally');

const dailyTallyResponse = {
[rhsmConstants.RHSM_API_RESPONSE_DATA]: [
{
[TALLY_DATA_TYPES.DATE]: '2019-07-14T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-15T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-16T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 1.4977989514668784,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-17T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 1.5547887908087836,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-18T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 4.446975872251722,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-19T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 4.69084013303121,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-20T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-21T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-22T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-23T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-24T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-25T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
}
],
[rhsmConstants.RHSM_API_RESPONSE_META]: {}
};

expect(rhsmTransformers.tally(dailyTallyResponse)).toMatchSnapshot('tally, daily like granularity');

const monthlyTallyResponse = {
[rhsmConstants.RHSM_API_RESPONSE_DATA]: [
{
[TALLY_DATA_TYPES.DATE]: '2019-01-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-02-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-03-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-04-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-05-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 4.767144674723709,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-06-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 4.446975872251722,
[TALLY_DATA_TYPES.HAS_DATA]: true
},
{
[TALLY_DATA_TYPES.DATE]: '2019-07-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
},
{
[TALLY_DATA_TYPES.DATE]: '2019-08-01T00:00:00Z',
[TALLY_DATA_TYPES.VALUE]: 0.0,
[TALLY_DATA_TYPES.HAS_DATA]: false
}
],
[rhsmConstants.RHSM_API_RESPONSE_META]: {}
};

expect(rhsmTransformers.tally(monthlyTallyResponse)).toMatchSnapshot('tally, monthly like granularity');
});
});
23 changes: 15 additions & 8 deletions src/services/rhsm/rhsmTransformers.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,26 @@ const rhsmTally = response => {
const updatedResponse = {};
const { [rhsmConstants.RHSM_API_RESPONSE_DATA]: data = [], [rhsmConstants.RHSM_API_RESPONSE_META]: meta = {} } =
response || {};
const currentDay = moment.utc(dateHelpers.getCurrentDate()).format('MM-D-YYYY');
const currentDate = moment.utc(dateHelpers.getCurrentDate()).format('MM-D-YYYY');

updatedResponse.data = data.map(
(
{ [TALLY_DATA_TYPES.DATE]: date, [TALLY_DATA_TYPES.VALUE]: value, [TALLY_DATA_TYPES.HAS_DATA]: hasData },
index
) => ({
x: index,
y: value,
date,
hasData,
isCurrentDate: moment.utc(date).format('MM-D-YYYY') === currentDay
})
) => {
const updatedDate = moment.utc(date);
const isCurrentDate = updatedDate.format('MM-D-YYYY') === currentDate;
const isFutureDate = updatedDate.diff(currentDate) > 0;

return {
x: index,
y: (hasData === false && isFutureDate) || (hasData === false && isCurrentDate) ? null : value,
date,
hasData,
isCurrentDate,
isFutureDate
};
}
);

updatedResponse.meta = {
Expand Down

0 comments on commit 7776fd7

Please sign in to comment.