From fa41045a611088f114f76c960be4dd212c8bb5d6 Mon Sep 17 00:00:00 2001 From: MillenniumFalconMechanic Date: Tue, 4 Feb 2025 12:43:16 -0800 Subject: [PATCH] feat: removed verbatim ff #4350 --- .../ExportMethod/exportMethod.tsx | 22 ------ .../anvil-cmg/common/viewModelBuilders.ts | 72 +------------------ app/viewModelBuilders/common/contants.ts | 2 +- e2e/anvil/anvil-dataset.spec.ts | 26 +++++-- e2e/features/common/constants.ts | 1 + .../dev/detail/dataset/export/export.ts | 6 +- site-config/anvil-cmg/dev/export/export.ts | 5 +- 7 files changed, 29 insertions(+), 105 deletions(-) delete mode 100644 app/components/Export/components/AnVILExplorer/ExportMethod/exportMethod.tsx diff --git a/app/components/Export/components/AnVILExplorer/ExportMethod/exportMethod.tsx b/app/components/Export/components/AnVILExplorer/ExportMethod/exportMethod.tsx deleted file mode 100644 index 13e56d146..000000000 --- a/app/components/Export/components/AnVILExplorer/ExportMethod/exportMethod.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - ExportMethod as DXExportMethod, - ExportMethodProps, -} from "@databiosphere/findable-ui/lib/components/Export/components/ExportMethod/exportMethod"; -import { useExploreState } from "@databiosphere/findable-ui/lib/hooks/useExploreState"; -import { Fragment, useEffect, useState } from "react"; -import { FEATURE_FLAGS } from "../../../../../viewModelBuilders/common/contants"; - -export const ExportMethod = ({ ...props }: ExportMethodProps): JSX.Element => { - const { - exploreState: { featureFlagState }, - } = useExploreState(); - const [showMethod, setShowMethod] = useState(false); - - useEffect(() => { - if (featureFlagState) { - setShowMethod(featureFlagState === FEATURE_FLAGS.VERBATIM); - } - }, [featureFlagState]); - - return showMethod ? : ; -}; diff --git a/app/viewModelBuilders/azul/anvil-cmg/common/viewModelBuilders.ts b/app/viewModelBuilders/azul/anvil-cmg/common/viewModelBuilders.ts index 4ea659b87..bb4fa18a4 100644 --- a/app/viewModelBuilders/azul/anvil-cmg/common/viewModelBuilders.ts +++ b/app/viewModelBuilders/azul/anvil-cmg/common/viewModelBuilders.ts @@ -104,10 +104,9 @@ import { import * as C from "../../../../components"; import * as MDX from "../../../../components/common/MDXContent/anvil-cmg"; import { Description } from "../../../../components/Detail/components/MDX/components/Description/description"; -import { ExportMethod } from "../../../../components/Export/components/AnVILExplorer/ExportMethod/exportMethod"; +import { ExportMethod } from "@databiosphere/findable-ui/lib/components/Export/components/ExportMethod/exportMethod"; import { METADATA_KEY } from "../../../../components/Index/common/entities"; import { getPluralizedMetadataLabel } from "../../../../components/Index/common/indexTransformer"; -import { FEATURE_FLAGS } from "../../../common/contants"; import { Unused, Void } from "../../../common/entities"; import { SUMMARY_DISPLAY_TEXT } from "./summaryMapper/constants"; import { mapExportSummary } from "./summaryMapper/summaryMapper"; @@ -167,31 +166,6 @@ export const buildAlertDatasetManifestDownloadWarning = ( }; }; -/** - * Build props for dataset-related export warning Alert component. - * @param _ - Unused. - * @param viewContext - View context. - * @returns model to be used as props for the Alert component. - */ -export const buildAlertDatasetTerraExportWarning = ( - _: Unused, - viewContext: ViewContext -): React.ComponentProps => { - const { - exploreState: { featureFlagState }, - } = viewContext; - const content = featureFlagState?.includes(FEATURE_FLAGS.VERBATIM) - ? isUserAuthenticated(viewContext) - ? "To export this dataset, please request access." - : "To export this dataset, please sign in and, if necessary, request access." - : "Export functionality is currently under development. Check back soon for updates."; - return { - ...ALERT_PROPS.STANDARD_WARNING, - component: C.FluidPaper, - content, - }; -}; - /** * Build props for list view access warning Alert component. * @param _ - Unused. @@ -1473,50 +1447,6 @@ export const renderWhenUnAuthenticated = ( }; }; -/** - * Renders dataset export to Terra component when the given datasests response is accessible. Note, - * this can be removed once the verbatim feature flag is removed (use renderDatasetExport instead). - * @param datasetsResponse - Response model return from datasets API. - * @param viewContext - View context. - * @returns model to be used as props for the ConditionalComponent component. - * @deprecated - */ -export const renderDatasetTerraExport = ( - datasetsResponse: DatasetsResponse, - viewContext: ViewContext -): React.ComponentProps => { - const { - exploreState: { featureFlagState }, - } = viewContext; - return { - isIn: - isDatasetAccessible(datasetsResponse) && - Boolean(featureFlagState?.includes(FEATURE_FLAGS.VERBATIM)), - }; -}; - -/** - * Renders dataset export to Terra warning component when the given datasests response is accessible. Note, - * this can be removed once the verbatim feature flag is removed (use renderDatasetExportWarning instead). - * @param datasetsResponse - Response model return from datasets API. - * @param viewContext - View context. - * @returns model to be used as props for the ConditionalComponent component. - * @deprecated - */ -export const renderDatasetTerraExportWarning = ( - datasetsResponse: DatasetsResponse, - viewContext: ViewContext -): React.ComponentProps => { - const { - exploreState: { featureFlagState }, - } = viewContext; - return { - isIn: - !isDatasetAccessible(datasetsResponse) || - Boolean(!featureFlagState?.includes(FEATURE_FLAGS.VERBATIM)), - }; -}; - /** * Renders dataset export-related components (either the choose export method component, * or specific export components) when the given dataset is accessble. diff --git a/app/viewModelBuilders/common/contants.ts b/app/viewModelBuilders/common/contants.ts index f3b2b5b8b..80602d421 100644 --- a/app/viewModelBuilders/common/contants.ts +++ b/app/viewModelBuilders/common/contants.ts @@ -6,5 +6,5 @@ export const DATE_TIME_FORMAT_OPTIONS: Intl.DateTimeFormatOptions = { }; export const DATE_TIME_LOCALES = "en-US"; export const FEATURE_FLAGS = { - VERBATIM: "verbatim", + VERBATIM: "verbatim", // Deprecated }; diff --git a/e2e/anvil/anvil-dataset.spec.ts b/e2e/anvil/anvil-dataset.spec.ts index 7b087e55e..f74be5c0e 100644 --- a/e2e/anvil/anvil-dataset.spec.ts +++ b/e2e/anvil/anvil-dataset.spec.ts @@ -11,6 +11,7 @@ import { import { MUI_ALERT_ROOT, MUI_BUTTON_GROUP_ROOT, + MUI_FORM_CONTROL_ROOT, MUI_TABLE_CELL_ROOT, MUI_TABLE_ROOT, MUI_TABLE_ROW_ROOT, @@ -151,11 +152,26 @@ describe("Dataset", () => { // Confirm Terra export method is visible and click it. await clickLink(page, BUTTON_TEXT_ANALYZE_IN_TERRA); - // Confirm the analyze in Terra page is loaded: check the "coming soon" - // message is displayed. - await expect( - page.locator(`${MUI_ALERT_ROOT}:has-text("under development")`) - ).toBeVisible(); + // Confirm the analyze in Terra page is loaded: check for form elements. + await expect(page.locator(MUI_FORM_CONTROL_ROOT).first()).toBeVisible(); + }); + + test("displays analyze in Terra selected data", async ({ page }) => { + await goToDataset(page, CHIP_TEXT_ACCESS_GRANTED); + + // Confirm export button is visible and click it. + await clickLink(page, BUTTON_TEXT_EXPORT); + + // Wait for the summary request once the file manifest button is clicked. + const [request] = await Promise.all([ + page.waitForRequest((request) => + request.url().includes(API_ENDPOINT_SUMMARY) + ), + clickLink(page, BUTTON_TEXT_ANALYZE_IN_TERRA), + ]); + + // Confirm summary request has dataset ID request param. + verifySummaryRequest(request); }); }); diff --git a/e2e/features/common/constants.ts b/e2e/features/common/constants.ts index bc57e390e..3e4cc0591 100644 --- a/e2e/features/common/constants.ts +++ b/e2e/features/common/constants.ts @@ -1,5 +1,6 @@ export const MUI_ALERT_ROOT = ".MuiAlert-root"; export const MUI_BUTTON_GROUP_ROOT = ".MuiButtonGroup-root"; +export const MUI_FORM_CONTROL_ROOT = ".MuiFormControl-root"; export const MUI_TABLE_CELL_ROOT = ".MuiTableCell-root"; export const MUI_TABLE_ROOT = ".MuiTable-root"; export const MUI_TABLE_ROW_ROOT = ".MuiTableRow-root"; diff --git a/site-config/anvil-cmg/dev/detail/dataset/export/export.ts b/site-config/anvil-cmg/dev/detail/dataset/export/export.ts index 01e22f31f..0db7435a9 100644 --- a/site-config/anvil-cmg/dev/detail/dataset/export/export.ts +++ b/site-config/anvil-cmg/dev/detail/dataset/export/export.ts @@ -36,14 +36,14 @@ export const exportConfig: ExportConfig = { children: [ { component: MDX.Alert, - viewBuilder: V.buildAlertDatasetTerraExportWarning, + viewBuilder: V.buildAlertDatasetExportWarning, } as ComponentConfig, ], component: C.BackPageContentSingleColumn, } as ComponentConfig, ], component: C.ConditionalComponent, - viewBuilder: V.renderDatasetTerraExportWarning, + viewBuilder: V.renderDatasetExportWarning, } as ComponentConfig, /* ------ */ /* Dataset is accessible; render Terra export method */ @@ -63,7 +63,7 @@ export const exportConfig: ExportConfig = { ...exportSideColumn, ], component: C.ConditionalComponent, - viewBuilder: V.renderDatasetTerraExport, + viewBuilder: V.renderDatasetExport, } as ComponentConfig, ], route: ROUTE_EXPORT_TO_TERRA, diff --git a/site-config/anvil-cmg/dev/export/export.ts b/site-config/anvil-cmg/dev/export/export.ts index d7a79b8e8..fcd1209b8 100644 --- a/site-config/anvil-cmg/dev/export/export.ts +++ b/site-config/anvil-cmg/dev/export/export.ts @@ -3,7 +3,6 @@ import { ExportConfig, } from "@databiosphere/findable-ui/lib/config/entities"; import * as C from "../../../../app/components"; -import { ExportMethod } from "../../../../app/components/Export/components/AnVILExplorer/ExportMethod/exportMethod"; import * as V from "../../../../app/viewModelBuilders/azul/anvil-cmg/common/viewModelBuilders"; import { ROUTE_EXPORT_TO_TERRA, ROUTE_MANIFEST_DOWNLOAD } from "./constants"; import { mainColumn as exportMainColumn } from "./exportMainColumn"; @@ -73,9 +72,9 @@ export const exportConfig: ExportConfig = { { children: [ { - component: ExportMethod, + component: C.ExportMethod, viewBuilder: V.buildExportMethodTerra, - } as ComponentConfig, + } as ComponentConfig, { component: C.ExportMethod, viewBuilder: V.buildExportMethodManifestDownload,