Skip to content

Commit f22051b

Browse files
committed
Added: DatasetsRepository.updateDataset IT
1 parent 60ce44e commit f22051b

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

test/unit/datasets/DatasetsRepository.test.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)