@@ -30,6 +30,7 @@ import {
3030} from '../../testHelpers/datasets/datasetHelper'
3131import { WriteError } from '../../../src'
3232import { VersionUpdateType } from '../../../src/datasets/domain/models/Dataset'
33+ import { createDatasetVersionSummaryModel } from '../../testHelpers/datasets/datasetVersionsSummariesHelper'
3334
3435describe ( 'DatasetsRepository' , ( ) => {
3536 const sut : DatasetsRepository = new DatasetsRepository ( )
@@ -962,7 +963,7 @@ describe('DatasetsRepository', () => {
962963 } )
963964 } )
964965
965- describe ( 'deaccsionDataset ' , ( ) => {
966+ describe ( 'deaccessionDataset ' , ( ) => {
966967 const version = '1.0'
967968 const expectedApiEndpoint = `${ TestConstants . TEST_API_URL } /datasets/${ testDatasetModel . id } /versions/${ version } /deaccession`
968969 const expectedApiKeyRequestConfig = {
@@ -1014,4 +1015,99 @@ describe('DatasetsRepository', () => {
10141015 expect ( error ) . toBeInstanceOf ( Error )
10151016 } )
10161017 } )
1018+
1019+ describe ( 'getDatasetVersionSummaries' , ( ) => {
1020+ const testDatasetVersionSummaries = createDatasetVersionSummaryModel ( )
1021+
1022+ const testDatasetVersionSummariesResponse = {
1023+ data : {
1024+ status : 'OK' ,
1025+ data : [ testDatasetVersionSummaries ]
1026+ }
1027+ }
1028+
1029+ describe ( 'by numeric id' , ( ) => {
1030+ const expectedApiEndpoint = `${ TestConstants . TEST_API_URL } /datasets/${ testDatasetModel . id } /versions/compareSummary`
1031+
1032+ test ( 'should return dataset version summaries when providing id and response is successful' , async ( ) => {
1033+ jest . spyOn ( axios , 'get' ) . mockResolvedValue ( testDatasetVersionSummariesResponse )
1034+
1035+ // API Key auth
1036+ let actual = await sut . getDatasetVersionsSummaries ( testDatasetModel . id )
1037+
1038+ expect ( axios . get ) . toHaveBeenCalledWith (
1039+ expectedApiEndpoint ,
1040+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
1041+ )
1042+ expect ( actual ) . toStrictEqual ( [ testDatasetVersionSummaries ] )
1043+
1044+ // Session cookie auth
1045+ ApiConfig . init ( TestConstants . TEST_API_URL , DataverseApiAuthMechanism . SESSION_COOKIE )
1046+
1047+ actual = await sut . getDatasetVersionsSummaries ( testDatasetModel . id )
1048+
1049+ expect ( axios . get ) . toHaveBeenCalledWith (
1050+ expectedApiEndpoint ,
1051+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_SESSION_COOKIE
1052+ )
1053+ expect ( actual ) . toStrictEqual ( [ testDatasetVersionSummaries ] )
1054+ } )
1055+
1056+ test ( 'should return error result on error response' , async ( ) => {
1057+ jest . spyOn ( axios , 'get' ) . mockRejectedValue ( TestConstants . TEST_ERROR_RESPONSE )
1058+
1059+ let error = undefined as unknown as ReadError
1060+ await sut . getDatasetVersionsSummaries ( testDatasetModel . id ) . catch ( ( e ) => ( error = e ) )
1061+
1062+ expect ( axios . get ) . toHaveBeenCalledWith (
1063+ expectedApiEndpoint ,
1064+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
1065+ )
1066+ expect ( error ) . toBeInstanceOf ( ReadError )
1067+ } )
1068+ } )
1069+
1070+ describe ( 'by persistent id' , ( ) => {
1071+ const expectedApiEndpoint = `${ TestConstants . TEST_API_URL } /datasets/:persistentId/versions/compareSummary?persistentId=${ TestConstants . TEST_DUMMY_PERSISTENT_ID } `
1072+
1073+ test ( 'should return dataset version summaries when providing persistent id and response is successful' , async ( ) => {
1074+ jest . spyOn ( axios , 'get' ) . mockResolvedValue ( testDatasetVersionSummariesResponse )
1075+
1076+ // API Key auth
1077+ let actual = await sut . getDatasetVersionsSummaries ( TestConstants . TEST_DUMMY_PERSISTENT_ID )
1078+
1079+ expect ( axios . get ) . toHaveBeenCalledWith (
1080+ expectedApiEndpoint ,
1081+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
1082+ )
1083+ expect ( actual ) . toStrictEqual ( [ testDatasetVersionSummaries ] )
1084+
1085+ // Session cookie auth
1086+ ApiConfig . init ( TestConstants . TEST_API_URL , DataverseApiAuthMechanism . SESSION_COOKIE )
1087+
1088+ actual = await sut . getDatasetVersionsSummaries ( TestConstants . TEST_DUMMY_PERSISTENT_ID )
1089+
1090+ expect ( axios . get ) . toHaveBeenCalledWith (
1091+ expectedApiEndpoint ,
1092+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_SESSION_COOKIE
1093+ )
1094+ expect ( actual ) . toStrictEqual ( [ testDatasetVersionSummaries ] )
1095+ } )
1096+
1097+ test ( 'should return error result on error response' , async ( ) => {
1098+ jest . spyOn ( axios , 'get' ) . mockRejectedValue ( TestConstants . TEST_ERROR_RESPONSE )
1099+
1100+ let error = undefined as unknown as ReadError
1101+ await sut
1102+ . getDatasetVersionsSummaries ( TestConstants . TEST_DUMMY_PERSISTENT_ID )
1103+ . catch ( ( e ) => ( error = e ) )
1104+
1105+ expect ( axios . get ) . toHaveBeenCalledWith (
1106+ expectedApiEndpoint ,
1107+ TestConstants . TEST_EXPECTED_AUTHENTICATED_REQUEST_CONFIG_API_KEY
1108+ )
1109+ expect ( error ) . toBeInstanceOf ( ReadError )
1110+ } )
1111+ } )
1112+ } )
10171113} )
0 commit comments