From 820fb2c78b90fc0874e29182f9c9bc000347e0c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Feb 2025 12:23:59 -0300 Subject: [PATCH 01/11] fix: testing changes --- .../MetadataFieldsHelper.ts | 90 ++++++++++++++++++- .../DatasetMetadataForm/useSubmitDataset.ts | 17 ++-- 2 files changed, 100 insertions(+), 7 deletions(-) diff --git a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts index 0d0f23ef7..9bd227ff1 100644 --- a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts +++ b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts @@ -298,7 +298,9 @@ export class MetadataFieldsHelper { return formattedNewObject } - public static formatFormValuesToDatasetDTO(formValues: DatasetMetadataFormValues): DatasetDTO { + public static formatFormValuesToDatasetDTOForCreation( + formValues: DatasetMetadataFormValues + ): DatasetDTO { const metadataBlocks: DatasetDTO['metadataBlocks'] = [] for (const metadataBlockName in formValues) { @@ -378,6 +380,92 @@ export class MetadataFieldsHelper { return { licence: defaultLicense, metadataBlocks } } + public static formatFormValuesToDatasetDTOForEdition( + formValues: DatasetMetadataFormValues + ): DatasetDTO { + const metadataBlocks: DatasetDTO['metadataBlocks'] = [] + + for (const metadataBlockName in formValues) { + const formattedMetadataBlock: DatasetMetadataBlockValuesDTO = { + name: metadataBlockName, + fields: {} + } + const metadataBlockFormValues = formValues[metadataBlockName] + + Object.entries(metadataBlockFormValues).forEach(([fieldName, fieldValue]) => { + if (this.isPrimitiveFieldValue(fieldValue)) { + // if (fieldValue !== '') { + formattedMetadataBlock.fields[fieldName] = fieldValue + return + // } + // return + } + if (this.isVocabularyMultipleFieldValue(fieldValue)) { + // if (fieldValue.length > 0) { + formattedMetadataBlock.fields[fieldName] = fieldValue + return + // } + // return + } + + if (this.isPrimitiveMultipleFieldValue(fieldValue)) { + const primitiveMultipleFieldValues = fieldValue + .map((primitiveField) => primitiveField.value) + .filter((v) => v !== '') + + // if (primitiveMultipleFieldValues.length > 0) { + formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues + return + // } + // return + } + + if (this.isComposedSingleFieldValue(fieldValue)) { + const formattedMetadataChildFieldValue: DatasetMetadataChildFieldValueDTO = {} + + Object.entries(fieldValue).forEach(([nestedFieldName, nestedFieldValue]) => { + // if (nestedFieldValue !== '') { + formattedMetadataChildFieldValue[nestedFieldName] = nestedFieldValue + // } + }) + + // TODO:ME - Review this one in deep + if (Object.keys(formattedMetadataChildFieldValue).length > 0) { + formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValue + return + } + return + } + + if (this.isComposedMultipleFieldValue(fieldValue)) { + const formattedMetadataChildFieldValues: DatasetMetadataChildFieldValueDTO[] = [] + + fieldValue.forEach((composedFieldValues) => { + const composedField: DatasetMetadataChildFieldValueDTO = {} + Object.entries(composedFieldValues).forEach(([nestedFieldName, nestedFieldValue]) => { + // if (nestedFieldValue !== '') { + composedField[nestedFieldName] = nestedFieldValue + // } + }) + // TODO:ME - Review this one in deep + // if (Object.keys(composedField).length > 0) { + formattedMetadataChildFieldValues.push(composedField) + // } + }) + // TODO:ME - Review this one in deep + // if (formattedMetadataChildFieldValues.length > 0) { + formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValues + // } + + return + } + }) + + metadataBlocks.push(formattedMetadataBlock) + } + return { licence: defaultLicense, metadataBlocks } + } + public static addFieldValuesToMetadataBlocksInfo( normalizedMetadataBlocksInfo: MetadataBlockInfo[], normalizedDatasetMetadaBlocksCurrentValues: DatasetMetadataBlocks diff --git a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts index ae27e0d2d..341a7a001 100644 --- a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts +++ b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts @@ -48,16 +48,21 @@ export function useSubmitDataset( const [submitError, setSubmitError] = useState(null) const submitForm = (formData: DatasetMetadataFormValues): void => { - setSubmissionStatus(SubmissionStatus.IsSubmitting) + // setSubmissionStatus(SubmissionStatus.IsSubmitting) const formDataBackToOriginalKeys = MetadataFieldsHelper.replaceSlashKeysWithDot(formData) - const formattedFormValues = MetadataFieldsHelper.formatFormValuesToDatasetDTO( - formDataBackToOriginalKeys - ) + const formattedFormValuesForCreation = + MetadataFieldsHelper.formatFormValuesToDatasetDTOForCreation(formDataBackToOriginalKeys) + + const formattedFormValuesForEdition = + MetadataFieldsHelper.formatFormValuesToDatasetDTOForEdition(formDataBackToOriginalKeys) + + console.log({ formattedFormValuesForEdition }) + // return if (mode === 'create') { - createDataset(datasetRepository, formattedFormValues, collectionId) + createDataset(datasetRepository, formattedFormValuesForCreation, collectionId) .then(({ persistentId }) => { setSubmitError(null) setSubmissionStatus(SubmissionStatus.SubmitComplete) @@ -86,7 +91,7 @@ export function useSubmitDataset( updateDatasetMetadata( datasetRepository, currentEditedDatasetPersistentID, - formattedFormValues + formattedFormValuesForEdition ) .then(() => { setSubmitError(null) From ed7884bea41f3b8f113570622009ba7b343586dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Wed, 5 Mar 2025 23:40:47 -0300 Subject: [PATCH 02/11] finish testing endpoint --- package-lock.json | 9 +++---- package.json | 2 +- .../MetadataFieldsHelper.ts | 24 ++++--------------- .../DatasetMetadataForm/useSubmitDataset.ts | 17 ++++++------- 4 files changed, 17 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2bc24fc7e..178edfe4d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-alpha.20", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.dd730f8", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3680,9 +3680,10 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-alpha.20", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-alpha.20/8f9ae425098db416e5c6344ac6f8ce9c7db4fe05", - "integrity": "sha512-qIKJYbWa2aTLh7Yfr3TmHA+Pfyv234PNJU9Lu972LAs5XVCrVdPAe8vet5xS1z51Oc+W8CirMLrMtKhPisTiGA==", + "version": "2.0.0-pr273.dd730f8", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.dd730f8/8f5f438af57be23a6af5a2bb121e65ed9cfe5739", + "integrity": "sha512-U/ZVyN7UDTVcwvdIPtx+KqdH6hUYgRmvmCV+04je4yAZtFIa4lSV+ZNi6iS0BT5OiEghnENCaLVygGSXgIot4g==", + "license": "MIT", "dependencies": { "@types/node": "^18.15.11", "@types/turndown": "^5.0.1", diff --git a/package.json b/package.json index 1e5ed0b88..2f37ec35a 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-alpha.20", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.dd730f8", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", diff --git a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts index 9bd227ff1..df0157416 100644 --- a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts +++ b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts @@ -298,6 +298,8 @@ export class MetadataFieldsHelper { return formattedNewObject } + // TODO:ME - Refactor these two functions into one + public static formatFormValuesToDatasetDTOForCreation( formValues: DatasetMetadataFormValues ): DatasetDTO { @@ -394,18 +396,12 @@ export class MetadataFieldsHelper { Object.entries(metadataBlockFormValues).forEach(([fieldName, fieldValue]) => { if (this.isPrimitiveFieldValue(fieldValue)) { - // if (fieldValue !== '') { formattedMetadataBlock.fields[fieldName] = fieldValue return - // } - // return } if (this.isVocabularyMultipleFieldValue(fieldValue)) { - // if (fieldValue.length > 0) { formattedMetadataBlock.fields[fieldName] = fieldValue return - // } - // return } if (this.isPrimitiveMultipleFieldValue(fieldValue)) { @@ -413,23 +409,17 @@ export class MetadataFieldsHelper { .map((primitiveField) => primitiveField.value) .filter((v) => v !== '') - // if (primitiveMultipleFieldValues.length > 0) { formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues return - // } - // return } if (this.isComposedSingleFieldValue(fieldValue)) { const formattedMetadataChildFieldValue: DatasetMetadataChildFieldValueDTO = {} Object.entries(fieldValue).forEach(([nestedFieldName, nestedFieldValue]) => { - // if (nestedFieldValue !== '') { formattedMetadataChildFieldValue[nestedFieldName] = nestedFieldValue - // } }) - // TODO:ME - Review this one in deep if (Object.keys(formattedMetadataChildFieldValue).length > 0) { formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValue return @@ -443,19 +433,13 @@ export class MetadataFieldsHelper { fieldValue.forEach((composedFieldValues) => { const composedField: DatasetMetadataChildFieldValueDTO = {} Object.entries(composedFieldValues).forEach(([nestedFieldName, nestedFieldValue]) => { - // if (nestedFieldValue !== '') { composedField[nestedFieldName] = nestedFieldValue - // } }) - // TODO:ME - Review this one in deep - // if (Object.keys(composedField).length > 0) { + formattedMetadataChildFieldValues.push(composedField) - // } }) - // TODO:ME - Review this one in deep - // if (formattedMetadataChildFieldValues.length > 0) { + formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValues - // } return } diff --git a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts index 341a7a001..6b862d548 100644 --- a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts +++ b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts @@ -48,20 +48,14 @@ export function useSubmitDataset( const [submitError, setSubmitError] = useState(null) const submitForm = (formData: DatasetMetadataFormValues): void => { - // setSubmissionStatus(SubmissionStatus.IsSubmitting) + setSubmissionStatus(SubmissionStatus.IsSubmitting) const formDataBackToOriginalKeys = MetadataFieldsHelper.replaceSlashKeysWithDot(formData) - const formattedFormValuesForCreation = - MetadataFieldsHelper.formatFormValuesToDatasetDTOForCreation(formDataBackToOriginalKeys) - - const formattedFormValuesForEdition = - MetadataFieldsHelper.formatFormValuesToDatasetDTOForEdition(formDataBackToOriginalKeys) - - console.log({ formattedFormValuesForEdition }) - // return - if (mode === 'create') { + const formattedFormValuesForCreation = + MetadataFieldsHelper.formatFormValuesToDatasetDTOForCreation(formDataBackToOriginalKeys) + createDataset(datasetRepository, formattedFormValuesForCreation, collectionId) .then(({ persistentId }) => { setSubmitError(null) @@ -88,6 +82,9 @@ export function useSubmitDataset( } else { const currentEditedDatasetPersistentID = datasetPersistentID as string + const formattedFormValuesForEdition = + MetadataFieldsHelper.formatFormValuesToDatasetDTOForEdition(formDataBackToOriginalKeys) + updateDatasetMetadata( datasetRepository, currentEditedDatasetPersistentID, From e54aa78de348a86587b679d90fff065aae41dd8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Fri, 21 Mar 2025 14:34:54 -0300 Subject: [PATCH 03/11] chore: js-dv package --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 178edfe4d..522b6ebd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.dd730f8", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.62d093a", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3680,9 +3680,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr273.dd730f8", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.dd730f8/8f5f438af57be23a6af5a2bb121e65ed9cfe5739", - "integrity": "sha512-U/ZVyN7UDTVcwvdIPtx+KqdH6hUYgRmvmCV+04je4yAZtFIa4lSV+ZNi6iS0BT5OiEghnENCaLVygGSXgIot4g==", + "version": "2.0.0-pr273.62d093a", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.62d093a/9e3ca4b1c4b25b47eb2e1dd2bc9776a1406f6dee", + "integrity": "sha512-BNO7/cBqATl8A0p0oVZw+2XaKVlye8Zp7axi4wDZtPZx8PbsaFMXJ99fVFg8Qcsea9VrmNcBrmXacVm4MvybSg==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index 2f37ec35a..28fc37c94 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.dd730f8", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.62d093a", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", From 0fd3ef2ec4c174f93737e3c977e4e4064304cf49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 09:14:30 -0300 Subject: [PATCH 04/11] chore: update js-dv --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 522b6ebd0..cfff4bc64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.62d093a", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.79e2be1", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3680,9 +3680,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr273.62d093a", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.62d093a/9e3ca4b1c4b25b47eb2e1dd2bc9776a1406f6dee", - "integrity": "sha512-BNO7/cBqATl8A0p0oVZw+2XaKVlye8Zp7axi4wDZtPZx8PbsaFMXJ99fVFg8Qcsea9VrmNcBrmXacVm4MvybSg==", + "version": "2.0.0-pr273.79e2be1", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.79e2be1/ab5473055a3e5cdf3ec1388adea5b20dcf012341", + "integrity": "sha512-r+dsoJZkmVrgdFIX9fQeSak1384sJPxZv+gsp9ON22Mnukj7ihBn9yeE1B+SlNEAeJ/QYj89K5R5c/O2SJd5SQ==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index 28fc37c94..859adc3f1 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.62d093a", + "@iqss/dataverse-client-javascript": "2.0.0-pr273.79e2be1", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", From 0cc69f69ea017fc744af25b4950f15efa3cacc15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 09:44:40 -0300 Subject: [PATCH 05/11] feat: add interalVersionNumber to repos --- src/dataset/domain/repositories/DatasetRepository.ts | 6 +++++- src/dataset/domain/useCases/updateDatasetMetadata.ts | 11 +++++++---- .../repositories/DatasetJSDataverseRepository.ts | 8 ++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/dataset/domain/repositories/DatasetRepository.ts b/src/dataset/domain/repositories/DatasetRepository.ts index 7da556119..8fd1dd040 100644 --- a/src/dataset/domain/repositories/DatasetRepository.ts +++ b/src/dataset/domain/repositories/DatasetRepository.ts @@ -16,7 +16,11 @@ export interface DatasetRepository { ) => Promise create: (dataset: DatasetDTO, collectionId: string) => Promise<{ persistentId: string }> - updateMetadata: (datasetId: string | number, datasetDTO: DatasetDTO) => Promise + updateMetadata: ( + datasetId: string | number, + datasetDTO: DatasetDTO, + internalVersionNumber: number + ) => Promise getAllWithCount: ( collectionId: string, paginationInfo: DatasetPaginationInfo diff --git a/src/dataset/domain/useCases/updateDatasetMetadata.ts b/src/dataset/domain/useCases/updateDatasetMetadata.ts index 2f661c31f..d3a6c43c2 100644 --- a/src/dataset/domain/useCases/updateDatasetMetadata.ts +++ b/src/dataset/domain/useCases/updateDatasetMetadata.ts @@ -4,9 +4,12 @@ import { DatasetDTO } from './DTOs/DatasetDTO' export function updateDatasetMetadata( datasetRepository: DatasetRepository, datasetId: string | number, - updatedDataset: DatasetDTO + updatedDataset: DatasetDTO, + internalVersionNumber: number ): Promise { - return datasetRepository.updateMetadata(datasetId, updatedDataset).catch((error: Error) => { - throw new Error(error.message) - }) + return datasetRepository + .updateMetadata(datasetId, updatedDataset, internalVersionNumber) + .catch((error: Error) => { + throw new Error(error.message) + }) } diff --git a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts index 91c1d5232..318e51979 100644 --- a/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts +++ b/src/dataset/infrastructure/repositories/DatasetJSDataverseRepository.ts @@ -306,9 +306,13 @@ export class DatasetJSDataverseRepository implements DatasetRepository { }) } - updateMetadata(datasetId: string | number, updatedDataset: DatasetDTO): Promise { + updateMetadata( + datasetId: string | number, + updatedDataset: DatasetDTO, + internalVersionNumber: number + ): Promise { return updateDataset - .execute(datasetId, DatasetDTOMapper.toJSDatasetDTO(updatedDataset)) + .execute(datasetId, DatasetDTOMapper.toJSDatasetDTO(updatedDataset), internalVersionNumber) .catch((error: WriteError) => { throw new Error(error.message) }) From 32f6142f6b1440b21212a1ad8725254f4cecb54d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 09:45:05 -0300 Subject: [PATCH 06/11] feat: update mappers and mothers to receive internal version number --- src/dataset/domain/models/Dataset.ts | 3 +++ src/dataset/infrastructure/mappers/JSDatasetMapper.ts | 1 + tests/component/dataset/domain/models/DatasetMother.ts | 2 ++ .../dataset/infrastructure/mappers/JSDatasetMapper.spec.ts | 5 +++++ 4 files changed, 11 insertions(+) diff --git a/src/dataset/domain/models/Dataset.ts b/src/dataset/domain/models/Dataset.ts index 9afc3c4fa..91b930b82 100644 --- a/src/dataset/domain/models/Dataset.ts +++ b/src/dataset/domain/models/Dataset.ts @@ -398,6 +398,7 @@ export class Dataset { constructor( public readonly persistentId: string, public readonly version: DatasetVersion, + public readonly internalVersionNumber: number, public readonly alerts: Alert[], public readonly summaryFields: DatasetMetadataBlock[], public readonly termsOfUse: DatasetTermsOfUse, @@ -492,6 +493,7 @@ export class Dataset { constructor( public readonly persistentId: string, public readonly version: DatasetVersion, + public readonly internalVersionNumber: number, public readonly summaryFields: DatasetMetadataBlock[], public readonly termsOfUse: DatasetTermsOfUse, public readonly metadataBlocks: DatasetMetadataBlocks, @@ -560,6 +562,7 @@ export class Dataset { return new Dataset( this.persistentId, this.version, + this.internalVersionNumber, this.alerts, this.summaryFields, this.termsOfUse, diff --git a/src/dataset/infrastructure/mappers/JSDatasetMapper.ts b/src/dataset/infrastructure/mappers/JSDatasetMapper.ts index 6ff8a979c..67a57efa1 100644 --- a/src/dataset/infrastructure/mappers/JSDatasetMapper.ts +++ b/src/dataset/infrastructure/mappers/JSDatasetMapper.ts @@ -59,6 +59,7 @@ export class JSDatasetMapper { return new Dataset.Builder( jsDataset.persistentId, version, + jsDataset.internalVersionNumber, JSDatasetMapper.toSummaryFields(jsDataset.metadataBlocks, jsDatasetSummaryFieldsNames), jsDataset.termsOfUse, JSDatasetMapper.toMetadataBlocks( diff --git a/tests/component/dataset/domain/models/DatasetMother.ts b/tests/component/dataset/domain/models/DatasetMother.ts index cd3834f9d..a6797986f 100644 --- a/tests/component/dataset/domain/models/DatasetMother.ts +++ b/tests/component/dataset/domain/models/DatasetMother.ts @@ -338,6 +338,7 @@ export class DatasetMother { const dataset = { persistentId: faker.datatype.uuid(), version: DatasetVersionMother.create(), + internalVersionNumber: faker.datatype.number(), license: { name: 'CC0 1.0', uri: 'https://creativecommons.org/publicdomain/zero/1.0/', @@ -423,6 +424,7 @@ export class DatasetMother { return new Dataset.Builder( dataset.persistentId, dataset.version, + dataset.internalVersionNumber, dataset.summaryFields, dataset.termsOfUse, dataset.metadataBlocks, diff --git a/tests/component/dataset/infrastructure/mappers/JSDatasetMapper.spec.ts b/tests/component/dataset/infrastructure/mappers/JSDatasetMapper.spec.ts index 44608e682..b5c29cf60 100644 --- a/tests/component/dataset/infrastructure/mappers/JSDatasetMapper.spec.ts +++ b/tests/component/dataset/infrastructure/mappers/JSDatasetMapper.spec.ts @@ -37,6 +37,7 @@ const jsDataset = { lastUpdateTime: new Date('2023-09-07T13:40:04.000Z'), releaseTime: undefined }, + internalVersionNumber: 1, termsOfUse: { fileAccessRequest: true, termsOfAccess: 'New terms', @@ -214,6 +215,7 @@ const expectedDataset = { citation: 'Finch, Fiona, 2023, "Darwin\'s Finches", https://doi.org/10.5072/FK2/B4B2MJ, Root, DRAFT VERSION' }, + internalVersionNumber: 1, requestedVersion: undefined, publicationDate: undefined, alerts: [{ variant: 'warning', messageKey: 'draftVersion', dynamicFields: undefined }], @@ -323,6 +325,7 @@ const expectedDatasetWithPublicationDate = { citation: 'Finch, Fiona, 2023, "Darwin\'s Finches", https://doi.org/10.5072/FK2/B4B2MJ, Root, DRAFT VERSION' }, + internalVersionNumber: 1, requestedVersion: undefined, publicationDate: undefined, alerts: [{ variant: 'warning', messageKey: 'draftVersion', dynamicFields: undefined }], @@ -433,6 +436,7 @@ const expectedDatasetWithNextVersionNumbers = { citation: 'Finch, Fiona, 2023, "Darwin\'s Finches", https://doi.org/10.5072/FK2/B4B2MJ, Root, DRAFT VERSION' }, + internalVersionNumber: 1, requestedVersion: undefined, publicationDate: undefined, alerts: [{ variant: 'warning', messageKey: 'draftVersion', dynamicFields: undefined }], @@ -547,6 +551,7 @@ const expectedDatasetAlternateVersion = { citation: 'Finch, Fiona, 2023, "Darwin\'s Finches", https://doi.org/10.5072/FK2/B4B2MJ, Root, DRAFT VERSION' }, + internalVersionNumber: 1, requestedVersion: '4.0', publicationDate: undefined, hasValidTermsOfAccess: true, From 0780eec7f41826d039bc22f74a34f91c3c44c607 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 12:21:28 -0300 Subject: [PATCH 07/11] fix: show empty values when editing --- .../EditDatasetMetadata.tsx | 1 + .../MetadataFieldsHelper.ts | 91 +++---------------- .../MetadataForm/index.tsx | 7 +- .../shared/form/DatasetMetadataForm/index.tsx | 6 +- .../DatasetMetadataForm/useSubmitDataset.ts | 21 +++-- 5 files changed, 35 insertions(+), 91 deletions(-) diff --git a/src/sections/edit-dataset-metadata/EditDatasetMetadata.tsx b/src/sections/edit-dataset-metadata/EditDatasetMetadata.tsx index 8dfc077e7..8242096c6 100644 --- a/src/sections/edit-dataset-metadata/EditDatasetMetadata.tsx +++ b/src/sections/edit-dataset-metadata/EditDatasetMetadata.tsx @@ -70,6 +70,7 @@ export const EditDatasetMetadata = ({ metadataBlockInfoRepository={metadataBlockInfoRepository} datasetPersistentID={dataset.persistentId} datasetMetadaBlocksCurrentValues={dataset.metadataBlocks} + datasetInternalVersionNumber={dataset.internalVersionNumber} /> diff --git a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts index df0157416..e1800f051 100644 --- a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts +++ b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts @@ -298,10 +298,9 @@ export class MetadataFieldsHelper { return formattedNewObject } - // TODO:ME - Refactor these two functions into one - - public static formatFormValuesToDatasetDTOForCreation( - formValues: DatasetMetadataFormValues + public static formatFormValuesToDatasetDTO( + formValues: DatasetMetadataFormValues, + mode: 'create' | 'edit' ): DatasetDTO { const metadataBlocks: DatasetDTO['metadataBlocks'] = [] @@ -314,14 +313,14 @@ export class MetadataFieldsHelper { Object.entries(metadataBlockFormValues).forEach(([fieldName, fieldValue]) => { if (this.isPrimitiveFieldValue(fieldValue)) { - if (fieldValue !== '') { + if (fieldValue !== '' || mode === 'edit') { formattedMetadataBlock.fields[fieldName] = fieldValue return } return } if (this.isVocabularyMultipleFieldValue(fieldValue)) { - if (fieldValue.length > 0) { + if (fieldValue.length > 0 || mode === 'edit') { formattedMetadataBlock.fields[fieldName] = fieldValue return } @@ -333,7 +332,9 @@ export class MetadataFieldsHelper { .map((primitiveField) => primitiveField.value) .filter((v) => v !== '') - if (primitiveMultipleFieldValues.length > 0) { + console.log({ primitiveMultipleFieldValues }) + + if (primitiveMultipleFieldValues.length > 0 || mode === 'edit') { formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues return } @@ -344,7 +345,7 @@ export class MetadataFieldsHelper { const formattedMetadataChildFieldValue: DatasetMetadataChildFieldValueDTO = {} Object.entries(fieldValue).forEach(([nestedFieldName, nestedFieldValue]) => { - if (nestedFieldValue !== '') { + if (nestedFieldValue !== '' || mode === 'edit') { formattedMetadataChildFieldValue[nestedFieldName] = nestedFieldValue } }) @@ -361,15 +362,15 @@ export class MetadataFieldsHelper { fieldValue.forEach((composedFieldValues) => { const composedField: DatasetMetadataChildFieldValueDTO = {} Object.entries(composedFieldValues).forEach(([nestedFieldName, nestedFieldValue]) => { - if (nestedFieldValue !== '') { + if (nestedFieldValue !== '' || mode === 'edit') { composedField[nestedFieldName] = nestedFieldValue } }) - if (Object.keys(composedField).length > 0) { + if (Object.keys(composedField).length > 0 || mode === 'edit') { formattedMetadataChildFieldValues.push(composedField) } }) - if (formattedMetadataChildFieldValues.length > 0) { + if (formattedMetadataChildFieldValues.length > 0 || mode === 'edit') { formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValues } @@ -382,74 +383,6 @@ export class MetadataFieldsHelper { return { licence: defaultLicense, metadataBlocks } } - public static formatFormValuesToDatasetDTOForEdition( - formValues: DatasetMetadataFormValues - ): DatasetDTO { - const metadataBlocks: DatasetDTO['metadataBlocks'] = [] - - for (const metadataBlockName in formValues) { - const formattedMetadataBlock: DatasetMetadataBlockValuesDTO = { - name: metadataBlockName, - fields: {} - } - const metadataBlockFormValues = formValues[metadataBlockName] - - Object.entries(metadataBlockFormValues).forEach(([fieldName, fieldValue]) => { - if (this.isPrimitiveFieldValue(fieldValue)) { - formattedMetadataBlock.fields[fieldName] = fieldValue - return - } - if (this.isVocabularyMultipleFieldValue(fieldValue)) { - formattedMetadataBlock.fields[fieldName] = fieldValue - return - } - - if (this.isPrimitiveMultipleFieldValue(fieldValue)) { - const primitiveMultipleFieldValues = fieldValue - .map((primitiveField) => primitiveField.value) - .filter((v) => v !== '') - - formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues - return - } - - if (this.isComposedSingleFieldValue(fieldValue)) { - const formattedMetadataChildFieldValue: DatasetMetadataChildFieldValueDTO = {} - - Object.entries(fieldValue).forEach(([nestedFieldName, nestedFieldValue]) => { - formattedMetadataChildFieldValue[nestedFieldName] = nestedFieldValue - }) - - if (Object.keys(formattedMetadataChildFieldValue).length > 0) { - formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValue - return - } - return - } - - if (this.isComposedMultipleFieldValue(fieldValue)) { - const formattedMetadataChildFieldValues: DatasetMetadataChildFieldValueDTO[] = [] - - fieldValue.forEach((composedFieldValues) => { - const composedField: DatasetMetadataChildFieldValueDTO = {} - Object.entries(composedFieldValues).forEach(([nestedFieldName, nestedFieldValue]) => { - composedField[nestedFieldName] = nestedFieldValue - }) - - formattedMetadataChildFieldValues.push(composedField) - }) - - formattedMetadataBlock.fields[fieldName] = formattedMetadataChildFieldValues - - return - } - }) - - metadataBlocks.push(formattedMetadataBlock) - } - return { licence: defaultLicense, metadataBlocks } - } - public static addFieldValuesToMetadataBlocksInfo( normalizedMetadataBlocksInfo: MetadataBlockInfo[], normalizedDatasetMetadaBlocksCurrentValues: DatasetMetadataBlocks diff --git a/src/sections/shared/form/DatasetMetadataForm/MetadataForm/index.tsx b/src/sections/shared/form/DatasetMetadataForm/MetadataForm/index.tsx index 34a66581d..0a6f4d5eb 100644 --- a/src/sections/shared/form/DatasetMetadataForm/MetadataForm/index.tsx +++ b/src/sections/shared/form/DatasetMetadataForm/MetadataForm/index.tsx @@ -23,6 +23,7 @@ interface FormProps { errorLoadingMetadataBlocksInfo: string | null datasetRepository: DatasetRepository datasetPersistentID?: string + datasetInternalVersionNumber?: number } export const MetadataForm = ({ @@ -32,7 +33,8 @@ export const MetadataForm = ({ metadataBlocksInfo, errorLoadingMetadataBlocksInfo, datasetRepository, - datasetPersistentID + datasetPersistentID, + datasetInternalVersionNumber }: FormProps) => { const { user } = useSession() const navigate = useNavigate() @@ -53,7 +55,8 @@ export const MetadataForm = ({ collectionId, datasetRepository, onSubmitDatasetError, - datasetPersistentID + datasetPersistentID, + datasetInternalVersionNumber ) useEffect(() => { diff --git a/src/sections/shared/form/DatasetMetadataForm/index.tsx b/src/sections/shared/form/DatasetMetadataForm/index.tsx index 4f041f319..4ebd7aaab 100644 --- a/src/sections/shared/form/DatasetMetadataForm/index.tsx +++ b/src/sections/shared/form/DatasetMetadataForm/index.tsx @@ -17,6 +17,7 @@ type DatasetMetadataFormProps = datasetPersistentID?: never metadataBlockInfoRepository: MetadataBlockInfoRepository datasetMetadaBlocksCurrentValues?: never + datasetInternalVersionNumber?: never } | { mode: 'edit' @@ -25,6 +26,7 @@ type DatasetMetadataFormProps = datasetPersistentID: string metadataBlockInfoRepository: MetadataBlockInfoRepository datasetMetadaBlocksCurrentValues: DatasetMetadataBlocks + datasetInternalVersionNumber: number } export type DatasetMetadataFormMode = 'create' | 'edit' @@ -35,7 +37,8 @@ export const DatasetMetadataForm = ({ datasetRepository, datasetPersistentID, metadataBlockInfoRepository, - datasetMetadaBlocksCurrentValues + datasetMetadaBlocksCurrentValues, + datasetInternalVersionNumber }: DatasetMetadataFormProps) => { const { setIsLoading } = useLoading() const onEditMode = mode === 'edit' @@ -112,6 +115,7 @@ export const DatasetMetadataForm = ({ errorLoadingMetadataBlocksInfo={errorLoadingMetadataBlocksInfo} datasetRepository={datasetRepository} datasetPersistentID={datasetPersistentID} + datasetInternalVersionNumber={datasetInternalVersionNumber} /> ) } diff --git a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts index 6b862d548..75e3a4871 100644 --- a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts +++ b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts @@ -32,12 +32,15 @@ type UseSubmitDatasetReturnType = submitError: string } +// TODO:ME - Add integration tests and component tests + export function useSubmitDataset( mode: DatasetMetadataFormMode, collectionId: string, datasetRepository: DatasetRepository, onSubmitErrorCallback: () => void, - datasetPersistentID?: string + datasetPersistentID?: string, + datasetInternalVersionNumber?: number ): UseSubmitDatasetReturnType { const navigate = useNavigate() const { t } = useTranslation('shared', { keyPrefix: 'datasetMetadataForm' }) @@ -52,11 +55,13 @@ export function useSubmitDataset( const formDataBackToOriginalKeys = MetadataFieldsHelper.replaceSlashKeysWithDot(formData) - if (mode === 'create') { - const formattedFormValuesForCreation = - MetadataFieldsHelper.formatFormValuesToDatasetDTOForCreation(formDataBackToOriginalKeys) + const formattedFormValues = MetadataFieldsHelper.formatFormValuesToDatasetDTO( + formDataBackToOriginalKeys, + mode + ) - createDataset(datasetRepository, formattedFormValuesForCreation, collectionId) + if (mode === 'create') { + createDataset(datasetRepository, formattedFormValues, collectionId) .then(({ persistentId }) => { setSubmitError(null) setSubmissionStatus(SubmissionStatus.SubmitComplete) @@ -82,13 +87,11 @@ export function useSubmitDataset( } else { const currentEditedDatasetPersistentID = datasetPersistentID as string - const formattedFormValuesForEdition = - MetadataFieldsHelper.formatFormValuesToDatasetDTOForEdition(formDataBackToOriginalKeys) - updateDatasetMetadata( datasetRepository, currentEditedDatasetPersistentID, - formattedFormValuesForEdition + formattedFormValues, + datasetInternalVersionNumber as number ) .then(() => { setSubmitError(null) From 59f255c2c5c60a5373f9aff277d154931d70c786 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 14:46:01 -0300 Subject: [PATCH 08/11] test: add unit cases --- .../MetadataFieldsHelper.ts | 2 - .../DatasetMetadataForm/useSubmitDataset.ts | 2 - .../DatasetMetadataForm.stories.tsx | 1 + .../MetadataFieldsHelper.spec.ts | 66 ++++++++++++++++--- 4 files changed, 59 insertions(+), 12 deletions(-) diff --git a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts index e1800f051..b5d6bab9e 100644 --- a/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts +++ b/src/sections/shared/form/DatasetMetadataForm/MetadataFieldsHelper.ts @@ -332,8 +332,6 @@ export class MetadataFieldsHelper { .map((primitiveField) => primitiveField.value) .filter((v) => v !== '') - console.log({ primitiveMultipleFieldValues }) - if (primitiveMultipleFieldValues.length > 0 || mode === 'edit') { formattedMetadataBlock.fields[fieldName] = primitiveMultipleFieldValues return diff --git a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts index 75e3a4871..04efccdb7 100644 --- a/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts +++ b/src/sections/shared/form/DatasetMetadataForm/useSubmitDataset.ts @@ -32,8 +32,6 @@ type UseSubmitDatasetReturnType = submitError: string } -// TODO:ME - Add integration tests and component tests - export function useSubmitDataset( mode: DatasetMetadataFormMode, collectionId: string, diff --git a/src/stories/shared/dataset-metadata-form/DatasetMetadataForm.stories.tsx b/src/stories/shared/dataset-metadata-form/DatasetMetadataForm.stories.tsx index ffc54694f..367e0bf2c 100644 --- a/src/stories/shared/dataset-metadata-form/DatasetMetadataForm.stories.tsx +++ b/src/stories/shared/dataset-metadata-form/DatasetMetadataForm.stories.tsx @@ -40,6 +40,7 @@ export const EditMode: Story = { metadataBlockInfoRepository={new MetadataBlockInfoMockRepository()} datasetPersistentID={datasetToEditMock.persistentId} datasetMetadaBlocksCurrentValues={datasetToEditMock.metadataBlocks} + datasetInternalVersionNumber={1} /> ) } diff --git a/tests/component/sections/shared/dataset-metadata-form/MetadataFieldsHelper.spec.ts b/tests/component/sections/shared/dataset-metadata-form/MetadataFieldsHelper.spec.ts index fd19ce995..f36564fd7 100644 --- a/tests/component/sections/shared/dataset-metadata-form/MetadataFieldsHelper.spec.ts +++ b/tests/component/sections/shared/dataset-metadata-form/MetadataFieldsHelper.spec.ts @@ -1247,7 +1247,7 @@ const formValuesWithValuesBackToDotKeys: DatasetMetadataFormValues = { } } -const expectedDatasetDTO: DatasetDTO = { +const expectedDatasetDTOInCreateMode: DatasetDTO = { licence: defaultLicense, metadataBlocks: [ { @@ -1281,6 +1281,43 @@ const expectedDatasetDTO: DatasetDTO = { ] } +const expectedDatasetDTOInEditMode: DatasetDTO = { + licence: defaultLicense, + metadataBlocks: [ + { + name: 'foo', + fields: { + someKeyWithoutDot: 'bar', + controlledVocabularyNotMultiple: 'Option2', + controlledVocabularyMultiple: ['Option1'], + 'primitive.text.not.multiple': 'foo', + 'primitive.text.multiple': ['foo', 'bar'], + 'primitive.textbox.not.multiple': '', + 'primitive.textbox.multiple': [], + 'primitive.float.not.multiple': '23.55', + 'primitive.float.multiple': ['23.55', '45.55'], + 'primitive.int.not.multiple': '23', + 'primitive.int.multiple': ['23', '45'], + 'primitive.date.not.multiple': '2022-01-01', + 'primitive.date.multiple': ['2022-01-01', '2022-12-31'], + 'composed.field.multiple': [ + { + 'subfield.1': 'foo', + 'subfield.2': 'bar', + someNestedKeyWithoutDot: 'bar', + controlledVocabularyNotMultiple: '' + } + ], + 'composed.field.not.multiple': { + 'subfield.1': 'foo', + 'subfield.2': 'bar', + someNestedKeyWithoutDot: 'bar' + } + } + } + ] +} + describe('MetadataFieldsHelper', () => { it('should replace names keys with dots with slashes from a metadata block info', () => { const result = @@ -1322,12 +1359,24 @@ describe('MetadataFieldsHelper', () => { expect(result).to.deep.equal(formValuesWithValuesBackToDotKeys) }) - it('should get dataset DTO from form values', () => { - const result = MetadataFieldsHelper.formatFormValuesToDatasetDTO( - formValuesWithValuesBackToDotKeys - ) + describe('should format form values to dataset DTO', () => { + it('In create mode, removing empty values', () => { + const result = MetadataFieldsHelper.formatFormValuesToDatasetDTO( + formValuesWithValuesBackToDotKeys, + 'create' + ) - expect(result).to.deep.equal(expectedDatasetDTO) + expect(result).to.deep.equal(expectedDatasetDTOInCreateMode) + }) + + it('In edit mode, keeping empty values', () => { + const result = MetadataFieldsHelper.formatFormValuesToDatasetDTO( + formValuesWithValuesBackToDotKeys, + 'edit' + ) + + expect(result).to.deep.equal(expectedDatasetDTOInEditMode) + }) }) it('works all together, simulates a use in an edit mode form', () => { @@ -1353,7 +1402,8 @@ describe('MetadataFieldsHelper', () => { MetadataFieldsHelper.replaceSlashKeysWithDot(inTestFormDefaultValues) const inTestDatasetDTO = MetadataFieldsHelper.formatFormValuesToDatasetDTO( - formValuesWithValuesBackToDotKeys + formValuesWithValuesBackToDotKeys, + 'edit' ) expect(inTestNormalizedMetadataBlocksInfo).to.deep.equal(normalizedMetadataBlocksInfo) @@ -1367,7 +1417,7 @@ describe('MetadataFieldsHelper', () => { expect(inTestFormDefaultValuesBackToDotKeys).to.deep.equal(formValuesWithValuesBackToDotKeys) - expect(inTestDatasetDTO).to.deep.equal(expectedDatasetDTO) + expect(inTestDatasetDTO).to.deep.equal(expectedDatasetDTOInEditMode) }) describe('defineFieldName', () => { From d00b8bc2a899df80a5484b19620e23e1561d3ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 16:22:37 -0300 Subject: [PATCH 09/11] chore: update solr version in git example --- dev-env/.env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-env/.env.example b/dev-env/.env.example index 972aa9026..0064a6676 100644 --- a/dev-env/.env.example +++ b/dev-env/.env.example @@ -1,6 +1,6 @@ POSTGRES_VERSION=13 DATAVERSE_DB_USER=dataverse -SOLR_VERSION=9.3.0 +SOLR_VERSION=9.8.0 REGISTRY=docker.io S3_ACCESS_KEY= S3_SECRET_KEY= From a288f294ae8244b595a3d31ba2f9b19bacad858a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Mon, 24 Mar 2025 17:09:26 -0300 Subject: [PATCH 10/11] fix: test using removed mother method --- .../edit-collection-featured-items/FeaturedItemsForm.spec.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/component/sections/edit-collection-featured-items/FeaturedItemsForm.spec.tsx b/tests/component/sections/edit-collection-featured-items/FeaturedItemsForm.spec.tsx index c4bbba53e..acacf5322 100644 --- a/tests/component/sections/edit-collection-featured-items/FeaturedItemsForm.spec.tsx +++ b/tests/component/sections/edit-collection-featured-items/FeaturedItemsForm.spec.tsx @@ -516,7 +516,7 @@ describe('FeaturedItemsForm', () => { it('should show toast error message when trying to add more than 10 featured items', () => { const testFeaturedItems = Array.from({ length: 10 }, (_, index) => - CollectionFeaturedItemMother.createFeaturedItem({ + CollectionFeaturedItemMother.createCustomFeaturedItem('css', { id: index, displayOrder: index, content: `

Featured Item ${index}

`, From 54883233a6d26191ad836174cfe46af3eca1044c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Thu, 27 Mar 2025 10:13:38 -0300 Subject: [PATCH 11/11] chore: update to latest js-dv alpha version --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dcbd9a8a0..d1ac4ff93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.79e2be1", + "@iqss/dataverse-client-javascript": "2.0.0-alpha.33", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3682,9 +3682,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr273.79e2be1", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr273.79e2be1/ab5473055a3e5cdf3ec1388adea5b20dcf012341", - "integrity": "sha512-r+dsoJZkmVrgdFIX9fQeSak1384sJPxZv+gsp9ON22Mnukj7ihBn9yeE1B+SlNEAeJ/QYj89K5R5c/O2SJd5SQ==", + "version": "2.0.0-alpha.33", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-alpha.33/1978f8c7e1e1b584e5d53e3f3c29806e6adb9ef1", + "integrity": "sha512-R1XcmmQYQLzTsmh3QixzVvR3FxgHBCgbJmZAd8rEkIbWbr0I2Oo7fvO60gY7UWtMUsMtsNo0Ag7pF4VSZQiTxw==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index 74ee2b631..08dbb930d 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr273.79e2be1", + "@iqss/dataverse-client-javascript": "2.0.0-alpha.33", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2",