From 200d00cfb2e617c08d86874a81ccf5d4b93f1a80 Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Fri, 18 Apr 2025 15:14:36 -0400 Subject: [PATCH 1/2] feat: update deaccession reason to versionsSummary --- .../models/DatasetVersionSummaryInfo.ts | 13 +++++++-- .../datasets/DatasetsRepository.test.ts | 27 ++++++++++++++++--- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/datasets/domain/models/DatasetVersionSummaryInfo.ts b/src/datasets/domain/models/DatasetVersionSummaryInfo.ts index faee0e57..98412db6 100644 --- a/src/datasets/domain/models/DatasetVersionSummaryInfo.ts +++ b/src/datasets/domain/models/DatasetVersionSummaryInfo.ts @@ -7,7 +7,17 @@ export interface DatasetVersionSummaryInfo { } export type DatasetVersionSummary = { - [key: string]: SummaryUpdates | SummaryUpdatesWithFields | FilesSummaryUpdates | boolean + [key: string]: + | SummaryUpdates + | SummaryUpdatesWithFields + | FilesSummaryUpdates + | boolean + | Deaccessioned +} + +interface Deaccessioned { + reason: string + url: string } interface SummaryUpdates { @@ -31,6 +41,5 @@ interface FilesSummaryUpdates { export enum DatasetVersionSummaryStringValues { firstPublished = 'firstPublished', firstDraft = 'firstDraft', - versionDeaccessioned = 'versionDeaccessioned', previousVersionDeaccessioned = 'previousVersionDeaccessioned' } diff --git a/test/integration/datasets/DatasetsRepository.test.ts b/test/integration/datasets/DatasetsRepository.test.ts index d497c0a0..5225be7e 100644 --- a/test/integration/datasets/DatasetsRepository.test.ts +++ b/test/integration/datasets/DatasetsRepository.test.ts @@ -35,8 +35,7 @@ import { createCollectionViaApi, deleteCollectionViaApi, publishCollectionViaApi, - ROOT_COLLECTION_ALIAS, - setStorageDriverViaApi + ROOT_COLLECTION_ALIAS } from '../../testHelpers/collections/collectionHelper' import { calculateBlobChecksum, @@ -1122,7 +1121,6 @@ describe('DatasetsRepository', () => { beforeAll(async () => { await createCollectionViaApi(testDatasetVersionsCollectionAlias) await publishCollectionViaApi(testDatasetVersionsCollectionAlias) - await setStorageDriverViaApi(testDatasetVersionsCollectionAlias, 'LocalStack') }) afterAll(async () => { @@ -1162,6 +1160,29 @@ describe('DatasetsRepository', () => { await deletePublishedDatasetViaApi(testDatasetIds.persistentId) }) + test('should return dataset versions correctly after deaccessioned', async () => { + const testDatasetIds = await createDataset.execute( + TestConstants.TEST_NEW_DATASET_DTO, + testDatasetVersionsCollectionAlias + ) + await publishDataset.execute(testDatasetIds.numericId, VersionUpdateType.MAJOR) + + await waitForNoLocks(testDatasetIds.numericId, 10) + + const deaccessionReason = { + deaccessioned: { reason: 'Test reason.' } + } + await deaccessionDatasetViaApi(testDatasetIds.numericId, '1.0') + + const actual = await sut.getDatasetVersionsSummaries(testDatasetIds.numericId) + + expect(actual.length).toBeGreaterThan(0) + expect(actual[0].versionNumber).toBe('1.0') + expect(actual[0].summary).toStrictEqual(deaccessionReason) + + await deletePublishedDatasetViaApi(testDatasetIds.persistentId) + }) + test('should return dataset versions correctly after 1st publish and metadata fields update', async () => { const testDatasetIds = await createDataset.execute( TestConstants.TEST_NEW_DATASET_DTO, From f6c1b793a9475fbc7f3c156747eeccb25580b4eb Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Fri, 18 Apr 2025 15:33:38 -0400 Subject: [PATCH 2/2] fix: recover setStorageDriverViaApi --- test/integration/datasets/DatasetsRepository.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/datasets/DatasetsRepository.test.ts b/test/integration/datasets/DatasetsRepository.test.ts index 5225be7e..21ae392b 100644 --- a/test/integration/datasets/DatasetsRepository.test.ts +++ b/test/integration/datasets/DatasetsRepository.test.ts @@ -35,7 +35,8 @@ import { createCollectionViaApi, deleteCollectionViaApi, publishCollectionViaApi, - ROOT_COLLECTION_ALIAS + ROOT_COLLECTION_ALIAS, + setStorageDriverViaApi } from '../../testHelpers/collections/collectionHelper' import { calculateBlobChecksum, @@ -1121,6 +1122,7 @@ describe('DatasetsRepository', () => { beforeAll(async () => { await createCollectionViaApi(testDatasetVersionsCollectionAlias) await publishCollectionViaApi(testDatasetVersionsCollectionAlias) + await setStorageDriverViaApi(testDatasetVersionsCollectionAlias, 'LocalStack') }) afterAll(async () => {