From 2ce91f1ef808f31b7907cc60ab19a5b2defa5458 Mon Sep 17 00:00:00 2001 From: Bikram Choudhury Date: Sat, 13 Dec 2025 18:16:53 +0530 Subject: [PATCH] Add test infrastructure and data-test attributes for Container Copy e2e testing --- .github/workflows/ci.yml | 3 + src/Common/LoadingOverlay.tsx | 1 + .../LoadingOverlay.test.tsx.snap | 4 + .../AssignPermissions/AddManagedIdentity.tsx | 1 + .../AddReadPermissionToDefaultIdentity.tsx | 1 + .../AssignPermissions/AssignPermissions.tsx | 13 +- .../DefaultManagedIdentity.tsx | 1 + .../AssignPermissions/PointInTimeRestore.tsx | 2 + .../AddManagedIdentity.test.tsx.snap | 6 + ...dPermissionToDefaultIdentity.test.tsx.snap | 6 + .../AssignPermissions.test.tsx.snap | 42 ++ .../DefaultManagedIdentity.test.tsx.snap | 5 + .../PointInTimeRestore.test.tsx.snap | 5 + .../Screens/Components/PopoverContainer.tsx | 1 + .../PopoverContainer.test.tsx.snap | 8 + .../Screens/CreateCopyJobScreens.tsx | 1 + .../Screens/PreviewCopyJob/PreviewCopyJob.tsx | 8 +- .../PreviewCopyJob.test.tsx.snap | 34 + .../Components/MigrationTypeCheckbox.tsx | 2 +- .../MigrationTypeCheckbox.test.tsx.snap | 2 + .../SelectSourceAndTargetContainers.tsx | 8 +- .../DatabaseContainerSection.test.tsx | 6 + .../components/DatabaseContainerSection.tsx | 3 + .../DatabaseContainerSection.test.tsx.snap | 8 + .../Components/CopyJobActionMenu.tsx | 1 + .../Components/CopyJobsList.tsx | 1 + .../ContainerCopy/Types/CopyJobTypes.ts | 1 + test/README.md | 3 + test/fx.ts | 118 +++- test/sql/containercopy.spec.ts | 649 ++++++++++++++++++ test/testExplorer/TestExplorer.ts | 7 +- 31 files changed, 937 insertions(+), 14 deletions(-) create mode 100644 test/sql/containercopy.spec.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 284405b54..b5eec01cd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,6 +192,9 @@ jobs: NOSQL_READONLY_TESTACCOUNT_TOKEN=$(az account get-access-token --scope "https://github-e2etests-sql-readonly.documents.azure.com/.default" -o tsv --query accessToken) echo "::add-mask::$NOSQL_READONLY_TESTACCOUNT_TOKEN" echo NOSQL_READONLY_TESTACCOUNT_TOKEN=$NOSQL_READONLY_TESTACCOUNT_TOKEN >> $GITHUB_ENV + NOSQL_CONTAINERCOPY_TESTACCOUNT_TOKEN=$(az account get-access-token --scope "https://github-e2etests-sql-containercopyonly.documents.azure.com/.default" -o tsv --query accessToken) + echo "::add-mask::$NOSQL_CONTAINERCOPY_TESTACCOUNT_TOKEN" + echo NOSQL_CONTAINERCOPY_TESTACCOUNT_TOKEN=$NOSQL_CONTAINERCOPY_TESTACCOUNT_TOKEN >> $GITHUB_ENV TABLE_TESTACCOUNT_TOKEN=$(az account get-access-token --scope "https://github-e2etests-tables.documents.azure.com/.default" -o tsv --query accessToken) echo "::add-mask::$TABLE_TESTACCOUNT_TOKEN" echo TABLE_TESTACCOUNT_TOKEN=$TABLE_TESTACCOUNT_TOKEN >> $GITHUB_ENV diff --git a/src/Common/LoadingOverlay.tsx b/src/Common/LoadingOverlay.tsx index 320576533..2cbf34213 100644 --- a/src/Common/LoadingOverlay.tsx +++ b/src/Common/LoadingOverlay.tsx @@ -13,6 +13,7 @@ const LoadingOverlay: React.FC = ({ isLoading, label }) => return (
= () => { = ({ id, title, Component, completed, disabled }) => ( - + {title} @@ -25,13 +25,13 @@ const PermissionSection: React.FC = ({ id, title, Compo height={completed ? 20 : 24} /> - + ); -const PermissionGroup: React.FC = ({ title, description, sections }) => { +const PermissionGroup: React.FC = ({ id, title, description, sections }) => { const [openItems, setOpenItems] = React.useState([]); useEffect(() => { @@ -44,6 +44,7 @@ const PermissionGroup: React.FC = ({ title, description, return ( { }, []); return ( - + {isSameAccount && copyJobState.migrationType === CopyJobMigrationType.Online ? ContainerCopyMessages.assignPermissions.intraAccountOnlineDescription( diff --git a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx index 69e12e72e..3eeb60bbf 100644 --- a/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx +++ b/src/Explorer/ContainerCopy/CreateCopyJob/Screens/AssignPermissions/DefaultManagedIdentity.tsx @@ -31,6 +31,7 @@ const DefaultManagedIdentity: React.FC = () => {
{ {showRefreshButton ? ( { /> ) : (
Incomplete Component @@ -142,6 +147,7 @@ exports[`AssignPermissions Component Accordion Behavior should render accordion
Incomplete Component @@ -339,6 +350,7 @@ exports[`AssignPermissions Component Edge Cases should calculate correct indent
Incomplete Component @@ -536,6 +553,7 @@ exports[`AssignPermissions Component Edge Cases should calculate correct indent
Incomplete Component @@ -733,6 +756,7 @@ exports[`AssignPermissions Component Edge Cases should handle missing account na
@@ -301,6 +305,7 @@ exports[`PointInTimeRestore Snapshots should match snapshot with refresh button