From b844d95b957b385cc0c5b5b296ed7fe83a36d80b Mon Sep 17 00:00:00 2001 From: Darius Williams <dswilliams@contractor.usgs.gov> Date: Thu, 23 Jun 2022 08:53:15 -0500 Subject: [PATCH] misc changes --- CHANGELOG.md | 2 +- .../components/hydrograph/index.test.js | 4 +-- .../hydrograph/mock-hydrograph-state.js | 34 +++++++++---------- .../hydrograph/selectors/statistics.js | 7 ++-- .../hydrograph/selectors/statistics.test.js | 22 ++++++------ .../hydrograph/time-series-graph.test.js | 2 +- .../vue-components/statistics-table.test.js | 19 +++++------ .../vue-components/statistics-table.vue | 16 ++++----- 8 files changed, 51 insertions(+), 55 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f6e6cd3b..4e50f271a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Time span controls were converted to use Vue. ### Fixed -- Parameter codes with multiple methods will now statistical data for each method available. +- Parameter codes with multiple methods will now show statistical data for each method available. ## [1.2.0](https://github.com/usgs/waterdataui/compare/waterdataui-1.1.0...waterdataui-1.2.0) - 2022-06-10 ### Added diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js index 8a5a0cf86..7c79cabd5 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/index.test.js @@ -343,7 +343,7 @@ describe('monitoring-location/components/hydrograph module', () => { }); it('should have a point for the median stat data with a label', () => { - expect(selectAll('#median-points path').size()).toBe(1); + expect(selectAll('#median-points path').size()).toBe(2); expect(selectAll('#median-points text').size()).toBe(0); }); @@ -456,7 +456,7 @@ describe('monitoring-location/components/hydrograph module', () => { }); it('should have a point for the median stat data with a label', () => { - expect(selectAll('#median-points path').size()).toBe(1); + expect(selectAll('#median-points path').size()).toBe(2); expect(selectAll('#median-points text').size()).toBe(0); }); diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/mock-hydrograph-state.js b/assets/src/scripts/monitoring-location/components/hydrograph/mock-hydrograph-state.js index b4177c7d3..111cfe58f 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/mock-hydrograph-state.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/mock-hydrograph-state.js @@ -61,23 +61,23 @@ export const TEST_STATS_DATA = { max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''} ], - '90649': [ - {month_nu: 2, day_nu: 24, p50_va: 16, ts_id: '153885', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', - p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''}, - {month_nu: 2, day_nu: 25, p50_va: 16.2, ts_id: '153885', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', - p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''}, - {month_nu: 2, day_nu: 26, p50_va: 15.9, ts_id: '153885', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', - p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''}, - {month_nu: 2, day_nu: 27, p50_va: 16.3, ts_id: '153885', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', - p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''}, - {month_nu: 2, day_nu: 28, p50_va: 16.4, ts_id: '153885', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', min_va_yr: '2006', min_va: '55.5', mean_va: '153', p05_va: '', p10_va: '61', p20_va: '88', p25_va: '100', - p75_va: '224', p80_va: '264', p90_va: '271', p95_va: ''} - ] + '90649': [ + {month_nu: 2, day_nu: 24, p50_va: 160, ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', + max_va: '2730', min_va_yr: '2006', min_va: '550.5', mean_va: '1530', p05_va: '', p10_va: '610', p20_va: '880', p25_va: '1000', + p75_va: '2240', p80_va: '2640', p90_va: '2710', p95_va: ''}, + {month_nu: 2, day_nu: 25, p50_va: 160.2, ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', + max_va: '2730', min_va_yr: '2006', min_va: '550.5', mean_va: '1530', p05_va: '', p10_va: '610', p20_va: '880', p25_va: '1000', + p75_va: '2240', p80_va: '2640', p90_va: '2710', p95_va: ''}, + {month_nu: 2, day_nu: 26, p50_va: 150.9, ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', + max_va: '2730', min_va_yr: '2006', min_va: '550.5', mean_va: '1530', p05_va: '', p10_va: '610', p20_va: '880', p25_va: '1000', + p75_va: '2240', p80_va: '2640', p90_va: '2710', p95_va: ''}, + {month_nu: 2, day_nu: 27, p50_va: 160.3, ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', + max_va: '2730', min_va_yr: '2006', min_va: '550.5', mean_va: '1530', p05_va: '', p10_va: '610', p20_va: '880', p25_va: '1000', + p75_va: '2240', p80_va: '2640', p90_va: '2710', p95_va: ''}, + {month_nu: 2, day_nu: 28, p50_va: 160.4, ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', + max_va: '2730', min_va_yr: '2006', min_va: '550.5', mean_va: '1530', p05_va: '', p10_va: '610', p20_va: '880', p25_va: '1000', + p75_va: '2240', p80_va: '2640', p90_va: '2710', p95_va: ''} + ] }; export const TEST_GW_LEVELS = { diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.js b/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.js index 2e7b17ec6..b4c6cd83c 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.js @@ -5,9 +5,10 @@ import memoize from 'fast-memoize'; import {getStatisticsData} from 'ml/selectors/hydrograph-data-selector'; /* - * Selector function that gets the statistics for a given day + * Selector function that gets the statistics for a given day and returns an + * array containing an object for each method with statistis available * @param {Date} a Date object for the day to be fetched - * @returns {Object} + * @returns [Array {Object}] * */ export const getDailyStatistics = memoize( (date) => createSelector( @@ -24,7 +25,7 @@ export const getDailyStatistics = memoize( (date) => createSelector( const isLeapYear = dateObj.isInLeapYear; const dayInYear = dateObj.ordinal; - // There is a decicated index in stats array for Feb 29 + // There is a dedicated index in stats array for Feb 29 if (!isLeapYear && date.getMonth() > 1) { return statsDataArray.map((methodArray) => methodArray[dayInYear]); } diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.test.js index 4bb3d8c70..8e5309f09 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.test.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/selectors/statistics.test.js @@ -33,23 +33,23 @@ describe('monitoring-location/components/hydrograph/selectors/statistics-table', })).toStrictEqual([{ month_nu: 2, day_nu: 25, - p50_va: 16.2, - ts_id: '153885', + p50_va: 160.2, + ts_id: '90649', loc_web_ds: 'Method2', begin_yr: '2011', end_yr: '2020', max_va_yr: '2020', - max_va: '273', + max_va: '2730', min_va_yr: '2006', - min_va: '55.5', - mean_va: '153', + min_va: '550.5', + mean_va: '1530', p05_va: '', - p10_va: '61', - p20_va: '88', - p25_va: '100', - p75_va: '224', - p80_va: '264', - p90_va: '271', + p10_va: '610', + p20_va: '880', + p25_va: '1000', + p75_va: '2240', + p80_va: '2640', + p90_va: '2710', p95_va: ''}, {month_nu: 2, diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/time-series-graph.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/time-series-graph.test.js index 6242c6177..c9bb24ae3 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/time-series-graph.test.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/time-series-graph.test.js @@ -112,6 +112,6 @@ describe('monitoring-location/components/hydrograph/time-series-graph', () => { expect(div.selectAll('.ts-primary-group').html()).not.toEqual(''); expect(div.selectAll('.ts-compare-group').html()).toEqual(''); expect(div.selectAll('.iv-graph-gw-levels-group').html()).not.toEqual(''); - expect(div.selectAll('.median-stats-group').size()).toBe(1); + expect(div.selectAll('.median-stats-group').size()).toBe(2); }); }); diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.test.js b/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.test.js index ed0fd5864..b35e4b402 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.test.js +++ b/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.test.js @@ -71,8 +71,7 @@ describe('monitoring-location/components/hydrograph/statistics', () => { jest.useRealTimers(); }); - it('Creates the stats table elements', () => { - expect(wrapper.find('caption').text()).toContain('Test Name'); + it('Displays the accordion', () => { expect(wrapper.find('.stats-accordion').isVisible()).toBe(true); }); @@ -80,8 +79,8 @@ describe('monitoring-location/components/hydrograph/statistics', () => { const captions = wrapper.findAll('caption'); expect(wrapper.findAll('#daily-stats-tables div')).toHaveLength(2); expect(captions).toHaveLength(2); - expect(captions[0].text()).toContain('Method2'); - expect(captions[1].text()).toContain('Method1'); + expect(captions[0].text()).toContain('Test Name (Method2)'); + expect(captions[1].text()).toContain('Test Name (Method1)'); }); it('Expects the table to have headers', () => { @@ -100,12 +99,12 @@ describe('monitoring-location/components/hydrograph/statistics', () => { let tableHeaders = wrapper.find('tbody').find('tr').findAll('tr > th'); expect(tableHeaders).toHaveLength(7); expect(tableHeaders[0].text()).toBe('25.9'); - expect(tableHeaders[1].text()).toBe('55.5'); - expect(tableHeaders[2].text()).toBe('100'); - expect(tableHeaders[3].text()).toBe('16'); - expect(tableHeaders[4].text()).toBe('224'); - expect(tableHeaders[5].text()).toBe('153'); - expect(tableHeaders[6].text()).toBe('273'); + expect(tableHeaders[1].text()).toBe('550.5'); + expect(tableHeaders[2].text()).toBe('1000'); + expect(tableHeaders[3].text()).toBe('160'); + expect(tableHeaders[4].text()).toBe('2240'); + expect(tableHeaders[5].text()).toBe('1530'); + expect(tableHeaders[6].text()).toBe('2730'); }); }); diff --git a/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.vue b/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.vue index 4e3be0883..d1859088b 100644 --- a/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.vue +++ b/assets/src/scripts/monitoring-location/components/hydrograph/vue-components/statistics-table.vue @@ -1,6 +1,6 @@ <template> <div - v-show="dataArray[0].tableData.length" + v-show="dataArray.length" class="stats-accordion usa-accordion wdfn-accordion" > <h2 class="usa-accordion__heading"> @@ -29,8 +29,8 @@ class="usa-table usa-table--stacked" > <!-- eslint-disable vue/no-v-html --> - <caption> - Daily <span v-html="data.location_description ? `${parameterName} (${data.location_description})` : parameterName" /> + <caption v-if="parameter"> + Daily <span v-html="data.location_description ? `${parameter.name} (${data.location_description})` : parameter.name" /> for {{ now.toDateString() }} based on {{ data.yearCount }} {{ data.yearCount === '1' ? 'year' : 'years' }} of data. </caption> @@ -68,7 +68,7 @@ import {useState} from 'redux-connect-vue'; import {createSelector} from 'reselect'; -import {getTitle} from '../selectors/time-series-data'; +import {getPrimaryParameter} from 'ml/components/hydrograph/selectors/time-series-data'; import {getDailyStatistics} from 'ml/components/hydrograph/selectors/statistics'; import {latestSelectedParameterValue} from 'ml/selectors/hydrograph-parameters-selector'; @@ -83,11 +83,7 @@ export default { latestSelectedParameterValue, (dailyStatsObjectArray, latestValue) => { if (!dailyStatsObjectArray || !latestValue || !dailyStatsObjectArray.length) { - return [{ - tableData: [], - columnHeadings: [], - yearCount: '' - }]; + return []; } return dailyStatsObjectArray.map(dailyStatsObject => { @@ -107,7 +103,7 @@ export default { const state = useState({ dataArray: getStatsAndLatestData, - parameterName: getTitle + parameter: getPrimaryParameter }); return { -- GitLab