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) => (
+