## Description This PR added cypress test for canvas view mode. Fixes #31874 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8534736683> > Commit: `f1d8cc5c4437571b5bbe9a43e892068ae774c75f` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8534736683&attempt=1" target="_blank">Click here!</a> > All cypress tests have passed 🎉🎉🎉 <!-- 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 testing functionality for Canvas view mode in IDE, including various interactions and validations. - Added a new Cypress command for asserting the presence and content of tooltips. - Enhanced tooltip message customization in the Canvas view mode with a new message creation function. - **Refactor** - Improved code organization in Canvas support files with better method implementations. - **Tests** - Added end-to-end tests for new and existing functionalities related to the Canvas view mode. - **Documentation** - Updated Cypress support documentation with the new `assertTooltipPresence` method. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
182 lines
6.2 KiB
TypeScript
182 lines
6.2 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>>;
|
|
assertTooltipPresence(tooltipSelector: string, expectedText: string);
|
|
}
|
|
}
|