PromucFlow_constructor/app/client/test/sagas.ts
Hetu Nandu aa9b19c995
refactor: Widget Selection (#19643)
## Description

This change is a refactor of widget selection logic. It consolidates all
the business logic to make it easy to maintain. It also improves the
performance a bit.

It touched a lot of features as we heavily rely on this 

```
Select one
Select multiple with drag
Select multiple with shift
Select multiple with cmd/ctrl
Selections should be on the same level of hierarchy
Unselect all by clicking on the canvas
Unselect all by pressing esc
Select all with cmd + a
Paste in main container
Paste in another container
Undo
Redo
Modal Selection
Modal child selection
Context switching
cmd click
snipping mode
new widget suggestion
onboarding
```

> Refactor widget selection logic

Fixes #19570

## Type of change

- Refactor


## How Has This Been Tested?

All existing tests should pass

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1383570810

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1383607820

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1385095478
[Bug bash
issues](https://www.notion.so/appsmith/610aa302f3e146a7b090b7dc6bc63ef9?v=0d277a9b07bf4aac9d717bcaf138c33a)

## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-28 07:47:06 +05:30

66 lines
2.5 KiB
TypeScript

import initSagas from "../src/sagas/InitSagas";
import apiPaneSagas from "../src/sagas/ApiPaneSagas";
import jsPaneSagas from "../src/sagas/JSPaneSagas";
import userSagas from "@appsmith/sagas/userSagas";
import pluginSagas from "../src/sagas/PluginSagas";
import workspaceSagas from "@appsmith/sagas/WorkspaceSagas";
import importedCollectionsSagas from "../src/sagas/CollectionSagas";
import providersSagas from "../src/sagas/ProvidersSaga";
import curlImportSagas from "../src/sagas/CurlImportSagas";
import snipingModeSagas from "../src/sagas/SnipingModeSagas";
import queryPaneSagas from "../src/sagas/QueryPaneSagas";
import modalSagas from "../src/sagas/ModalSagas";
import batchSagas from "../src/sagas/BatchSagas";
import themeSagas from "../src/sagas/ThemeSaga";
import utilSagas from "../src/sagas/UtilSagas";
import saaSPaneSagas from "../src/sagas/SaaSPaneSagas";
import actionExecutionChangeListeners from "../src/sagas/WidgetLoadingSaga";
import globalSearchSagas from "../src/sagas/GlobalSearchSagas";
import websocketSagas from "../src/sagas/WebsocketSagas/WebsocketSagas";
import debuggerSagas from "../src/sagas/DebuggerSagas";
import { watchActionSagas } from "sagas/ActionSagas";
import { watchActionExecutionSagas } from "@appsmith/sagas/ActionExecution/ActionExecutionSagas";
import widgetOperationSagas from "../src/sagas/WidgetOperationSagas";
import applicationSagas from "../src/sagas/ApplicationSagas";
import { watchDatasourcesSagas } from "sagas/DatasourcesSagas";
import { watchJSActionSagas } from "sagas/JSActionSagas";
import selectionCanvasSagas from "../src/sagas/CanvasSagas/SelectionCanvasSagas";
import draggingCanvasSagas from "../src/sagas/CanvasSagas/DraggingCanvasSagas";
import formEvaluationChangeListener from "../src/sagas/FormEvaluationSaga";
import LintingSaga from "../src/sagas/LintingSagas";
import JSLibrarySaga from "../src/sagas/JSLibrarySaga";
export const sagasToRunForTests = [
initSagas,
watchActionSagas,
watchActionExecutionSagas,
widgetOperationSagas,
watchDatasourcesSagas,
applicationSagas,
apiPaneSagas,
jsPaneSagas,
userSagas,
pluginSagas,
workspaceSagas,
importedCollectionsSagas,
providersSagas,
curlImportSagas,
snipingModeSagas,
queryPaneSagas,
modalSagas,
batchSagas,
themeSagas,
actionExecutionChangeListeners,
formEvaluationChangeListener,
utilSagas,
saaSPaneSagas,
globalSearchSagas,
websocketSagas,
debuggerSagas,
watchJSActionSagas,
selectionCanvasSagas,
draggingCanvasSagas,
LintingSaga,
JSLibrarySaga,
];