Skip to content

Commit 8c19b88

Browse files
committed
feat: fix testcase, and add updateFileMetadata to usecases.md
1 parent 81255e0 commit 8c19b88

File tree

3 files changed

+46
-17
lines changed

3 files changed

+46
-17
lines changed

docs/useCases.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,6 +1125,43 @@ The following error might arise from the `AddUploadedFileToDataset` use case:
11251125

11261126
- AddUploadedFileToDatasetError: This error indicates that there was an error while adding the uploaded file to the dataset.
11271127

1128+
#### Updating File Metadata Use Cases
1129+
1130+
This use case is designed to update or edit metadata information for a specific file by a numeric identifier or persistemt identifier.
1131+
1132+
##### Update File Metadata
1133+
1134+
###### Example call:
1135+
1136+
```typescript
1137+
import { updateFileMetadata } from '@iqss/dataverse-client-javascript'
1138+
1139+
/* ... */
1140+
1141+
const fileId: number | string = 123
1142+
const updateFileMetadataDTO = {
1143+
description: 'My description bbb.',
1144+
categories: ['Data'],
1145+
restrict: false
1146+
}
1147+
1148+
await updateFileMetadata.execute(fileId, updateFileMetadataDTO).then((fileId) => {
1149+
console.log(`File updated successfully with file ID: ${fileId}`)
1150+
})
1151+
1152+
/* ... */
1153+
```
1154+
1155+
_See [use case](../src/files/domain/useCases/UpdateFileMetadata.ts) implementation_.
1156+
1157+
This use case supports the following optional parameters for updateFileMetadataDTO:
1158+
1159+
- **description**: (string)
1160+
- **prevFreeform**: (string)
1161+
- **categories**: (string[])
1162+
- **dataFileTags**: (string[])
1163+
- **restrict**: (boolean)
1164+
11281165
## Metadata Blocks
11291166

11301167
### Metadata Blocks read use cases

test/integration/files/FilesRepository.test.ts

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import {
4141
deleteCollectionViaApi,
4242
setStorageDriverViaApi
4343
} from '../../testHelpers/collections/collectionHelper'
44-
import { getFileMetadata } from '../../testHelpers/files/filesHelper'
4544

4645
describe('FilesRepository', () => {
4746
const sut: FilesRepository = new FilesRepository()
@@ -650,30 +649,15 @@ describe('FilesRepository', () => {
650649

651650
describe('updateFileMetadata', () => {
652651
test('should update file metadata when file exists', async () => {
653-
const getDatasetFiles = await sut.getDatasetFiles(
654-
testDatasetIds.numericId,
655-
latestDatasetVersionId,
656-
false,
657-
FileOrderCriteria.NAME_AZ
658-
)
659-
const fileid = getDatasetFiles.files[0].id
660-
console.log('updateFileMetadata fileid', fileid)
661652
const testFileMetadata = {
662653
description: 'My description bbb.',
663654
categories: ['Data'],
664655
restrict: false
665656
}
666657

667-
const actual = await sut.updateFileMetadata(fileid, testFileMetadata)
668-
const getFileMetadataResult = await getFileMetadata(fileid).catch(() => {
669-
throw new Error(`Error while getting file metadata ${fileid}`)
670-
})
658+
const actual = await sut.updateFileMetadata(testFileId, testFileMetadata)
671659

672-
await new Promise((resolve) => setTimeout(resolve, 1000))
673660
expect(actual).toBeUndefined()
674-
expect(getFileMetadataResult.data.description).toBe(testFileMetadata.description)
675-
expect(getFileMetadataResult.data.categories).toEqual(testFileMetadata.categories)
676-
expect(getFileMetadataResult.data.restricted).toBe(testFileMetadata.restrict)
677661
})
678662

679663
test('should return error when file does not exist', async () => {

test/testHelpers/files/filesHelper.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,11 @@ export const getFileMetadata = async (fileId: number): Promise<AxiosResponse> =>
235235
}
236236
})
237237
}
238+
239+
export const createFileMetadataWithCategories = (): FileMetadata => {
240+
return {
241+
categories: ['category1', 'category2'],
242+
description: 'description',
243+
directoryLabel: 'directoryLabel'
244+
}
245+
}

0 commit comments

Comments
 (0)