## Description - Locator fixes for cy tests - Missing saga for discard and merge - New component for hot keys Fixes https://github.com/appsmithorg/appsmith/issues/37821 Fixes https://github.com/appsmithorg/appsmith/issues/37822 Fixes https://github.com/appsmithorg/appsmith/issues/37824 ## Automation /ok-to-test tags="@tag.Git" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/12649057943> > Commit: 94c57d0a2398fca8e6cbb4be573586aa98dffbe1 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12649057943&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Git` > Spec: > <hr>Tue, 07 Jan 2025 10:42:55 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Added repository limit error modal to handle scenarios when repository limits are reached. - Introduced Git hot keys for quick access to Git operations. - Enhanced Git synchronization functionality with new merge and discard change capabilities. - Integrated feature flag handling in test suites for Git-related functionalities. - **Improvements** - Standardized test identifiers across Git-related components. - Refined Git modal interactions and state management. - Updated locator references for more consistent testing. - Improved user feedback with success notifications for branch deletions. - **Bug Fixes** - Resolved issues with branch switching and URL handling. - Improved error handling in Git synchronization processes. - **Testing** - Updated Cypress test suites with new feature flag interceptors. - Enhanced test coverage for Git operations and modal interactions. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
// temp file will be removed after git mod is fully rolled out
|
|
|
|
import { selectFeatureFlags } from "ee/selectors/featureFlagsSelectors";
|
|
import { createSelector } from "reselect";
|
|
import {
|
|
getCurrentGitBranch,
|
|
getIsGitSyncModalOpen,
|
|
protectedModeSelector,
|
|
} from "./gitSyncSelectors";
|
|
import {
|
|
selectGitCurrentBranch as selectGitCurrentBranchNew,
|
|
selectGitProtectedMode as selectGitProtectedModeNew,
|
|
selectGitOpsModalOpen as selectGitOpsModalOpenNew,
|
|
selectGitConnectModalOpen as selectGitConnectModalOpenNew,
|
|
} from "git";
|
|
import {
|
|
getCurrentBaseApplicationId,
|
|
previewModeSelector,
|
|
} from "./editorSelectors";
|
|
import { applicationArtifact } from "git/artifact-helpers/application";
|
|
|
|
export const selectGitModEnabled = createSelector(
|
|
selectFeatureFlags,
|
|
(featureFlags) => featureFlags.release_git_modularisation_enabled ?? false,
|
|
);
|
|
|
|
export const selectGitApplicationArtifactDef = createSelector(
|
|
getCurrentBaseApplicationId,
|
|
(baseApplicationId) => applicationArtifact(baseApplicationId),
|
|
);
|
|
|
|
export const selectGitApplicationCurrentBranch = createSelector(
|
|
selectGitModEnabled,
|
|
getCurrentGitBranch,
|
|
(state) =>
|
|
selectGitCurrentBranchNew(state, selectGitApplicationArtifactDef(state)),
|
|
(isGitModEnabled, currentBranchOld, currentBranchNew) => {
|
|
return isGitModEnabled ? currentBranchNew : currentBranchOld;
|
|
},
|
|
);
|
|
|
|
export const selectGitApplicationProtectedMode = createSelector(
|
|
selectGitModEnabled,
|
|
protectedModeSelector,
|
|
(state) =>
|
|
selectGitProtectedModeNew(state, selectGitApplicationArtifactDef(state)),
|
|
(isGitModEnabled, protectedModeOld, protectedModeNew) => {
|
|
return isGitModEnabled ? protectedModeNew : protectedModeOld;
|
|
},
|
|
);
|
|
|
|
export const selectCombinedPreviewMode = createSelector(
|
|
previewModeSelector,
|
|
selectGitApplicationProtectedMode,
|
|
(isPreviewMode, isProtectedMode) => isPreviewMode || isProtectedMode,
|
|
);
|
|
|
|
export const selectGitOpsModalOpen = createSelector(
|
|
selectGitModEnabled,
|
|
getIsGitSyncModalOpen,
|
|
(state) =>
|
|
selectGitOpsModalOpenNew(state, selectGitApplicationArtifactDef(state)),
|
|
(isGitModEnabled, isOldModalOpen, isNewModalOpen) => {
|
|
return isGitModEnabled ? isNewModalOpen : isOldModalOpen;
|
|
},
|
|
);
|
|
|
|
export const selectGitConnectModalOpen = createSelector(
|
|
selectGitModEnabled,
|
|
getIsGitSyncModalOpen,
|
|
(state) =>
|
|
selectGitConnectModalOpenNew(state, selectGitApplicationArtifactDef(state)),
|
|
(isGitModEnabled, isOldModalOpen, isNewModalOpen) => {
|
|
return isGitModEnabled ? isNewModalOpen : isOldModalOpen;
|
|
},
|
|
);
|