Skip to content

Commit 550b5fe

Browse files
committed
Added: UpdateDataset functional happy path test
1 parent 6bae75c commit 550b5fe

File tree

2 files changed

+87
-4
lines changed

2 files changed

+87
-4
lines changed

src/datasets/index.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { GetPrivateUrlDatasetCitation } from './domain/useCases/GetPrivateUrlDat
1414
import { SingleMetadataFieldValidator } from './domain/useCases/validators/SingleMetadataFieldValidator'
1515
import { MultipleMetadataFieldValidator } from './domain/useCases/validators/MultipleMetadataFieldValidator'
1616
import { PublishDataset } from './domain/useCases/PublishDataset'
17+
import { UpdateDataset } from './domain/useCases/UpdateDataset'
1718

1819
const datasetsRepository = new DatasetsRepository()
1920

@@ -30,12 +31,19 @@ const metadataFieldValidator = new MetadataFieldValidator(
3031
new SingleMetadataFieldValidator(),
3132
new MultipleMetadataFieldValidator(singleMetadataFieldValidator)
3233
)
34+
const publishDataset = new PublishDataset(datasetsRepository)
35+
const metadataBlocksRepository = new MetadataBlocksRepository()
36+
const datasetResourceValidator = new DatasetResourceValidator(metadataFieldValidator)
3337
const createDataset = new CreateDataset(
3438
datasetsRepository,
35-
new MetadataBlocksRepository(),
36-
new DatasetResourceValidator(metadataFieldValidator)
39+
metadataBlocksRepository,
40+
datasetResourceValidator
41+
)
42+
const updateDataset = new UpdateDataset(
43+
datasetsRepository,
44+
metadataBlocksRepository,
45+
datasetResourceValidator
3746
)
38-
const publishDataset = new PublishDataset(datasetsRepository)
3947

4048
export {
4149
getDataset,
@@ -46,8 +54,9 @@ export {
4654
getDatasetUserPermissions,
4755
getDatasetSummaryFieldNames,
4856
getPrivateUrlDatasetCitation,
57+
publishDataset,
4958
createDataset,
50-
publishDataset
59+
updateDataset
5160
}
5261
export { DatasetNotNumberedVersion } from './domain/models/DatasetNotNumberedVersion'
5362
export { DatasetUserPermissions } from './domain/models/DatasetUserPermissions'
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import {
2+
createDataset,
3+
CreatedDatasetIdentifiers,
4+
updateDataset,
5+
getDataset
6+
} from '../../../src/datasets'
7+
import { ApiConfig } from '../../../src'
8+
import { TestConstants } from '../../testHelpers/TestConstants'
9+
import { DataverseApiAuthMechanism } from '../../../src/core/infra/repositories/ApiConfig'
10+
import { DatasetDescription } from '../../../src/datasets/domain/models/Dataset'
11+
12+
describe('execute', () => {
13+
beforeEach(async () => {
14+
ApiConfig.init(
15+
TestConstants.TEST_API_URL,
16+
DataverseApiAuthMechanism.API_KEY,
17+
process.env.TEST_API_KEY
18+
)
19+
})
20+
21+
test('should update create a dataset when required fields are sent', async () => {
22+
const testDataset = {
23+
metadataBlockValues: [
24+
{
25+
name: 'citation',
26+
fields: {
27+
title: 'Dataset created using the createDataset use case',
28+
author: [
29+
{
30+
authorName: 'Admin, Dataverse',
31+
authorAffiliation: 'Dataverse.org'
32+
},
33+
{
34+
authorName: 'Owner, Dataverse',
35+
authorAffiliation: 'Dataversedemo.org'
36+
}
37+
],
38+
datasetContact: [
39+
{
40+
datasetContactEmail: '[email protected]',
41+
datasetContactName: 'Finch, Fiona'
42+
}
43+
],
44+
dsDescription: [
45+
{
46+
dsDescriptionValue: 'This is the description of the dataset.'
47+
}
48+
],
49+
subject: ['Medicine, Health and Life Sciences']
50+
}
51+
}
52+
]
53+
}
54+
55+
let createdDatasetIdentifiers: CreatedDatasetIdentifiers
56+
try {
57+
createdDatasetIdentifiers = await createDataset.execute(testDataset)
58+
} catch (error) {
59+
throw new Error('Dataset should be created')
60+
}
61+
62+
const datasetId = createdDatasetIdentifiers.numericId
63+
const updatedDsDescription = 'This is the updated description of the dataset.'
64+
testDataset.metadataBlockValues[0].fields.dsDescription[0].dsDescriptionValue =
65+
updatedDsDescription
66+
await updateDataset.execute(datasetId, testDataset)
67+
68+
const updatedDataset = await getDataset.execute(datasetId)
69+
expect(
70+
(updatedDataset.metadataBlocks[0].fields.dsDescription[0] as DatasetDescription)
71+
.dsDescriptionValue
72+
).toEqual(updatedDsDescription)
73+
})
74+
})

0 commit comments

Comments
 (0)