PromucFlow_constructor/app/client/cypress/support/index.d.ts
albinAppsmith 834c0f8280
chore: Cypress - add pane interactions (#32091)
## Description

Added cypress test for add pane interactions.

Fixes #31868

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!CAUTION]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8504922496>
> Commit: `0c74a26f4c959c84bf308876e4c0740e0c45ca90`
> Cypress dashboard: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8504922496&attempt=1&selectiontype=test&testsstatus=failed&specsstatus=fail"
target="_blank"> Click here!</a>
> The following are new failures, please fix them before merging the PR:
<ol>
>
<li>cypress/e2e/Regression/ClientSide/AppNavigation/AppNavigationWithMultiplePages_spec.ts
</ol>
> To know the list of identified flaky tests - <a
href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master"
target="_blank">Refer here</a>

<!-- end of auto-generated comment: Cypress test results  -->











<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced test cases for adding panes in the IDE, covering various
tab interactions.
- Added the ability to switch between full screen and split screen modes
in the IDE.

- **Tests**
	- Added a new Cypress custom command for easier test maintenance.

- **Refactor**
- Enhanced testability by adding `data-testid` attributes across various
IDE components for improved element selection in tests.
- Improved code clarity through reorganization and reformatting of
component properties.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
2024-04-02 10:06:54 +05:30

181 lines
6.1 KiB
TypeScript

/// <reference types="cypress" />
declare namespace Cypress {
interface Chainable<Subject> {
SignupFromAPI(uname: string, password: string);
dragTo(subject: any, targetEl: any);
downloadData(filetype: string);
validateDownload(fileName: string);
AddFilterWithOperator(
operator: string,
option: string,
condition: string,
value: string,
);
stubPostHeaderReq();
addOAuth2ClientCredentialsDetails(
accessTokenUrl: string,
clientId: string,
clientSecret: string,
scope: string,
);
addOAuth2AuthorizationCodeDetails(
accessTokenUrl: string,
clientId: string,
clientSecret: string,
authURL: string,
);
testSelfSignedCertificateSettingsInREST(isOAuth2: boolean);
addBasicProfileDetails(username: string, password: string);
DeleteApp(appName: string);
GetUrlQueryParams();
LogOutUser();
LoginUser(uname: string, pword: string, goToLoginPage?: boolean);
LogintoApp(uname: string, pword: string);
LogintoAppTestUser(uname: string, pword: string);
Signup(uname: string, pword: string);
LoginFromAPI(uname: string, pword: string);
DeletepageFromSideBar();
LogOut(toCheckgetPluginForm?: boolean);
SearchApp(appname: string);
WaitAutoSave();
SelectAction(action: string);
ClearSearch();
paste($element: any, text: string);
clickTest(testbutton: string);
EvaluateCurrentValue(
currentValue: string,
isValueToBeEvaluatedDynamic?: boolean,
);
tabPopertyUpdate(tabId: string, newTabName: string);
generateUUID();
addDsl(dsl: any);
DeleteAppByApi();
DeleteWorkspaceByApi();
togglebar(value: string);
radiovalue(value: string, value2: string);
optionValue(value: string, value2: string);
typeIntoDraftEditor(selector: string, text: string);
getPluginFormsAndCreateDatasource();
NavigateToJSEditor();
importCurl();
selectAction(option: string);
deleteActionAndConfirm();
deleteJSObject();
deleteDataSource();
dragAndDropToCanvas(widgetType: string, { x: number, y: number });
dragAndDropToWidget(
widgetType: string,
destinationWidget: string,
{ x: number, y: number },
);
dragAndDropToWidgetBySelector(
widgetType: string,
destinationSelector: string,
{ x: number, y: number },
);
changeButtonColor(buttonColor: string);
closePropertyPane();
onClickActions(
forSuccess: string,
forFailure: string,
actionType: string,
actionValue: string,
idx?: number,
);
isSelectRow(index: number);
getDate(date: number, dateFormate: string);
setDate(date: number, dateFormate: string);
pageNo();
pageNoValidate(index: number);
validateDisableWidget(widgetCss: string, disableCss: string);
validateToolbarVisible(widgetCss: string, toolbarCss: string);
validateToolbarHidden(widgetCss: string, toolbarCss: string);
validateEnableWidget(widgetCss: string, disableCss: string);
validateHTMLText(widgetCss: string, htmlTag: string, value: string);
setTinyMceContent(tinyMceId: string, content: string);
startRoutesForDatasource();
startServerAndRoutes();
startErrorRoutes();
NavigateToPaginationTab();
ValidateTableData(value: string);
ValidateTableV2Data(value: string);
ValidatePublishTableData(value: string);
ValidatePublishTableV2Data(value: string);
ValidatePaginateResponseUrlData(runTestCss: string);
ValidatePaginateResponseUrlDataV2(runTestCss: string);
ValidatePaginationInputData(valueToTest: string);
ValidatePaginationInputDataV2(valueToTest: string);
CheckForPageSaveError();
assertPageSave(validateSavedState?: boolean);
validateCodeEditorContent(selector: string, contentToValidate: string);
updateMapType(mapType: string);
createJSObject(JSCode: string);
createSuperUser();
SignupFromAPI(uname: string, pword: string);
startInterceptRoutesForMySQL();
startInterceptRoutesForMongo();
startInterceptRoutesForS3();
replaceApplicationIdForInterceptPages(fixtureFile: string);
paste(selector: string, pastePayload: string);
typeValueNValidate(
valueToType: string,
fieldName?: string,
isDynamic?: boolean,
);
checkCodeInputValue(selector: string);
clickButton(btnVisibleText: string, toForceClick?: boolean);
actionContextMenuByEntityName(
entityNameinLeftSidebar: string,
action?: string,
subActions: string,
);
selectEntityByName(entityNameinLeftSidebar: string);
EvaluatFieldValue(fieldName?: string, currentValue?: string);
renameWithInPane(renameVal: string);
getEntityName();
VerifyErrorMsgAbsence(errorMsgToVerifyAbsence: string);
VerifyErrorMsgPresence(errorMsgToVerifyAbsence: string);
setQueryTimeout(timeout: string);
VerifyNoDataDisplayAbsence();
isNotInViewport(element: string);
isInViewport(element: string);
CheckAndUnfoldEntityItem(item: string);
DeleteEntityStateLocalStorage();
checkLabelForWidget(options: string);
saveLocalStorageCache();
restoreLocalStorageCache();
StopContainer(path: string, containerName: string);
StopAllContainer(path: string);
StartContainer(path: string, containerName: string);
StartNewContainer(
url: string,
path: string,
version: string,
containerName: string,
);
GetPath(path: string, containerName: string);
GetCWD(path: string);
GetAndVerifyLogs(path: string, containerName: string);
typeTab();
CreatePage();
GenerateCRUD();
AddPageFromTemplate();
verifyCallCount(alias: string, expectedNumberOfCalls: number);
RenameWidgetFromPropertyPane(
widgetType: string,
oldName: string,
newName: string,
);
forceVisit(url: string);
SelectDropDown(dropdownOption: string);
RemoveMultiSelectItems(dropdownOptions: string[]);
RemoveAllSelections();
SelectFromMultiSelect(options: string);
skipSignposting();
stubPricingPage();
validateEvaluatedValue(value: string);
selectByTestId(value: string): Chainable<JQuery<HTMLElement>>;
}
}