diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f3a2c92..fd90cf10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ This changelog follows the principles of [Keep a Changelog](https://keepachangel - New Use Case: [Get a Template](./docs/useCases.md#get-a-template) under Templates. - New Use Case: [Delete a Template](./docs/useCases.md#delete-a-template) under Templates. - New Use Case: [Update Terms of Access](./docs/useCases.md#update-terms-of-access). +- DatasetType: Updated datasetType data model. Added two more fields: description and displayName. ### Changed diff --git a/src/datasets/domain/models/DatasetType.ts b/src/datasets/domain/models/DatasetType.ts index 5475cdaf..70bd9d41 100644 --- a/src/datasets/domain/models/DatasetType.ts +++ b/src/datasets/domain/models/DatasetType.ts @@ -1,6 +1,8 @@ export interface DatasetType { id: number name: string + displayName: string linkedMetadataBlocks?: string[] availableLicenses?: string[] + description?: string } diff --git a/test/functional/datasets/AddDatasetType.test.ts b/test/functional/datasets/AddDatasetType.test.ts index 409c18b9..d8b58300 100644 --- a/test/functional/datasets/AddDatasetType.test.ts +++ b/test/functional/datasets/AddDatasetType.test.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'node:crypto' import { ApiConfig, DatasetType, addDatasetType, deleteDatasetType } from '../../../src' import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig' import { TestConstants } from '../../testHelpers/TestConstants' @@ -13,11 +14,13 @@ describe('AddDatasetType', () => { }) test('should allow for adding and deleting a dataset type', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) diff --git a/test/functional/datasets/DeleteDatasetType.test.ts b/test/functional/datasets/DeleteDatasetType.test.ts index 8f447822..22100b01 100644 --- a/test/functional/datasets/DeleteDatasetType.test.ts +++ b/test/functional/datasets/DeleteDatasetType.test.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'node:crypto' import { ApiConfig, DatasetType, addDatasetType, deleteDatasetType } from '../../../src' import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig' import { TestConstants } from '../../testHelpers/TestConstants' @@ -13,11 +14,13 @@ describe('DeleteDatasetType', () => { }) test('should allow for adding and deleting a dataset type', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) diff --git a/test/functional/datasets/GetDatasetAvailableDatasetType.test.ts b/test/functional/datasets/GetDatasetAvailableDatasetType.test.ts index 3d80f35a..f8a2017a 100644 --- a/test/functional/datasets/GetDatasetAvailableDatasetType.test.ts +++ b/test/functional/datasets/GetDatasetAvailableDatasetType.test.ts @@ -20,8 +20,11 @@ describe('getDatasetAvailableDatasetType', () => { const expectedDatasetType = { id: 1, name: 'dataset', + displayName: 'Dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.' } expect(actualDatasetType).toEqual(expectedDatasetType) diff --git a/test/functional/datasets/GetDatasetAvailableDatasetTypes.test.ts b/test/functional/datasets/GetDatasetAvailableDatasetTypes.test.ts index 14a1a2fd..6f03c714 100644 --- a/test/functional/datasets/GetDatasetAvailableDatasetTypes.test.ts +++ b/test/functional/datasets/GetDatasetAvailableDatasetTypes.test.ts @@ -19,10 +19,12 @@ describe('getDatasetAvailableDatasetTypes', () => { id: 1, name: 'dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.', + displayName: 'Dataset' } ] - expect(actualDatasetTypes).toEqual(expectedDatasetTypes) }) }) diff --git a/test/functional/datasets/LinkDatasetTypeWithMetadataBlocks.test.ts b/test/functional/datasets/LinkDatasetTypeWithMetadataBlocks.test.ts index c6f4c3f8..329ced2a 100644 --- a/test/functional/datasets/LinkDatasetTypeWithMetadataBlocks.test.ts +++ b/test/functional/datasets/LinkDatasetTypeWithMetadataBlocks.test.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'node:crypto' import { ApiConfig, DatasetType, @@ -19,11 +20,13 @@ describe('LinkDatasetTypeWithMetadataBlocks', () => { }) test('should allow for linking a dataset type to metadata blocks', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) diff --git a/test/functional/datasets/SetAvailableLicensesForDatasetType.test.ts b/test/functional/datasets/SetAvailableLicensesForDatasetType.test.ts index 0c4d6876..e9064057 100644 --- a/test/functional/datasets/SetAvailableLicensesForDatasetType.test.ts +++ b/test/functional/datasets/SetAvailableLicensesForDatasetType.test.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'node:crypto' import { ApiConfig, DatasetType, @@ -19,11 +20,13 @@ describe('SetAvailableLicensesForDatasetType', () => { }) test('should allow for setting available licenses for a dataset type', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) diff --git a/test/integration/datasets/DatasetsRepository.test.ts b/test/integration/datasets/DatasetsRepository.test.ts index 6f536add..cc415e42 100644 --- a/test/integration/datasets/DatasetsRepository.test.ts +++ b/test/integration/datasets/DatasetsRepository.test.ts @@ -1,3 +1,4 @@ +import { randomUUID } from 'node:crypto' import { DatasetsRepository } from '../../../src/datasets/infra/repositories/DatasetsRepository' import { TestConstants } from '../../testHelpers/TestConstants' import { @@ -1821,8 +1822,11 @@ describe('DatasetsRepository', () => { { id: 1, name: 'dataset', + displayName: 'Dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.' } ] @@ -1839,8 +1843,11 @@ describe('DatasetsRepository', () => { const expectedDatasetType = { id: 1, name: 'dataset', + displayName: 'Dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.' } expect(actualDatasetType).toEqual(expectedDatasetType) @@ -1849,11 +1856,13 @@ describe('DatasetsRepository', () => { describe('addDatasetType', () => { test('should add a dataset type', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) @@ -1862,11 +1871,13 @@ describe('DatasetsRepository', () => { describe('deleteDatasetType', () => { test('should delete a dataset type (after adding it)', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) @@ -1877,11 +1888,13 @@ describe('DatasetsRepository', () => { describe('linkDatasetTypeWithMetadataBlocks', () => { test('should allow for linking a dataset type to metadata blocks', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) @@ -1899,11 +1912,13 @@ describe('DatasetsRepository', () => { describe('setAvailableLicensesForDatasetType', () => { test('should allow for setting available licenses for a dataset type', async () => { - const randomName = `datasetType-${crypto.randomUUID().slice(0, 6)}` + const randomName = `datasetType-${randomUUID().slice(0, 6)}` const actual: DatasetType = await addDatasetType.execute({ name: randomName, linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + displayName: randomName, + description: 'A dataset type created for testing purposes' }) expect(actual.name).toEqual(randomName) diff --git a/test/unit/datasets/GetDatasetAvailableDatasetType.test.ts b/test/unit/datasets/GetDatasetAvailableDatasetType.test.ts index d6b4d958..9ce4fb85 100644 --- a/test/unit/datasets/GetDatasetAvailableDatasetType.test.ts +++ b/test/unit/datasets/GetDatasetAvailableDatasetType.test.ts @@ -11,8 +11,11 @@ describe('GetDatasetAvailableDatasetType', () => { const expectedDatasetType: DatasetType = { id: datasetTypeId, name: datasetTypeName, + displayName: 'Dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.' } it('should get a dataset type by database id', async () => { diff --git a/test/unit/datasets/GetDatasetAvailableDatasetTypes.test.ts b/test/unit/datasets/GetDatasetAvailableDatasetTypes.test.ts index b8768f92..d884fb70 100644 --- a/test/unit/datasets/GetDatasetAvailableDatasetTypes.test.ts +++ b/test/unit/datasets/GetDatasetAvailableDatasetTypes.test.ts @@ -12,14 +12,19 @@ describe('GetDatasetAvailableDatasetTypes', () => { { id: 1, name: 'dataset', + displayName: 'Dataset', linkedMetadataBlocks: [], - availableLicenses: [] + availableLicenses: [], + description: + 'A study, experiment, set of observations, or publication. A dataset can comprise a single file or multiple files.' }, { id: 2, name: 'software', + displayName: 'Software', linkedMetadataBlocks: ['codeMeta20'], - availableLicenses: ['MIT', 'Apache-2.0'] + availableLicenses: ['MIT', 'Apache-2.0'], + description: 'Software data and metadata.' } ]