@@ -831,4 +831,54 @@ describe('DatasetsRepository', () => {
831831 expect ( error ) . toBeInstanceOf ( Error )
832832 } )
833833 } )
834+
835+ describe ( 'updateDataset' , ( ) => {
836+ const testNewDataset = createDatasetDTO ( )
837+ const testMetadataBlocks = [ createDatasetMetadataBlockModel ( ) ]
838+ const expectedNewDatasetRequestPayloadJson = JSON . stringify ( createDatasetRequestPayload ( ) )
839+
840+ const expectedApiEndpoint = `${ TestConstants . TEST_API_URL } /datasets/${ testDatasetModel . id } /editMetadata`
841+
842+ test ( 'should call the API with a correct request payload' , async ( ) => {
843+ jest . spyOn ( axios , 'put' ) . mockResolvedValue ( undefined )
844+
845+ // API Key auth
846+ let actual = await sut . updateDataset ( testDatasetModel . id , testNewDataset , testMetadataBlocks )
847+
848+ expect ( axios . put ) . toHaveBeenCalledWith (
849+ expectedApiEndpoint ,
850+ expectedNewDatasetRequestPayloadJson ,
851+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
852+ )
853+ expect ( actual ) . toBeUndefined ( )
854+
855+ // Session cookie auth
856+ ApiConfig . init ( TestConstants . TEST_API_URL , DataverseApiAuthMechanism . SESSION_COOKIE )
857+
858+ actual = await sut . updateDataset ( testDatasetModel . id , testNewDataset , testMetadataBlocks )
859+
860+ expect ( axios . put ) . toHaveBeenCalledWith (
861+ expectedApiEndpoint ,
862+ expectedNewDatasetRequestPayloadJson ,
863+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_SESSION_COOKIE
864+ )
865+ expect ( actual ) . toBeUndefined ( )
866+ } )
867+
868+ test ( 'should return error result on error response' , async ( ) => {
869+ jest . spyOn ( axios , 'put' ) . mockRejectedValue ( TestConstants . TEST_ERROR_RESPONSE )
870+
871+ let error : WriteError = undefined
872+ await sut
873+ . updateDataset ( testDatasetModel . id , testNewDataset , testMetadataBlocks )
874+ . catch ( ( e ) => ( error = e ) )
875+
876+ expect ( axios . put ) . toHaveBeenCalledWith (
877+ expectedApiEndpoint ,
878+ expectedNewDatasetRequestPayloadJson ,
879+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
880+ )
881+ expect ( error ) . toBeInstanceOf ( Error )
882+ } )
883+ } )
834884} )
0 commit comments