@@ -28,7 +28,7 @@ import {
2828} from '../../../src/datasets'
2929import { FileModel } from '../../../src/files/domain/models/FileModel'
3030import { FileCounts } from '../../../src/files/domain/models/FileCounts'
31- import { FileDownloadSizeMode } from '../../../src'
31+ import { FileDownloadSizeMode , WriteError } from '../../../src'
3232import {
3333 deaccessionDatasetViaApi ,
3434 publishDatasetViaApi ,
@@ -41,6 +41,7 @@ import {
4141 deleteCollectionViaApi ,
4242 setStorageDriverViaApi
4343} from '../../testHelpers/collections/collectionHelper'
44+ import { getFileMetadata } from '../../testHelpers/files/filesHelper'
4445
4546describe ( 'FilesRepository' , ( ) => {
4647 const sut : FilesRepository = new FilesRepository ( )
@@ -646,4 +647,47 @@ describe('FilesRepository', () => {
646647 ) . rejects . toThrow ( errorExpected )
647648 } )
648649 } )
650+
651+ describe ( 'updateFileMetadata' , ( ) => {
652+ 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 )
661+ const testFileMetadata = {
662+ description : 'My description bbb.' ,
663+ categories : [ 'Data' ] ,
664+ restrict : false
665+ }
666+
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+ } )
671+
672+ await new Promise ( ( resolve ) => setTimeout ( resolve , 1000 ) )
673+ 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 )
677+ } )
678+
679+ test ( 'should return error when file does not exist' , async ( ) => {
680+ const nonExistentFiledId = 4000
681+ const testFileMetadata = {
682+ description : 'My description bbb.' ,
683+ categories : [ 'Data' ] ,
684+ restrict : false
685+ }
686+ const errorExpected = new WriteError ( `[400] Error attempting get the requested data file.` )
687+
688+ await expect ( sut . updateFileMetadata ( nonExistentFiledId , testFileMetadata ) ) . rejects . toThrow (
689+ errorExpected
690+ )
691+ } )
692+ } )
649693} )
0 commit comments