Skip to content

Commit 1098700

Browse files
committed
fix: minor change in use case
1 parent 49e7393 commit 1098700

File tree

3 files changed

+64
-3
lines changed

3 files changed

+64
-3
lines changed

test/functional/datasets/DeaccessionDataset.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ describe('execute', () => {
121121
)
122122
).rejects.toBeInstanceOf(WriteError)
123123

124-
await deletePublishedDatasetViaApi(createdDatasetIdentifiers.persistentId)
124+
await deleteUnpublishedDatasetViaApi(createdDatasetIdentifiers.numericId)
125125
})
126126

127127
test('should deaccession a dataset when it is deaccessioned once', async () => {
@@ -152,6 +152,6 @@ describe('execute', () => {
152152
deaccessionDataset.execute(createdDatasetIdentifiers.numericId, '1.0', testDeaccessionDataset)
153153
).rejects.toThrow(Error)
154154

155-
await deleteUnpublishedDatasetViaApi(createdDatasetIdentifiers.numericId)
155+
await deletePublishedDatasetViaApi(createdDatasetIdentifiers.persistentId)
156156
})
157157
})

test/testHelpers/datasets/datasetHelper.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import { DvObjectType } from '../../../src/core/domain/models/DvObjectOwnerNode'
1010
import TurndownService from 'turndown'
1111
import {
1212
DatasetDTO,
13-
DatasetMetadataFieldValueDTO
13+
DatasetMetadataFieldValueDTO,
14+
DatasetDeaccessionDTO
1415
} from '../../../src/datasets/domain/dtos/DatasetDTO'
1516
import { MetadataBlock, MetadataFieldType } from '../../../src'
1617
import {
@@ -788,3 +789,9 @@ export const createUpdateDatasetRequestPayload = (): UpdateDatasetRequestPayload
788789
]
789790
}
790791
}
792+
793+
export const createDatasetDeaccessionDTO = (): DatasetDeaccessionDTO => {
794+
return {
795+
deaccessionReason: 'Test reason.'
796+
}
797+
}

test/unit/datasets/DatasetsRepository.test.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
} from '../../testHelpers/datasets/datasetPreviewHelper'
2525
import {
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

Comments
 (0)