Skip to content

Commit

Permalink
feat(toolbarFieldRangedMonthly): ent-3507 select month range (#589)
Browse files Browse the repository at this point in the history
* dateHelpers, generate a listing of month, date objects
* select, maxHeight pf prop
* toolbarFieldRangedMonthly, prior months with date ranges
  • Loading branch information
cdcabrera committed Apr 20, 2021
1 parent 84e7bd3 commit ae543b4
Show file tree
Hide file tree
Showing 13 changed files with 1,029 additions and 6 deletions.
2 changes: 2 additions & 0 deletions public/locales/en-US.json
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@
"granularity_weekly": "Weekly",
"granularity_monthly": "Monthly",
"granularity_quarterly": "Quarterly",
"granularityRange": "{{context}}",
"granularityRange_current": "This month",
"slaNone": "No SLA",
"slaPremium": "Premium",
"slaSelfSupport": "Self-Support",
Expand Down
332 changes: 332 additions & 0 deletions src/common/__tests__/__snapshots__/dateHelpers.test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Object {
},
"getCurrentDate": [Function],
"getRangedDateTime": [Function],
"getRangedMonthDateTime": [Function],
"monthlyDateTime": Object {
"endDate": 2019-07-01T23:59:59.999Z,
"startDate": 2018-07-01T00:00:00.000Z,
Expand All @@ -20,6 +21,10 @@ Object {
"endDate": 2019-07-01T23:59:59.999Z,
"startDate": 2016-07-01T00:00:00.000Z,
},
"rangedYearDateTime": Object {
"endDate": 2019-07-31T23:59:59.999Z,
"startDate": 2018-08-01T00:00:00.000Z,
},
"setRangedDateTime": [Function],
"timestampDayFormats": Object {
"long": "MMMM D",
Expand All @@ -46,6 +51,333 @@ Object {
}
`;

exports[`DateHelpers should return a predictable object and list of months based on a year range: get a specific month by name 1`] = `
Object {
"_title": "april",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"April\\"})",
"value": Object {
"endDate": 2019-04-30T23:59:59.999Z,
"startDate": 2019-04-01T00:00:00.000Z,
},
}
`;

exports[`DateHelpers should return a predictable object and list of months based on a year range: get a specific month by number 1`] = `
Object {
"_title": "march",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"March\\"})",
"value": Object {
"endDate": 2019-03-31T23:59:59.999Z,
"startDate": 2019-03-01T00:00:00.000Z,
},
}
`;

exports[`DateHelpers should return a predictable object and list of months based on a year range: getRangedYearDateTime 1`] = `
Object {
"keyDateTimeRanges": Object {
"1": Object {
"_title": "january",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"January\\"})",
"value": Object {
"endDate": 2019-01-31T23:59:59.999Z,
"startDate": 2019-01-01T00:00:00.000Z,
},
},
"10": Object {
"_title": "october",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"October 2018\\"})",
"value": Object {
"endDate": 2018-10-31T23:59:59.999Z,
"startDate": 2018-10-01T00:00:00.000Z,
},
},
"11": Object {
"_title": "november",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"November 2018\\"})",
"value": Object {
"endDate": 2018-11-30T23:59:59.999Z,
"startDate": 2018-11-01T00:00:00.000Z,
},
},
"12": Object {
"_title": "december",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"December 2018\\"})",
"value": Object {
"endDate": 2018-12-31T23:59:59.999Z,
"startDate": 2018-12-01T00:00:00.000Z,
},
},
"2": Object {
"_title": "february",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"February\\"})",
"value": Object {
"endDate": 2019-02-28T23:59:59.999Z,
"startDate": 2019-02-01T00:00:00.000Z,
},
},
"3": Object {
"_title": "march",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"March\\"})",
"value": Object {
"endDate": 2019-03-31T23:59:59.999Z,
"startDate": 2019-03-01T00:00:00.000Z,
},
},
"4": Object {
"_title": "april",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"April\\"})",
"value": Object {
"endDate": 2019-04-30T23:59:59.999Z,
"startDate": 2019-04-01T00:00:00.000Z,
},
},
"5": Object {
"_title": "may",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"May\\"})",
"value": Object {
"endDate": 2019-05-31T23:59:59.999Z,
"startDate": 2019-05-01T00:00:00.000Z,
},
},
"6": Object {
"_title": "june",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"June\\"})",
"value": Object {
"endDate": 2019-06-30T23:59:59.999Z,
"startDate": 2019-06-01T00:00:00.000Z,
},
},
"7": Object {
"_title": "july",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"July\\"})",
"value": Object {
"endDate": 2019-07-31T23:59:59.999Z,
"startDate": 2019-07-01T00:00:00.000Z,
},
},
"8": Object {
"_title": "august",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"August 2018\\"})",
"value": Object {
"endDate": 2018-08-31T23:59:59.999Z,
"startDate": 2018-08-01T00:00:00.000Z,
},
},
"9": Object {
"_title": "september",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"September 2018\\"})",
"value": Object {
"endDate": 2018-09-30T23:59:59.999Z,
"startDate": 2018-09-01T00:00:00.000Z,
},
},
"april": Object {
"_title": "april",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"April\\"})",
"value": Object {
"endDate": 2019-04-30T23:59:59.999Z,
"startDate": 2019-04-01T00:00:00.000Z,
},
},
"august": Object {
"_title": "august",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"August 2018\\"})",
"value": Object {
"endDate": 2018-08-31T23:59:59.999Z,
"startDate": 2018-08-01T00:00:00.000Z,
},
},
"current": Object {
"_title": "current",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"current\\"})",
"value": Object {
"endDate": 2019-07-31T23:59:59.999Z,
"startDate": 2019-07-01T00:00:00.000Z,
},
},
"december": Object {
"_title": "december",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"December 2018\\"})",
"value": Object {
"endDate": 2018-12-31T23:59:59.999Z,
"startDate": 2018-12-01T00:00:00.000Z,
},
},
"february": Object {
"_title": "february",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"February\\"})",
"value": Object {
"endDate": 2019-02-28T23:59:59.999Z,
"startDate": 2019-02-01T00:00:00.000Z,
},
},
"january": Object {
"_title": "january",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"January\\"})",
"value": Object {
"endDate": 2019-01-31T23:59:59.999Z,
"startDate": 2019-01-01T00:00:00.000Z,
},
},
"july": Object {
"_title": "july",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"July\\"})",
"value": Object {
"endDate": 2019-07-31T23:59:59.999Z,
"startDate": 2019-07-01T00:00:00.000Z,
},
},
"june": Object {
"_title": "june",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"June\\"})",
"value": Object {
"endDate": 2019-06-30T23:59:59.999Z,
"startDate": 2019-06-01T00:00:00.000Z,
},
},
"march": Object {
"_title": "march",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"March\\"})",
"value": Object {
"endDate": 2019-03-31T23:59:59.999Z,
"startDate": 2019-03-01T00:00:00.000Z,
},
},
"may": Object {
"_title": "may",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"May\\"})",
"value": Object {
"endDate": 2019-05-31T23:59:59.999Z,
"startDate": 2019-05-01T00:00:00.000Z,
},
},
"november": Object {
"_title": "november",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"November 2018\\"})",
"value": Object {
"endDate": 2018-11-30T23:59:59.999Z,
"startDate": 2018-11-01T00:00:00.000Z,
},
},
"october": Object {
"_title": "october",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"October 2018\\"})",
"value": Object {
"endDate": 2018-10-31T23:59:59.999Z,
"startDate": 2018-10-01T00:00:00.000Z,
},
},
"september": Object {
"_title": "september",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"September 2018\\"})",
"value": Object {
"endDate": 2018-09-30T23:59:59.999Z,
"startDate": 2018-09-01T00:00:00.000Z,
},
},
},
"listDateTimeRanges": Array [
Object {
"_title": "current",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"current\\"})",
"value": Object {
"endDate": 2019-07-31T23:59:59.999Z,
"startDate": 2019-07-01T00:00:00.000Z,
},
},
Object {
"_title": "june",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"June\\"})",
"value": Object {
"endDate": 2019-06-30T23:59:59.999Z,
"startDate": 2019-06-01T00:00:00.000Z,
},
},
Object {
"_title": "may",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"May\\"})",
"value": Object {
"endDate": 2019-05-31T23:59:59.999Z,
"startDate": 2019-05-01T00:00:00.000Z,
},
},
Object {
"_title": "april",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"April\\"})",
"value": Object {
"endDate": 2019-04-30T23:59:59.999Z,
"startDate": 2019-04-01T00:00:00.000Z,
},
},
Object {
"_title": "march",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"March\\"})",
"value": Object {
"endDate": 2019-03-31T23:59:59.999Z,
"startDate": 2019-03-01T00:00:00.000Z,
},
},
Object {
"_title": "february",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"February\\"})",
"value": Object {
"endDate": 2019-02-28T23:59:59.999Z,
"startDate": 2019-02-01T00:00:00.000Z,
},
},
Object {
"_title": "january",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"January\\"})",
"value": Object {
"endDate": 2019-01-31T23:59:59.999Z,
"startDate": 2019-01-01T00:00:00.000Z,
},
},
Object {
"_title": "december",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"December 2018\\"})",
"value": Object {
"endDate": 2018-12-31T23:59:59.999Z,
"startDate": 2018-12-01T00:00:00.000Z,
},
},
Object {
"_title": "november",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"November 2018\\"})",
"value": Object {
"endDate": 2018-11-30T23:59:59.999Z,
"startDate": 2018-11-01T00:00:00.000Z,
},
},
Object {
"_title": "october",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"October 2018\\"})",
"value": Object {
"endDate": 2018-10-31T23:59:59.999Z,
"startDate": 2018-10-01T00:00:00.000Z,
},
},
Object {
"_title": "september",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"September 2018\\"})",
"value": Object {
"endDate": 2018-09-30T23:59:59.999Z,
"startDate": 2018-09-01T00:00:00.000Z,
},
},
Object {
"_title": "august",
"title": "t(curiosity-toolbar.granularityRange, {\\"context\\":\\"August 2018\\"})",
"value": Object {
"endDate": 2018-08-31T23:59:59.999Z,
"startDate": 2018-08-01T00:00:00.000Z,
},
},
],
}
`;

exports[`DateHelpers should return a predictable range based on granularity: granularity range of time 1`] = `
Array [
Object {
Expand Down
17 changes: 16 additions & 1 deletion src/common/__tests__/dateHelpers.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { dateHelpers, getCurrentDate, setRangedDateTime, getRangedDateTime } from '../dateHelpers';
import {
dateHelpers,
getCurrentDate,
setRangedDateTime,
getRangedDateTime,
getRangedMonthDateTime
} from '../dateHelpers';
import { RHSM_API_QUERY_GRANULARITY_TYPES as GRANULARITY_TYPES } from '../../types/rhsmApiTypes';

describe('DateHelpers', () => {
Expand All @@ -18,6 +24,9 @@ describe('DateHelpers', () => {

expect(dateHelpers.quarterlyDateTime.startDate.constructor).toBe(Date);
expect(dateHelpers.quarterlyDateTime.endDate.constructor).toBe(Date);

expect(dateHelpers.rangedYearDateTime.startDate.constructor).toBe(Date);
expect(dateHelpers.rangedYearDateTime.endDate.constructor).toBe(Date);
});

it('should return a predictable range of time', () => {
Expand All @@ -38,4 +47,10 @@ describe('DateHelpers', () => {

expect(rangesOfDatesTimes).toMatchSnapshot('granularity range of time');
});

it('should return a predictable object and list of months based on a year range', () => {
expect(getRangedMonthDateTime()).toMatchSnapshot('getRangedYearDateTime');
expect(getRangedMonthDateTime('april')).toMatchSnapshot('get a specific month by name');
expect(getRangedMonthDateTime(3)).toMatchSnapshot('get a specific month by number');
});
});
Loading

0 comments on commit ae543b4

Please sign in to comment.