From b50cbb7cdcf43565b9cf2ee183c44a2c4e376a39 Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Sat, 17 May 2025 16:36:20 -0400 Subject: [PATCH 1/7] MMT-4000: Fix apollo errors on main --- .../MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js index 26c4bbd46..79e83f31d 100644 --- a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js +++ b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js @@ -1,5 +1,6 @@ export const mockCollection = { abstract: "The 2012 Environmental Performance Index (EPI) ranks 132 countries on 22 performance indicators in the following 10 policy categories: environmental burden of disease, water (effects on human health), air pollution (effects on human health), air pollution (ecosystem effects), water resources (ecosystem effects), biodiversity and habitat, forestry, fisheries, agriculture and climate change. These categories track performance and progress on two broad policy objectives, environmental health and ecosystem vitality. Each indicator has an associated environmental public health or ecosystem sustainability target. The EPI's proximity-to-target methodology facilitates cross-country comparisons among economic and regional peer groups.\n\n\n\n\nThe Pilot Trend Environmental Performance Index (Trend EPI) ranks countries on the change in their environmental performance over the last decade. As a complement to the EPI, the Trend EPI shows who is improving and who is declining over time.\n\n\n\n\nThe 2012 EPI and Pilot Trend EPI were formally released in Davos, Switzerland, at the annual meeting of the World Economic Forum on January 27, 2012. These are the result of collaboration between the Yale Center for Environmental Law and Policy (YCELP) and the Columbia University Center for International Earth Science Information Network (CIESIN). The Interactive Website for the 2012 EPI is at http://epi.yale.edu/.", + associationDetails: [], accessConstraints: { description: 'None' }, @@ -1652,6 +1653,7 @@ export const mockCollectionWithAssociatedVariables = { ] }, associatedDois: null, + associationDetails: [], collectionCitations: null, collectionProgress: 'COMPLETE', conceptId: 'C1200000104-MMT_2', From 4776a039198d3b15ad36520d1977e810c5b6c01a Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Sat, 17 May 2025 16:39:22 -0400 Subject: [PATCH 2/7] MMT-4000: Adding cmr-preview for Visualization records --- package-lock.json | 8 +- package.json | 2 +- setup/setupCmr.js | 3 +- .../MetadataPreview/MetadataPreview.jsx | 13 +- .../__tests__/MetadataPreview.test.jsx | 74 +++++- .../__mocks__/MatadataPreviewMocks.js | 211 ++++++++++++++++++ .../js/operations/queries/getVisualization.js | 7 + .../queries/getVisualizationDrafts.js | 2 +- 8 files changed, 310 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2944550bd..9bd7fadc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.3.19", + "@edsc/metadata-preview": "^1.4.0-beta.1", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", @@ -4232,9 +4232,9 @@ } }, "node_modules/@edsc/metadata-preview": { - "version": "1.3.19", - "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.3.19.tgz", - "integrity": "sha512-B9lIroxp/poIg3DS28HTd/RPkZUyoJNPZn9C68q0GX86egvb0fc113zosbf0The5pAOWJNM1NUSNVeuhOPAHoQ==", + "version": "1.4.0-beta.1", + "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.4.0-beta.1.tgz", + "integrity": "sha512-OCyzSieCEMFVKyrt1eEExw+iIc1LWu7qnO9oNXzswS2sX2HI4chtCYir3f6JKDccbnG88Igx56r54s/z6U2DIw==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index ceb167610..49bb2e6ff 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.3.19", + "@edsc/metadata-preview": "^1.4.0-beta.1", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", diff --git a/setup/setupCmr.js b/setup/setupCmr.js index d407a064d..fb145c8fa 100644 --- a/setup/setupCmr.js +++ b/setup/setupCmr.js @@ -580,7 +580,8 @@ const insertMetadata = async () => { let url const headers = { 'Content-Type': contentType, - Authorization: systemToken + Authorization: systemToken, + 'Cmr-Validate-Keywords': 'false' } if (collectionUri.includes('EDF_DEV06')) { diff --git a/static/src/js/components/MetadataPreview/MetadataPreview.jsx b/static/src/js/components/MetadataPreview/MetadataPreview.jsx index 6f1eac59f..0f9a4b066 100644 --- a/static/src/js/components/MetadataPreview/MetadataPreview.jsx +++ b/static/src/js/components/MetadataPreview/MetadataPreview.jsx @@ -3,7 +3,8 @@ import { CollectionPreview, ServicePreview, ToolPreview, - VariablePreview + VariablePreview, + VisualizationPreview } from '@edsc/metadata-preview' import { useParams } from 'react-router' import { useSuspenseQuery } from '@apollo/client' @@ -124,6 +125,16 @@ const MetadataPreview = ({ /> ) } + { + conceptType === 'Visualization' && ( + + ) + } ) diff --git a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx index bdb7f2984..75f7a8eef 100644 --- a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx +++ b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx @@ -2,7 +2,8 @@ import { CollectionPreview, ServicePreview, ToolPreview, - VariablePreview + VariablePreview, + VisualizationPreview } from '@edsc/metadata-preview' import { render, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' @@ -24,7 +25,8 @@ import { mockCollectionWithAssociatedVariables, mockServiceDraft, mockToolDraft, - mockVariableDraft + mockVariableDraft, + mockVisualizationDraft } from './__mocks__/MatadataPreviewMocks' vi.mock('@edsc/metadata-preview') @@ -236,6 +238,74 @@ describe('MetadataPreview', () => { }) }) + describe('when the conceptType is Visualization draft', () => { + test('renders a Visualization Preview component', async () => { + setup({ + overrideProps: { + conceptId: 'VISD000000-MMT', + conceptType: 'Visualization' + }, + mock: [{ + request: { + query: conceptTypeDraftQueries.Visualization, + variables: { + params: { + conceptId: 'VISD000000-MMT', + conceptType: 'Visualization' + }, + variableParams: null + } + }, + result: { + data: { + draft: mockVisualizationDraft + } + } + }], + initialEntries: '/drafts/visualizations/VISD000000-MMT' + }) + + await waitFor(() => { + console.log('it was called with', VisualizationPreview.mock.calls[0][0].visualization) + // TODO I need to figure out why this mock does not look right + expect(VisualizationPreview).toHaveBeenCalledWith({ + cmrHost: 'http://example.com', + conceptId: 'VISD000000-MMT', + conceptType: 'visualization-draft', + conceptUrlTemplate: '/{conceptType}/{conceptId}', + isPlugin: true, + visualization: { + __typename: 'Visualization', + conceptId: 'VISD0000000000-CMR', + description: 'Draft test description', + generation: {}, + identifier: 'Extra Data', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'Creating Test 3', + nativeId: 'Visualization-1303', + providerId: 'MMT_1', + revisionDate: '2025-04-25T17:25:17.825Z', + revisionId: '1', + scienceKeywords: null, + spatialExtent: null, + specification: {}, + subtitle: null, + temporalExtents: null, + title: 'Draft test title', + ummMetadata: null, + visualizationType: 'tiles' + } + }, {}) + }) + + expect(VisualizationPreview).toHaveBeenCalledTimes(1) + }) + }) + describe('when the conceptType is Variable draft', () => { test('renders a Variable Preview component', async () => { setup({ diff --git a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js index 79e83f31d..fce53afc2 100644 --- a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js +++ b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js @@ -3631,3 +3631,214 @@ export const mockVariableDraft = { __typename: 'Draft' } + +export const mockVisualizationDraft = { + conceptId: 'VISD000000-MMT', + conceptType: 'visualization-draft', + deleted: false, + name: 'Visualization Draft Preview Test', + description: 'MODIS Terra Corrected Reflectance True Color imagery shows land surface, ocean and atmospheric features by combining three different channels (bands) of the sensor data. The image has been enhanced through processing, including atmospheric correction for aerosols, to improve the visual depiction of the land surface while maintaining realistic colors.', + generation: { + sourceProjection: 'EPSG:4326', + sourceResolution: 'Native', + sourceFormat: 'GeoTIFF', + sourceColorModel: 'Full-Color RGB', + sourceCoverage: 'Granule', + outputProjection: 'EPSG:4326', + outputResolution: '250m', + outputFormat: 'JPEG' + }, + identifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'MODIS_Terra_Corrected_Reflectance_TrueColor', + nativeId: 'edsCoolVisualization', + providerId: 'LARC', + revisionDate: '2025-05-17T01:21:05.615Z', + revisionId: '1', + previewMetadata: { + conceptId: 'VISD0000000000-CMR', + description: 'Draft test description', + generation: {}, + identifier: 'Extra Data', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'Creating Test 3', + nativeId: 'Visualization-1303', + providerId: 'MMT_1', + revisionDate: '2025-04-25T17:25:17.825Z', + revisionId: '1', + scienceKeywords: null, + spatialExtent: null, + specification: {}, + subtitle: null, + temporalExtents: null, + title: 'Draft test title', + ummMetadata: null, + visualizationType: 'tiles', + __typename: 'Visualization' + }, + ummMetadata: { + ConceptIds: [ + { + Type: 'STD', + Value: 'C1000000001-EARTHDATA', + DataCenter: 'MODAPS', + ShortName: 'MODIS_Terra_CorrectedReflectance', + Title: 'MODIS/Terra Corrected Reflectance True Color', + Version: '6.1' + } + ], + SpatialExtent: { + GranuleSpatialRepresentation: 'GEODETIC', + HorizontalSpatialDomain: { + Geometry: { + CoordinateSystem: 'GEODETIC', + BoundingRectangles: [ + { + WestBoundingCoordinate: -180, + NorthBoundingCoordinate: 90, + EastBoundingCoordinate: 180, + SouthBoundingCoordinate: -90 + } + ] + } + } + }, + VisualizationType: 'tiles', + Title: 'MODIS Terra Corrected Reflectance (True Color)', + ScienceKeywords: [ + { + Category: 'EARTH SCIENCE', + Topic: 'SPECTRAL/ENGINEERING', + Term: 'VISIBLE WAVELENGTHS', + VariableLevel1: 'REFLECTANCE' + }, + { + Category: 'EARTH SCIENCE', + Topic: 'ATMOSPHERIC OPTICS', + Term: 'ATMOSPHERIC TRANSMITTANCE', + VariableLevel1: 'ATMOSPHERIC TRANSPARENCY' + } + ], + TemporalExtents: [ + { + RangeDateTimes: [ + { + BeginningDateTime: '2002-05-01T00:00:00Z', + EndingDateTime: '2023-12-31T23:59:59Z' + } + ], + EndsAtPresentFlag: true + } + ], + Specification: { + ProductIdentification: { + InternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + StandardOrNRTExternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + BestAvailableExternalIdentifier: 'MODIS_Terra_CorrectedReflectance', + GIBSTitle: 'Corrected Reflectance (True Color)', + WorldviewTitle: 'Corrected Reflectance (True Color)', + WorldviewSubtitle: 'Terra / MODIS' + }, + ProductMetadata: { + ParameterUnits: [ + null + ], + InternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + SourceDatasets: [ + 'C1000000001-EARTHDATA' + ], + TemporalCoverage: '2002-05-01/P1D', + RepresentingDatasets: [ + 'C1000000001-EARTHDATA' + ], + 'wmts:Dimension': { + Identifier: 'Time', + UOM: 'ISO8601', + Default: '2023-12-31', + Current: true, + Value: [ + '2002-05-01/2023-12-31/P1D' + ] + }, + OrbitDirection: [ + 'descending' + ], + Measurement: 'Corrected Reflectance', + ScienceParameters: [ + 'reflectance' + ], + AscendingOrDescending: 'Both', + Daynight: [ + 'day' + ], + NativeSpatialCoverage: [ + -90, + -180, + 90, + 180 + ], + 'wmts:Format': [ + 'image/jpeg' + ], + UpdateInterval: 180, + OrbitTracks: [ + 'OrbitTracks_Terra_Descending' + ], + LayerPeriod: 'Daily', + Ongoing: true, + 'ows:Metadata': [ + { + 'xlink:Href': 'https://gibs.earthdata.nasa.gov/colormaps/v1.3/MODIS_Corrected_Reflectance_TrueColor.xml', + 'xlink:Role': 'http://earthdata.nasa.gov/gibs/metadata-type/colormap/1.3', + 'xlink:Title': 'GIBS Color Map: Data - RGB Mapping', + 'xlink:Type': 'simple' + } + ], + 'ows:Identifier': 'MODIS_Terra_CorrectedReflectance_TrueColor', + WGS84SpatialCoverage: [ + -90, + -180, + 90, + 180 + ], + GranuleOrComposite: 'Granule', + ColorMap: 'MODIS_Corrected_Reflectance_TrueColor', + DataDayBreak: '00:00:00Z', + VisualizationLatency: '4 hours', + 'wmts:TileMatrixSetLink': { + TileMatrixSet: '250m' + }, + RetentionPeriod: 365 + } + }, + Generation: { + SourceProjection: 'EPSG:4326', + SourceResolution: 'Native', + SourceFormat: 'GeoTIFF', + SourceColorModel: 'Full-Color RGB', + SourceCoverage: 'Granule', + OutputProjection: 'EPSG:4326', + OutputResolution: '250m', + OutputFormat: 'JPEG' + }, + Description: 'MODIS Terra Corrected Reflectance True Color imagery shows land surface, ocean and atmospheric features by combining three different channels (bands) of the sensor data. The image has been enhanced through processing, including atmospheric correction for aerosols, to improve the visual depiction of the land surface while maintaining realistic colors.', + Subtitle: 'Terra / MODIS', + Name: 'MODIS_Terra_Corrected_Reflectance_TrueColor', + Identifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + MetadataSpecification: { + URL: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + Name: 'Visualization', + Version: '1.1.0' + } + }, + visualizationType: 'tiles', + __typename: 'Visualization' +} diff --git a/static/src/js/operations/queries/getVisualization.js b/static/src/js/operations/queries/getVisualization.js index 195af5255..dd1649a49 100644 --- a/static/src/js/operations/queries/getVisualization.js +++ b/static/src/js/operations/queries/getVisualization.js @@ -16,6 +16,13 @@ export const GET_VISUALIZATION = gql` revisions { count } + collections { + count + items { + conceptId + title + } + } scienceKeywords spatialExtent specification diff --git a/static/src/js/operations/queries/getVisualizationDrafts.js b/static/src/js/operations/queries/getVisualizationDrafts.js index 710f99850..da4199502 100644 --- a/static/src/js/operations/queries/getVisualizationDrafts.js +++ b/static/src/js/operations/queries/getVisualizationDrafts.js @@ -1,7 +1,7 @@ import { gql } from '@apollo/client' export const GET_VISUALIZATION_DRAFTS = gql` - query VaisualizationDrafts($params: DraftsInput) { + query VisualizationDrafts($params: DraftsInput) { drafts(params: $params) { count items { From e066e214a13227a55caddb8c3c8345686ea81af7 Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Mon, 19 May 2025 18:58:36 -0400 Subject: [PATCH 3/7] MMT-4000: Update MMT to include the latest cmr-preview page and the visualizations associated to the collection --- package-lock.json | 8 ++++---- package.json | 2 +- static/src/js/operations/queries/getCollection.js | 8 ++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bd7fadc0..091cbe80b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.4.0-beta.1", + "@edsc/metadata-preview": "^1.4.0-beta.2", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", @@ -4232,9 +4232,9 @@ } }, "node_modules/@edsc/metadata-preview": { - "version": "1.4.0-beta.1", - "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.4.0-beta.1.tgz", - "integrity": "sha512-OCyzSieCEMFVKyrt1eEExw+iIc1LWu7qnO9oNXzswS2sX2HI4chtCYir3f6JKDccbnG88Igx56r54s/z6U2DIw==", + "version": "1.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.4.0-beta.2.tgz", + "integrity": "sha512-dSLfVZxt5iSSGXW33Y9xyUXAXc1p+X/n0D0WfAUmLlkCuFDQ0OUHLcnt1PNERVEn01a+IS/IQ+zVG+TYT5gIdQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 49bb2e6ff..e9b7bcef0 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.4.0-beta.1", + "@edsc/metadata-preview": "^1.4.0-beta.2", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", diff --git a/static/src/js/operations/queries/getCollection.js b/static/src/js/operations/queries/getCollection.js index 7765e7cdb..3bcf81729 100644 --- a/static/src/js/operations/queries/getCollection.js +++ b/static/src/js/operations/queries/getCollection.js @@ -117,6 +117,14 @@ export const GET_COLLECTION = gql` url } } + visualizations { + count + items { + conceptId + name + type: visualizationType + } + } ummMetadata useConstraints userId From 992fb6f86aa55f572348bfef360ae7d7651fb541 Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Tue, 20 May 2025 10:02:42 -0400 Subject: [PATCH 4/7] MMT-4000: Bump express to match dependabot PR and run npm audit fix --- package-lock.json | 64 +++++++++++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 091cbe80b..e57898318 100644 --- a/package-lock.json +++ b/package-lock.json @@ -86,7 +86,7 @@ "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "express": "^4.18.2", + "express": "^4.19.2", "http": "^0.0.1-security", "http-proxy": "^1.18.1", "jsdom": "^22.1.0", @@ -5779,6 +5779,18 @@ "node": ">=4.0" } }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@node-saml/node-saml": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@node-saml/node-saml/-/node-saml-4.0.5.tgz", @@ -5860,6 +5872,15 @@ "node": ">= 8" } }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -15720,12 +15741,13 @@ } }, "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz", + "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==", + "license": "MIT", "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", "once": "^1.4.0", "qs": "^6.11.0" }, @@ -16483,14 +16505,6 @@ "he": "bin/he" } }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "engines": { - "node": ">=8" - } - }, "node_modules/history": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", @@ -26842,9 +26856,9 @@ } }, "node_modules/undici": { - "version": "6.21.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", - "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", "license": "MIT", "engines": { "node": ">=18.17" @@ -27319,9 +27333,9 @@ } }, "node_modules/vite": { - "version": "4.5.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.13.tgz", - "integrity": "sha512-Hgp8IF/yZDzKsN1hQWOuQZbrKiaFsbQud+07jJ8h9m9PaHWkpvZ5u55Xw5yYjWRXwRQ4jwFlJvY7T7FUJG9MCA==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", + "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", "license": "MIT", "dependencies": { "esbuild": "^0.18.10", @@ -27730,9 +27744,9 @@ } }, "node_modules/vite-node/node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { @@ -28533,9 +28547,9 @@ } }, "node_modules/vitest/node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index e9b7bcef0..5a4ed627f 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,7 @@ "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "express": "^4.18.2", + "express": "^4.19.2", "http": "^0.0.1-security", "http-proxy": "^1.18.1", "jsdom": "^22.1.0", From 3f9224a1648fec84587b635bd47b5f343397410c Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Tue, 20 May 2025 12:11:36 -0400 Subject: [PATCH 5/7] MMT-4000: Add in `name` field to pass to vis preview --- static/src/js/operations/queries/getVisualization.js | 1 + static/src/js/operations/queries/getVisualizationDraft.js | 1 + 2 files changed, 2 insertions(+) diff --git a/static/src/js/operations/queries/getVisualization.js b/static/src/js/operations/queries/getVisualization.js index dd1649a49..122fb4ff0 100644 --- a/static/src/js/operations/queries/getVisualization.js +++ b/static/src/js/operations/queries/getVisualization.js @@ -8,6 +8,7 @@ export const GET_VISUALIZATION = gql` generation identifier metadataSpecification + name, pageTitle: name nativeId providerId diff --git a/static/src/js/operations/queries/getVisualizationDraft.js b/static/src/js/operations/queries/getVisualizationDraft.js index f71055b46..1554255c1 100644 --- a/static/src/js/operations/queries/getVisualizationDraft.js +++ b/static/src/js/operations/queries/getVisualizationDraft.js @@ -18,6 +18,7 @@ export const VISUALIZATION_DRAFT = gql` generation identifier metadataSpecification + name, pageTitle: name nativeId providerId From 7434c54ebc1dc8556a6378f6cf5d24d5af0bf0a7 Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Tue, 20 May 2025 12:21:07 -0400 Subject: [PATCH 6/7] MMT-4000: fix test --- .../MetadataPreview/__tests__/MetadataPreview.test.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx index 75f7a8eef..deabdc8c3 100644 --- a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx +++ b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx @@ -286,6 +286,7 @@ describe('MetadataPreview', () => { version: '1.1.0' }, pageTitle: 'Creating Test 3', + name: 'Creating Test 3', nativeId: 'Visualization-1303', providerId: 'MMT_1', revisionDate: '2025-04-25T17:25:17.825Z', From f3f9bfb079b77400aae14ee2cfb513e7231bdbb4 Mon Sep 17 00:00:00 2001 From: Ed Olivares <34591886+eudoroolivares2016@users.noreply.github.com> Date: Tue, 20 May 2025 20:01:01 -0400 Subject: [PATCH 7/7] MMT-4000: Fix mock warnings --- .../__tests__/MetadataPreview.test.jsx | 2 -- .../__tests__/__mocks__/MatadataPreviewMocks.js | 11 +++++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx index deabdc8c3..3b2ba1f28 100644 --- a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx +++ b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx @@ -266,8 +266,6 @@ describe('MetadataPreview', () => { }) await waitFor(() => { - console.log('it was called with', VisualizationPreview.mock.calls[0][0].visualization) - // TODO I need to figure out why this mock does not look right expect(VisualizationPreview).toHaveBeenCalledWith({ cmrHost: 'http://example.com', conceptId: 'VISD000000-MMT', diff --git a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js index fce53afc2..e96d5afdc 100644 --- a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js +++ b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js @@ -1561,6 +1561,11 @@ export const mockCollection = { }, versionDescription: null, versionId: '2012.00', + visualizations: { + count: 0, + items: null, + __typename: 'VisualizationList' + }, revisions: { count: 8, items: [ @@ -3295,6 +3300,11 @@ export const mockCollectionWithAssociatedVariables = { }, versionDescription: null, versionId: '2012.00', + visualizations: { + count: 0, + items: null, + __typename: 'VisualizationList' + }, revisions: { count: 8, items: [ @@ -3661,6 +3671,7 @@ export const mockVisualizationDraft = { revisionId: '1', previewMetadata: { conceptId: 'VISD0000000000-CMR', + name: 'Visualization Draft Preview Test', description: 'Draft test description', generation: {}, identifier: 'Extra Data',