diff --git a/cypress/component/Dataset/datasetStatistics.spec.js b/cypress/component/Dataset/datasetStatistics.spec.js index 465943e64d..43c2d601f4 100644 --- a/cypress/component/Dataset/datasetStatistics.spec.js +++ b/cypress/component/Dataset/datasetStatistics.spec.js @@ -164,4 +164,23 @@ describe('Dataset Statistics Tests', () => { cy.contains('and can be accessed directly').should('not.exist'); }); + it('displays with no additional properties', () => { + cy.stub(DataSet, 'getDatasetByDatasetIdentifier').returns(Promise.resolve(dataset)); + cy.stub(DataSet, 'getDataSetsByDatasetId').returns(Promise.resolve(dataset)); + cy.stub(DatasetMetrics, 'getDatasetStats').returns(Promise.resolve({})); + + const props = { + match: { + params: { + datasetIdentifier: dataset.datasetIdentifier + } + }, + history: { + push() { + } + } + }; + mount(); + cy.contains(dataset.datasetIdentifier).should('exist'); + }); }); diff --git a/src/libs/Models.ts b/src/libs/Models.ts deleted file mode 100644 index e0532b422a..0000000000 --- a/src/libs/Models.ts +++ /dev/null @@ -1,6 +0,0 @@ - -export enum AccessManagement { - OPEN = 'open', - CONTROLLED = 'controlled', - EXTERNAL = 'external' -} diff --git a/src/pages/DatasetStatistics.jsx b/src/pages/DatasetStatistics.tsx similarity index 85% rename from src/pages/DatasetStatistics.jsx rename to src/pages/DatasetStatistics.tsx index 174431f70b..6622668617 100644 --- a/src/pages/DatasetStatistics.jsx +++ b/src/pages/DatasetStatistics.tsx @@ -9,15 +9,32 @@ import {find} from 'lodash/fp'; import {ReadMore} from '../components/ReadMore'; import {formatDate} from '../libs/utils'; import {Button} from '@mui/material'; -import {AccessManagement} from '../libs/Models.ts'; +import {History} from 'history'; +import {Dataset, DatasetProperty} from '../types/model'; const LINE =
; -export default function DatasetStatistics(props) { +enum AccessManagement { + OPEN = 'open', + CONTROLLED = 'controlled', + EXTERNAL = 'external' +} + + +interface DatasetStatisticsProps { + history: History, + match: { + params: { + datasetIdentifier: string; + } + } +} + +export default function DatasetStatistics(props: DatasetStatisticsProps) { const {history, match: {params: {datasetIdentifier}}} = props; - const [datasetId, setDatasetId] = useState(); - const [dataset, setDataset] = useState(); - const [dars, setDars] = useState(); + const [datasetId, setDatasetId] = useState(); + const [dataset, setDataset] = useState(); + const [dars, setDars] = useState(); const [isLoading, setIsLoading] = useState(true); const applyForAccess = async () => { @@ -43,12 +60,12 @@ export default function DatasetStatistics(props) { }); }, [datasetIdentifier]); - const extract = useCallback((propertyName) => { - const property = find({propertyName})(dataset.properties); + const extract = useCallback((propertyName: string) => { + const property = find({propertyName})(dataset?.properties) as DatasetProperty; return property?.propertyValue; }, [dataset]); - const setData = async (datasetId) => { + const setData = async (datasetId: number) => { try { setIsLoading(true); const metrics = await DatasetMetrics.getDatasetStats(datasetId); @@ -64,7 +81,7 @@ export default function DatasetStatistics(props) { }; const accessInstructions = () => { - const accessManagement = extract('Access Management').toLowerCase(); + const accessManagement = extract('Access Management')?.toLowerCase(); const locationUrl = extract('URL'); switch (accessManagement) { case AccessManagement.CONTROLLED: @@ -111,11 +128,11 @@ export default function DatasetStatistics(props) {
Dataset Information
-
+
Dataset Description:
{LINE}
- {extract('Dataset Description') || dataset?.description || dataset?.study?.description || 'N/A'} + {extract('Dataset Description') || dataset?.study?.description || 'N/A'}
@@ -140,9 +157,10 @@ export default function DatasetStatistics(props) {
Data Access Requests - Research Statements
- {dars?.map((dar) => ( -
+ {dars?.map((dar: any) => ( +