From 918a74def5e35601d883908bf708e81afa230ea0 Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Mon, 28 Apr 2025 15:15:34 -0400 Subject: [PATCH 1/3] fix: don't show deaccession button if the version is deaccessioned or in draft ver. --- .../DeaccessionDatasetButton.tsx | 11 +++++---- .../DeaccessionDatasetButton.spec.tsx | 24 ++++++++++++++++++- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx index 686b7ffaa..d75c4581f 100644 --- a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx +++ b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx @@ -1,8 +1,9 @@ import { useState } from 'react' import { toast } from 'react-toastify' import { useContext } from 'react' +import { useForm, SubmitHandler } from 'react-hook-form' import { DatasetContext } from '@/sections/dataset/DatasetContext' -import { Dataset } from '../../../../dataset/domain/models/Dataset' +import { Dataset, DatasetPublishingStatus } from '../../../../dataset/domain/models/Dataset' import { DropdownButtonItem, DropdownSeparator } from '@iqss/dataverse-design-system' import { useTranslation } from 'react-i18next' import { DeaccessionDatasetModal } from '@/sections/dataset/deaccession-dataset/DeaccessionDatasetModal' @@ -10,7 +11,6 @@ import { DatasetRepository } from '@/dataset/domain/repositories/DatasetReposito import { DeaccessionFormData } from '@/sections/dataset/deaccession-dataset/DeaccessionFormData' import { useDeaccessionDataset } from '@/sections/dataset/deaccession-dataset/useDeaccessionDataset' import { ConfirmationModal } from '@/sections/dataset/deaccession-dataset/ConfirmationModal' -import { useForm, SubmitHandler } from 'react-hook-form' interface DeaccessionDatasetButtonProps { dataset: Dataset @@ -48,13 +48,16 @@ export function DeaccessionDatasetButton({ } = useForm({ defaultValues: { versions: defaultVersions, deaccessionForwardUrl: '' } }) + if ( + dataset.version.publishingStatus === DatasetPublishingStatus.DEACCESSIONED || + dataset.version.publishingStatus === DatasetPublishingStatus.DRAFT || !dataset.version.someDatasetVersionHasBeenReleased || - !dataset.permissions.canPublishDataset || - publishedVersions.length === 0 + !dataset.permissions.canPublishDataset ) { return <> } + const handleOpen = (e: React.MouseEvent) => { e.stopPropagation() setShowDeaccessionModal(true) diff --git a/tests/component/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.spec.tsx b/tests/component/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.spec.tsx index e5539b8eb..5248834e1 100644 --- a/tests/component/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.spec.tsx +++ b/tests/component/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.spec.tsx @@ -232,7 +232,29 @@ describe('DeaccessionDatasetButton', () => { cy.findByTestId('deaccession-forward-url').type('https://example.com') cy.get('button[type="submit"]').click() cy.get('button').contains('Yes').should('exist').click() - cy.wrap(repository.deaccession).should('be.calledTwice') + cy.wrap(repository.deaccession).should('have.been.called') }) }) + + it('does not render the DeaccessionDatasetButton if the dataset is deaccessioned', () => { + const dataset = DatasetMother.create({ + permissions: DatasetPermissionsMother.createWithPublishingDatasetAllowed(), + version: DatasetVersionMother.createDeaccessioned() + }) + + cy.customMount() + + cy.findByRole('button', { name: 'Deaccession Dataset' }).should('not.exist') + }) + + it('does not render the DeaccessionDatasetButton if the dataset is draft', () => { + const dataset = DatasetMother.create({ + permissions: DatasetPermissionsMother.createWithPublishingDatasetAllowed(), + version: DatasetVersionMother.createDraft() + }) + + cy.customMount() + + cy.findByRole('button', { name: 'Deaccession Dataset' }).should('not.exist') + }) }) From 9cdc62ef6140fc0ee52f738321eea85223e6e06a Mon Sep 17 00:00:00 2001 From: Cheng Shi <91049239+ChengShi-1@users.noreply.github.com> Date: Tue, 29 Apr 2025 10:44:56 -0400 Subject: [PATCH 2/3] Update src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx Co-authored-by: Ellen Kraffmiller --- .../edit-dataset-menu/DeaccessionDatasetButton.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx index d75c4581f..6b73f0c11 100644 --- a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx +++ b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx @@ -50,9 +50,7 @@ export function DeaccessionDatasetButton({ }) if ( - dataset.version.publishingStatus === DatasetPublishingStatus.DEACCESSIONED || - dataset.version.publishingStatus === DatasetPublishingStatus.DRAFT || - !dataset.version.someDatasetVersionHasBeenReleased || + dataset.version.publishingStatus !== DatasetPublishingStatus.RELEASED || !dataset.permissions.canPublishDataset ) { return <> From c1e7293b4e6b7449c3135fec5c40e5a3ab41b81c Mon Sep 17 00:00:00 2001 From: Cheng Shi Date: Tue, 29 Apr 2025 10:47:35 -0400 Subject: [PATCH 3/3] chore: fix the format --- .../edit-dataset-menu/DeaccessionDatasetButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx index 6b73f0c11..b343afc94 100644 --- a/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx +++ b/src/sections/dataset/dataset-action-buttons/edit-dataset-menu/DeaccessionDatasetButton.tsx @@ -50,7 +50,7 @@ export function DeaccessionDatasetButton({ }) if ( - dataset.version.publishingStatus !== DatasetPublishingStatus.RELEASED || + dataset.version.publishingStatus !== DatasetPublishingStatus.RELEASED || !dataset.permissions.canPublishDataset ) { return <>