@@ -24,6 +24,7 @@ import {
2424} from '../../testHelpers/datasets/datasetPreviewHelper'
2525import {
2626 createDatasetDTO ,
27+ createDatasetDeaccessionDTO ,
2728 createDatasetMetadataBlockModel ,
2829 createNewDatasetRequestPayload
2930} from '../../testHelpers/datasets/datasetHelper'
@@ -902,4 +903,57 @@ describe('DatasetsRepository', () => {
902903 expect ( error ) . toBeInstanceOf ( Error )
903904 } )
904905 } )
906+
907+ describe ( 'deaccsionDataset' , ( ) => {
908+ const version = '1.0'
909+ const expectedApiEndpoint = `${ TestConstants . TEST_API_URL } /datasets/${ testDatasetModel . id } /versions/${ version } /deaccession`
910+ const expectedApiKeyRequestConfig = {
911+ ...TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
912+ }
913+ const testDeaccessionDataset = createDatasetDeaccessionDTO ( )
914+ const testDeaccessionDatasetJSON = JSON . stringify ( testDeaccessionDataset )
915+ test ( 'should return nothing when providing id, version update type and response is successful' , async ( ) => {
916+ jest . spyOn ( axios , 'post' ) . mockResolvedValue ( undefined )
917+
918+ let actual = await sut . deaccessionDataset (
919+ testDatasetModel . id ,
920+ version ,
921+ testDeaccessionDataset
922+ )
923+
924+ expect ( axios . post ) . toHaveBeenCalledWith (
925+ expectedApiEndpoint ,
926+ testDeaccessionDatasetJSON ,
927+ expectedApiKeyRequestConfig
928+ )
929+ expect ( actual ) . toBeUndefined ( )
930+
931+ ApiConfig . init ( TestConstants . TEST_API_URL , DataverseApiAuthMechanism . SESSION_COOKIE )
932+
933+ actual = await sut . deaccessionDataset ( testDatasetModel . id , version , testDeaccessionDataset )
934+
935+ expect ( axios . post ) . toHaveBeenCalledWith (
936+ expectedApiEndpoint ,
937+ testDeaccessionDatasetJSON ,
938+ expectedApiKeyRequestConfig
939+ )
940+ expect ( actual ) . toBeUndefined ( )
941+ } )
942+
943+ test ( 'should return error result on error response' , async ( ) => {
944+ jest . spyOn ( axios , 'post' ) . mockRejectedValue ( TestConstants . TEST_ERROR_RESPONSE )
945+
946+ let error : WriteError | undefined = undefined
947+ await sut
948+ . deaccessionDataset ( testDatasetModel . id , version , testDeaccessionDataset )
949+ . catch ( ( e ) => ( error = e ) )
950+
951+ expect ( axios . post ) . toHaveBeenCalledWith (
952+ expectedApiEndpoint ,
953+ testDeaccessionDatasetJSON ,
954+ expectedApiKeyRequestConfig
955+ )
956+ expect ( error ) . toBeInstanceOf ( Error )
957+ } )
958+ } )
905959} )
0 commit comments