PromucFlow_constructor/app/client/cypress/support/Pages/AggregateHelper.ts

2165 lines
61 KiB
TypeScript
Raw Normal View History

import "cypress-wait-until";
import { v4 as uuidv4 } from "uuid";
import { ObjectsRegistry } from "../Objects/Registry";
import type CodeMirror from "codemirror";
import type { EntityItemsType } from "./AssertHelper";
import { EntityItems } from "./AssertHelper";
import EditorNavigator from "./EditorNavigation";
import { EntityType } from "./EditorNavigation";
import ClickOptions = Cypress.ClickOptions;
type ElementType = string | JQuery<HTMLElement>;
interface DeleteParams {
action: "Copy to page" | "Move to page" | "Delete" | "Prettify code";
subAction?: string;
entityType?: EntityItemsType;
toastToValidate?: string;
}
interface SubActionParams {
subAction: string;
index?: number;
force?: boolean;
toastToValidate?: string;
}
interface SelectAndValidateParams {
clickOptions?: Partial<ClickOptions>;
widgetName: string;
widgetType?: EntityType;
hierarchy?: string[];
propFieldName: string;
valueToValidate: string;
toggleEle?: string | null;
}
let LOCAL_STORAGE_MEMORY: any = {};
export interface IEnterValue {
propFieldName: string;
directInput: boolean;
inputFieldName: string;
apiOrQuery?: "api" | "query";
}
const DEFAULT_ENTERVALUE_OPTIONS = {
propFieldName: "",
directInput: false,
inputFieldName: "",
};
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
export class AggregateHelper {
private locator = ObjectsRegistry.CommonLocators;
private assertHelper = ObjectsRegistry.AssertHelper;
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
public get isMac() {
return Cypress.platform === "darwin";
}
private selectLine = `${
this.isMac ? "{cmd}{shift}{leftArrow}" : "{shift}{home}"
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
}`;
public get removeLine() {
return "{backspace}";
}
public _modifierKey = `${this.isMac ? "meta" : "ctrl"}`;
private selectAll = `${this.isMac ? "{cmd}{a}" : "{ctrl}{a}"}`;
private lazyCodeEditorFallback = ".t--lazyCodeEditor-fallback";
private lazyCodeEditorRendered = ".t--lazyCodeEditor-editor";
private toolTipSpan = ".rc-tooltip-inner span";
_walkthroughOverlay = ".t--walkthrough-overlay";
_walkthroughOverlayClose = ".t--walkthrough-overlay .t--walkthrough-close";
_walkthroughOverlayTitle = (title: string) =>
`//div[contains(@class, 't--walkthrough-overlay')]//p[text()='${title}']`;
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
private selectChars = (noOfChars: number) =>
`${"{leftArrow}".repeat(noOfChars) + "{shift}{cmd}{leftArrow}{backspace}"}`;
// Chrome asks for permission to add text to clipboard on cypress, we grant it here.
public GiveChromeCopyPermission() {
cy.wrap(
Cypress.automation("remote:debugger:protocol", {
command: "Browser.grantPermissions",
params: {
permissions: ["clipboardReadWrite", "clipboardSanitizedWrite"],
origin: window.location.origin,
},
}),
);
}
public SaveLocalStorageCache() {
Object.keys(localStorage).forEach((key) => {
LOCAL_STORAGE_MEMORY[key] = localStorage[key];
});
}
public RestoreLocalStorageCache() {
Object.keys(LOCAL_STORAGE_MEMORY).forEach((key) => {
localStorage.setItem(key, LOCAL_STORAGE_MEMORY[key]);
});
}
public ClearLocalStorageCache() {
localStorage.clear();
LOCAL_STORAGE_MEMORY = {};
}
2022-06-21 11:22:55 +00:00
public TypeTab(shiftKey = false, ctrlKey = false) {
cy.focused().trigger("keydown", {
keyCode: 9,
which: 9,
shiftKey: shiftKey,
ctrlKey: ctrlKey,
});
}
public SimulateCopyPaste(action: "copy" | "paste" | "cut") {
const actionToKey = {
copy: "c",
paste: "v",
cut: "x",
};
const keyToSimulate = actionToKey[action];
// Simulate Ctrl keypress (Ctrl down)
this.GetElement(this.locator._body).type(`{${this._modifierKey}}`, {
release: false,
});
// Simulate 'C' keypress while Ctrl is held (Ctrl + C)
this.GetElement(this.locator._body).type(keyToSimulate, { release: false });
// Release the Ctrl key
this.GetElement(this.locator._body).type(`{${this._modifierKey}}`, {
release: true,
});
}
test: Extract `pageId` with regex to cover more cases (#34521) There's a few places in Cypress tests that are trying to extract the page ID using `.split`, especially with just the path information, instead of the whole URL. So this PR changes the extraction implementation to use a regex, to support all three cases we need: 1. Full absolute application+page URL. 2. Just the path of an application+page URL. 3. Just the path of an application with a custom slug. 4. Full absolute application with a custom slug. (Supported, but we don't need this today). We've also fixed the URL parsing for the (very) old application URLs that didn't use slugs in the URL at all. This was making `FocusEntity.test.ts` fail. Fixed that test as well as improved it's error reporting. Before this PR: ![shot-2024-06-27-05-02-16](https://github.com/appsmithorg/appsmith/assets/120119/f3363376-a74d-4f3e-8196-5e72a9e758de) After this PR: ![shot-2024-06-27-05-03-15](https://github.com/appsmithorg/appsmith/assets/120119/8dc1be04-c60f-4251-acf0-e4fd962f4f00) No conflicts to EE. /test all <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9713573983> > Commit: 49edbce5ae85ee7fe9f4d2df05e2933347ddb3f4 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9713573983&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved URL handling by centralizing page ID extraction logic across various tests and components. - Updated deprecated path constants to include ID extraction patterns for better consistency. - Enhanced code readability and maintainability by moving page ID extraction to a helper method. - **Tests** - Modified test cases to dynamically set `applicationId` and `pageId` instead of hardcoding values, ensuring more flexible and maintainable test scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-02 01:01:59 +00:00
/**
* Extract the pageId out of the URL, supporting both ObjectID and UUIDv4 values. This implementation is for tests
* only. Do NOT copy this over to production code.
* @param urlFragment can be either a full absolute URL (like https://dev.appsmith.com/app/name/page1-...) or just a
* path fragment (like /app/name/page1-...) or even a custom slug URL (like /app/custom-slug-...).
*/
public extractPageIdFromUrl(urlFragment: string): null | string {
return (
test: Extract `pageId` with regex to cover more cases (#34521) There's a few places in Cypress tests that are trying to extract the page ID using `.split`, especially with just the path information, instead of the whole URL. So this PR changes the extraction implementation to use a regex, to support all three cases we need: 1. Full absolute application+page URL. 2. Just the path of an application+page URL. 3. Just the path of an application with a custom slug. 4. Full absolute application with a custom slug. (Supported, but we don't need this today). We've also fixed the URL parsing for the (very) old application URLs that didn't use slugs in the URL at all. This was making `FocusEntity.test.ts` fail. Fixed that test as well as improved it's error reporting. Before this PR: ![shot-2024-06-27-05-02-16](https://github.com/appsmithorg/appsmith/assets/120119/f3363376-a74d-4f3e-8196-5e72a9e758de) After this PR: ![shot-2024-06-27-05-03-15](https://github.com/appsmithorg/appsmith/assets/120119/8dc1be04-c60f-4251-acf0-e4fd962f4f00) No conflicts to EE. /test all <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9713573983> > Commit: 49edbce5ae85ee7fe9f4d2df05e2933347ddb3f4 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9713573983&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved URL handling by centralizing page ID extraction logic across various tests and components. - Updated deprecated path constants to include ID extraction patterns for better consistency. - Enhanced code readability and maintainability by moving page ID extraction to a helper method. - **Tests** - Modified test cases to dynamically set `applicationId` and `pageId` instead of hardcoding values, ensuring more flexible and maintainable test scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-07-02 01:01:59 +00:00
urlFragment.match(
/\/app(?:\/[^/]+)?\/[^/]+-([0-9a-f]{24}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\b/,
)?.[1] ?? null
);
}
public AddDsl(
dslFile: string,
elementToCheckPresenceaftDslLoad: string | "" = "", // reloadWithoutCache = true,
) {
let layoutId;
chore: Conversion and Copy Paste tests for Autolayout (#23702) ## Description Add Auto layout related test cases for Conversion algorithm and copy paste test cases #### PR fixes following issue(s) Fixes #23642 Fixes #23644 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### How Has This Been Tested? - [ ] Cypress #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-09 14:40:12 +00:00
let appId: string | null;
cy.fixture(dslFile).then((val) => {
cy.url().then((url) => {
const pageid = this.extractPageIdFromUrl(url);
expect(pageid).to.not.be.null;
//Fetch the layout id
cy.request("GET", "api/v1/pages/" + pageid).then((response: any) => {
const respBody = JSON.stringify(response.body);
const parsedData = JSON.parse(respBody).data;
layoutId = parsedData.layouts[0].id;
appId = parsedData.applicationId;
// Dumping the DSL to the created page
cy.request({
method: "PUT",
url:
"api/v1/layouts/" +
layoutId +
"/pages/" +
pageid +
"?applicationId=" +
appId,
body: val,
headers: {
"X-Requested-By": "Appsmith",
},
}).then((dslDumpResp) => {
expect(dslDumpResp.status).equal(200);
test: Cypress | CI Stabilize + Other test improvements (#28172) ## Description - **This PR flaky fixes below specs:** - GenerateCRUD/MySQL2_Spec.ts script fix - ServerSide/ApiTests/API_All_Verb_spec.js - Regression/Apps/PromisesApp_spec.js - TableV2_Property_ToggleJs_With_Binding_spec.js - GSheet cases failures due to EditApponHover method fix - Radio/Radio2_spec.ts, using `GetHeight` instead of `GetWidgetCSSHeight` - Select/Select3_Spec.ts - Widgets/Text/Text_new_feature_spec.js - Binding/API_with_List_Widget_spec.js - Workspace/LoginFromUIApp_spec.js - removed redundant code - QueryPane/DSDocs_Spec.ts - ServerSide/QueryPane/GoogleSheets_spec.ts - TableV2/Date_column_editing_1_spec.ts - Git/ExistingApps/v1.9.24/DSCrudAndBindings_Spec.ts - script flow corrected - ServerSide/QueryPane/Mongo_Spec.js - **Added validation for form plugin response data, which addresses the Empty toast issue** - **Below specs are fixed for new appName localStorage changes:** - /SettingsPane/PageSettings_spec.ts - BugTests/Moment_Spec.ts - /Fork/ForkAppWithMultipleDS_Spec.ts - Fork/ForkApplicationWithinAppEditor_spec.ts - Fork/ForkApplication_spec.ts - /ClientSide/OtherUIFeatures/Analytics_spec.js - OtherUIFeatures/ApplicationURL_spec.js - OtherUIFeatures/ExportApplication_spec.js - Duplicate case removed - OtherUIFeatures/UpdateApplication_spec.js - VisualTests/JSEditorIndent_spec.js - Workspace/WorkspaceImportApplication_spec.js - **Improvemnets:** - deployMode.StubWindowNAssert() improved to validate `getPluginForm` instead of `getWorkspace` - agHelper.AddDsl() improved, removed wait times - appSettings.CheckUrl() - appName url updated - assertHelper.AssertDocumentReady() -removed wait times - assertHelper.AssertNetworkResponseData() - added for `getPluginForm` validation for Page loads - deployMode.DeployApp() -removed wait times - homePage.CreateNewWorkspace() - improved to set localStorage for workspaceName, workspaceId & create new workspace without new name - homePage.CreateNewApplication() - - improved to set localStorage for appName - jsEditor.NavigateToNewJSEditor() - improved to remove tooltip - cy.CreateAppInFirstListedWorkspace() - improved to set localStorage for appName, removed waitTimes, Removed rename of every app for every spec, calling AssertNetworkResponseData(getPluginForm) - cy.DeleteWorkspaceByApi() added - e2e.js - removed guid generation for first app, added cy.DeleteWorkspaceByApi() in after() #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-10-20 02:15:47 +00:00
//this.Sleep(3000); //for dsl to settle in layouts api & then refresh
this.RefreshPage();
if (elementToCheckPresenceaftDslLoad)
this.WaitUntilEleAppear(elementToCheckPresenceaftDslLoad);
// this.Sleep(5000); //settling time for dsl
this.assertHelper.AssertNetworkResponseData("@getConsolidatedData");
this.AssertElementAbsence(this.locator._loading); //Checks the spinner is gone & dsl loaded!
this.AssertElementAbsence(this.locator._animationSpnner, 20000); //Checks page is loaded with dsl!
});
2022-03-25 11:14:12 +00:00
});
});
});
}
public StartRoutes() {
cy.intercept("POST", "/api/v1/actions").as("createNewApi");
cy.intercept("PUT", "/api/v1/actions/*").as("saveAction");
//cy.intercept("POST", "/api/v1/users/invite", (req) => { req.headers["origin"] = "Cypress";}).as("mockPostInvite");
}
public AssertPopoverTooltip(expectedText: string) {
this.GetText(this.locator._popoverToolTip, "text").then(($tooltiptxt) =>
expect($tooltiptxt).to.eq(expectedText),
);
}
/**
*
* @param selector
* @param index
* Checks if the given selector has class with disabled in the class name
* @returns
*/
public AssertElementClassContainsDisabled(selector: string, index = 0) {
return this.GetElement(selector)
.eq(index)
.should(($element) => {
const elementClass = $element.attr("class");
expect(elementClass).to.include("disabled");
});
}
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
private rename(args: {
nameLocator: string;
textInputLocator: string;
renameVal: string;
dblClick?: boolean;
willFailError?: string;
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
}) {
const { dblClick = false, nameLocator, renameVal, textInputLocator } = args;
this.Sleep(300);
if (dblClick) {
cy.get(nameLocator).dblclick({ force: true });
} else {
this.GetNClick(nameLocator, 0, true);
}
cy.get(textInputLocator)
.clear({ force: true })
.type(renameVal, { force: true, delay: 0 })
.should("have.value", renameVal);
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
if (args.willFailError) {
this.AssertContains(args.willFailError, "exist", ".ads-v2-tooltip");
cy.get(textInputLocator).blur();
} else {
cy.get(textInputLocator).blur();
this.PressEnter();
}
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
this.Sleep();
}
public RenameDatasource(renameVal: string) {
this.rename({
nameLocator: this.locator._dsName,
textInputLocator: this.locator._dsNameTxt,
renameVal,
});
this.AssertElementVisibility(this.locator._editIcon);
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
}
public RenameQuery(renameVal: string, willFailError?: string) {
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
this.rename({
chore: entity tabs replacement (#38989) ## Description Replacing entity tab bar and components with ADS templates. Fixes #37647 Fixes #37775 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13172995565> > Commit: f3db2d920ded4aec290af6bc48278a59a04b8db8 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13172995565&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 06 Feb 2025 07:56:59 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 ## Summary by CodeRabbit - **New Features** - Enhanced tab interaction: The add button now supports dynamic visibility and a loading indicator when new tabs are being created. - Improved editing: Tab labels now feature refined controls for entering and exiting edit mode, offering a more flexible user experience. - New `EntityTabsHeader` component added to enhance tab management. - Updated tab structure to utilize `DismissibleTab` for improved functionality. - Introduced new props for `DismissibleTabBar` to allow for additional styling and control over add button visibility. - New properties added to `DismissibleTab` for greater interactivity and customization. - Additional properties introduced to `EditableDismissibleTab` for enhanced editing capabilities. - **Refactor** - Streamlined the tab interface by replacing legacy components with modern, responsive alternatives, simplifying the overall design and interaction. - Enhanced event handling and state management for better performance and user experience. - Updated import paths and component structures for clarity and maintainability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-06 08:33:54 +00:00
nameLocator: this.locator._activeEntityTab,
textInputLocator: this.locator._activeEntityTabInput,
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
renameVal,
dblClick: true,
willFailError,
feat: Enable new toolbar for cypress (#37148) ## Description This PR enabled IDE toolbar for cypress. Fixes #37217 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12115693818> > Commit: f2af8705e91af400b3a80f6684cce7fb487f1ca3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12115693818&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 02 Dec 2024 12:19:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag `release_actions_redesign_enabled` to enhance user experience. - **Bug Fixes** - Updated method calls in various test cases to improve consistency and reliability in interactions, specifically renaming methods related to data sources and queries. - Improved error handling and validation in tests for MongoDB query functionalities. - **Documentation** - Enhanced test coverage and assertions for various functionalities, including API actions, Google Sheets queries, and JavaScript function execution. - **Style** - Updated CSS selectors for improved consistency and maintainability across components and test cases. - **Tests** - Refactored multiple test cases to utilize new helper methods, improving code clarity and reducing direct DOM manipulation. - Enhanced visual tests for JSEditor and improved interaction with the run button. - Added new assertions and enhanced the structure of tests for various components, including API response handling and widget interactions. - Streamlined interaction with the settings toolbar in various test cases by encapsulating functionality within the `PluginActionForm` class. - Introduced new `data-testid` attributes across various components to enhance testability. - **Chores** - Removed unused imports and streamlined method calls for better performance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-12-03 03:51:43 +00:00
});
}
public CheckForPageSaveError() {
// Wait for "saving" status to disappear
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
this.AssertElementAbsence(
this.locator._statusSaving,
Cypress.config("defaultCommandTimeout"),
);
// Check for page save error
cy.get("body").then(($ele) => {
if ($ele.find(this.locator._saveStatusError).length) {
this.RefreshPage();
return false;
}
});
return true;
}
public AssertAutoSave() {
let saveStatus = this.CheckForPageSaveError();
// wait for save query to trigger & n/w call to finish occuring
if (!saveStatus)
test: Cypress | Replace static with Dynamic checks (#29664) ## Description - This PR removed static wait from spec - API_with_List_Widget_spec - Git/GitSync/GitSyncedApps_spec.js (fixes for EE flakyness - WIP - still failing in chrome, pass in electron) - Remove wait from OpenPaneAndChangeThemeColors() & added n/w check - Upgrading Cypress from 13.3 to 13.6 - Flaky fix: - ClientSide/Widgets/Text/Text2_Spec.ts - ClientSide/Widgets/Select/Select2_Spec.ts - cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts - /ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Enhanced Git synchronization capabilities with improved user interface interactions. - Streamlined navigation back to the editor from deployment mode. - Implemented more robust table loading checks to ensure data is properly displayed. - **Bug Fixes** - Fixed issues with element presence assertions to improve test reliability. - Addressed the visibility of certain UI elements to ensure they appear as expected. - **Tests** - Updated end-to-end test scripts to reflect new interactions and assertions. - Added a new test file `GitSyncedApps_spec.js` to cover Git-synced applications. - Removed outdated test file `Fork_Template_spec.js`. - **Refactor** - Improved method calls for querying and interacting with elements to enhance test stability. - Optimized wait conditions for element visibility to reduce flakiness in tests. - **Chores** - Adjusted the GitHub Actions workflow for client-server build to refine output for matrix counts. - Updated CI test workflow to incorporate Electron setup and remove Chrome setup steps. - **Documentation** - Included comments to explain the rationale behind certain timeout values and method changes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-22 11:50:05 +00:00
this.AssertElementAbsence(
this.locator._saveStatusContainer,
Cypress.config("defaultCommandTimeout"),
); //adding timeout since waiting more time is not worth it!
//this.AssertNetworkStatus("@sucessSave", 200);
}
public PopupClose(popUpName: string) {
this.GetNClick(this.locator._popUpCloseBtn(popUpName));
}
public ValidateCodeEditorContent(selector: string, contentToValidate: any) {
// cy.get(selector).each(($ele) => {
// cy.wrap($ele).within(() => {
// cy.get(this.locator._codeMirrorCode).should(
// "include.text",
// contentToValidate,
// );
// });
// });
let isTextContained = false;
cy.get(selector)
.each(($ele) => {
cy.wrap($ele).within(() => {
cy.get(this.locator._codeMirrorCode)
.invoke("text")
.then((text) => {
if (contentToValidate.includes(text)) {
isTextContained = true;
}
});
});
})
.then(() => {
expect(isTextContained).to.be.true;
});
}
public GetElement(
selector: ElementType,
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
exists: "exist" | "not.exist" | "noVerify" = "exist",
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
timeout = Cypress.config("pageLoadTimeout"),
) {
let locator;
expect(selector).to.not.be.undefined;
if (typeof selector == "string") {
locator =
selector.startsWith("//") || selector.startsWith("(//")
? cy.xpath(selector, {
timeout,
})
: cy.get(selector, {
timeout,
});
} else locator = cy.wrap(selector);
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
return exists === "noVerify"
? locator // Return the locator without verification if exists is "noVerify"
: exists === "exist"
? locator.should("have.length.at.least", 1)
: locator.should("have.length", 0);
}
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
public GetNAssertElementText(
selector: string,
text: string,
fix: puts navbar functionality behind feature flag (#24561) ## Description This PR puts shownavbar functionality behind a feature flag. * adds analytics events to track apps that use this flag. * updates relevant specs. #### PR fixes following issue(s) Fixes #24515 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [x] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] 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 - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-22 05:00:24 +00:00
textPresence:
| "have.text"
| "not.have.text"
| "contain.text"
| "not.contain.text" = "have.text",
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
index = 0,
) {
if (index >= 0)
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
this.ScrollIntoView(selector, index).should(textPresence, text);
else this.GetElement(selector).should(textPresence, text);
}
public GetElementsNAssertTextPresence(selector: string, text: string) {
this.GetElement(selector).then(($elements: any) => {
let found = false;
$elements.each((index: any, element: any) => {
const eleText = Cypress.$(element).text().trim();
if (eleText === text) {
found = true;
return false; // Exit the loop if the expected text is found
}
});
expect(found).to.be.true;
});
}
public ValidateToastMessage(text: string, index = 0, length = 1) {
if (index != 0) {
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
this.GetElement(this.locator._toastMsg, "noVerify")
.should("have.length.at.least", length)
.eq(index)
.should("contain.text", text);
} else this.GetNAssertContains(this.locator._toastMsg, text);
}
public AssertTooltip(toolTipText: string) {
this.GetNAssertContains(this.toolTipSpan, toolTipText);
}
test: Cypress | CI Stablize + Other improvements (#28254) ## Description **This PR does the below improvements:** - Handles initial empty error toast- with cy.LogOut() - Calling cy.LoginFromAPI() per need only - to improve execution time - Update agHelper.UpdateCodeInput() - Added waitForNetworkCall for AsserHelper methods to only get api call & validate - Added gitSync.AuthorizeKeyToGitea() - to validate keyGenerate success - Adding validationg for 'Unable to import application in workspace' - cy.CreateNewAppInNewWorkspace() improved - agHelper.RemoveUIElement() created to handle tooltip, toast, evaluatedpopup & removed duplicates - cy.merge() improved to call assertHelper - assertHelper.AssertNetworkStatus() to handle both array & individual status checks & return actual responseCode - createBranch & generatedKey intercepts added to git operation validations - homePage.AssertApplication() created - Removed cy.Logout() & Login improved - brings down total run time to less than 1 hr from 1+ hrs - entityExplorer.NavigateToSwitcher() improved to check status - dataSources.ValidateDSDeletion() improved to handle one of array toast for array value also - assertHelper.WaitForNetworkCall() improved to wait & return latest request - Private methods processNetworkStatus() & processNetworkResponseData() created **Also flaky fixes below:** - ServerSide/QueryPane/S3_2_spec.ts - Adding sleep for CI flaky behaviour - Trial fix for cypress/e2e/Regression/ClientSide/OtherUIFeatures/PageOnLoad_spec.ts - GitWithJSLibrary/GitwithCustomJSLibrary_spec.js - Handling Import failure at various points in the flow - ExplorerTests/Widgets_Copy_Paste_Delete_Undo_Keyboard_Event_spec.js - ClientSide/JSLibrary/Library_spec.ts - asserting success import - /OtherUIFeatures/ApplicationURL_spec.js - using cy.url() - /ClientSide/Templates/Fork_Template_spec.js - ServerSide/Postgres_DataTypes/Binary_Spec.ts & /Postgres_DataTypes/Json_Spec.ts - Adding sleep for CI flaky behaviour - ClientSide/Widgets/List/List4_2_spec.js - /Git/ExistingApps/v1.9.24/DSCrudAndBindings_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-10-25 14:03:07 +00:00
public RemoveUIElement(
elementToRemove: "EvaluatedPopUp" | "Tooltip" | "Toast",
toolTipOrToasttext = "",
) {
cy.get("body").then(($body) => {
test: Cypress | CI Stablize + Other improvements (#28254) ## Description **This PR does the below improvements:** - Handles initial empty error toast- with cy.LogOut() - Calling cy.LoginFromAPI() per need only - to improve execution time - Update agHelper.UpdateCodeInput() - Added waitForNetworkCall for AsserHelper methods to only get api call & validate - Added gitSync.AuthorizeKeyToGitea() - to validate keyGenerate success - Adding validationg for 'Unable to import application in workspace' - cy.CreateNewAppInNewWorkspace() improved - agHelper.RemoveUIElement() created to handle tooltip, toast, evaluatedpopup & removed duplicates - cy.merge() improved to call assertHelper - assertHelper.AssertNetworkStatus() to handle both array & individual status checks & return actual responseCode - createBranch & generatedKey intercepts added to git operation validations - homePage.AssertApplication() created - Removed cy.Logout() & Login improved - brings down total run time to less than 1 hr from 1+ hrs - entityExplorer.NavigateToSwitcher() improved to check status - dataSources.ValidateDSDeletion() improved to handle one of array toast for array value also - assertHelper.WaitForNetworkCall() improved to wait & return latest request - Private methods processNetworkStatus() & processNetworkResponseData() created **Also flaky fixes below:** - ServerSide/QueryPane/S3_2_spec.ts - Adding sleep for CI flaky behaviour - Trial fix for cypress/e2e/Regression/ClientSide/OtherUIFeatures/PageOnLoad_spec.ts - GitWithJSLibrary/GitwithCustomJSLibrary_spec.js - Handling Import failure at various points in the flow - ExplorerTests/Widgets_Copy_Paste_Delete_Undo_Keyboard_Event_spec.js - ClientSide/JSLibrary/Library_spec.ts - asserting success import - /OtherUIFeatures/ApplicationURL_spec.js - using cy.url() - /ClientSide/Templates/Fork_Template_spec.js - ServerSide/Postgres_DataTypes/Binary_Spec.ts & /Postgres_DataTypes/Json_Spec.ts - Adding sleep for CI flaky behaviour - ClientSide/Widgets/List/List4_2_spec.js - /Git/ExistingApps/v1.9.24/DSCrudAndBindings_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-10-25 14:03:07 +00:00
switch (elementToRemove) {
case "EvaluatedPopUp":
if ($body.find(this.locator._evalPopup).length > 0) {
this.GetElement(this.locator._evalPopup).then(($evalPopUp) => {
$evalPopUp.remove();
});
}
break;
case "Tooltip":
if (
$body.find(this.locator._appLeveltooltip(toolTipOrToasttext))
.length > 0
) {
this.GetElement(this.locator._appLeveltooltip(toolTipOrToasttext))
.parents("div.rc-tooltip")
.then(($tooltipElement) => {
$tooltipElement.remove();
});
}
break;
case "Toast":
if (
$body.find(
this.locator._toastContainer +
" span:contains(" +
toolTipOrToasttext +
")",
).length > 0
) {
this.GetElement(
this.locator._toastContainer +
":has(:contains('" +
toolTipOrToasttext +
"'))",
).then(($toastContainer) => {
$toastContainer.remove();
});
}
break;
}
});
}
public ClickButton(
btnVisibleText: string,
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
indexOrOptions:
| number
| Partial<{
index: number;
force: boolean;
waitAfterClick: boolean;
sleepTime: number;
type?: "click" | "invoke";
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
}> = 0,
) {
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
const button = this.locator._buttonByText(btnVisibleText);
let index: number,
force = true,
waitAfterClick = true,
waitTime = 1000,
type = "click";
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
if (typeof indexOrOptions === "number") {
index = indexOrOptions;
} else {
index = indexOrOptions.index || 0;
force =
typeof indexOrOptions.force !== "undefined"
? indexOrOptions.force
: true;
// waitAfterClick = indexOrOptions.waitAfterClick || false;
// Check if waitAfterClick is explicitly set, otherwise default to true
waitAfterClick =
typeof indexOrOptions.waitAfterClick !== "undefined"
? indexOrOptions.waitAfterClick
: true;
waitTime = indexOrOptions.sleepTime || 1000;
type = indexOrOptions?.type || "click";
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
}
const element = this.ScrollIntoView(button, index);
if (type == "invoke") {
return element.invoke("click").then(() => {
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
if (waitAfterClick) {
return this.Sleep(waitTime);
}
});
}
return element.click({ force }).then(() => {
if (waitAfterClick) {
return this.Sleep(waitTime);
}
});
}
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
public clickMultipleButtons(btnVisibleText: string, waitAfterClick = true) {
cy.xpath(this.locator._buttonByText(btnVisibleText)).each(($el) => {
$el.trigger("click", { force: true });
cy.wait(200);
});
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
waitAfterClick && this.Sleep();
}
public Paste(selector: any, pastePayload: string) {
cy.wrap(selector).then(($destination) => {
const pasteEvent = Object.assign(
new Event("paste", { bubbles: true, cancelable: true }),
{
clipboardData: {
getData: () => pastePayload,
},
},
);
$destination[0].dispatchEvent(pasteEvent);
});
}
public WaitUntilToastDisappear(
msgToCheckforDisappearance: string | "",
index = 0,
length = 1,
) {
this.ValidateToastMessage(msgToCheckforDisappearance, index, length);
cy.waitUntil(() => cy.get(this.locator._toastMsg), {
errorMsg: msgToCheckforDisappearance + " did not disappear",
timeout: 5000,
interval: 1000,
}).then(($ele) => {
cy.wrap($ele)
//.contains(msgToCheckforDisappearance)
.should("have.length", 0);
this.Sleep();
});
}
public WaitUntilEleDisappear(selector: string) {
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
cy.waitUntil(() => this.GetElement(selector, "not.exist"), {
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
errorMsg:
"Element did not disappear after " +
Cypress.config().pageLoadTimeout +
"seconds",
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
timeout: Cypress.config().pageLoadTimeout,
interval: 1000,
});
}
public WaitUntilAllToastsDisappear() {
cy.get("body").then(($body) => {
if ($body.find(this.locator._toastContainer).length > 0) {
this.GetElement(this.locator._toastContainer).waitUntil(
($ele) => cy.wrap($ele).should("have.length", 0),
{
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
errorMsg:
"Toasts did not disappear even after " +
Cypress.config().defaultCommandTimeout +
" seconds",
timeout: Cypress.config().defaultCommandTimeout,
interval: 1000,
},
);
}
});
}
chore: update select component (#38954) ![CleanShot 2025-02-03 at 13 51 45](https://github.com/user-attachments/assets/4c7a7a67-c1fc-4fe7-afbb-2342aea27fcc) Few known bugs: 1. --The placeholder value is cleared when the user is searching. This is happening cause we are using hack to put search into dropdown and it is conflicting with native behavior of rc-select-- [](https://github.com/user-attachments/assets/4d40607f-c9c9-4060-9086-cc9d8dc49553) /ok-to-test tags="@tag.All" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a grouped dropdown with checkboxes for multi-select, making option organization more intuitive. - **Enhancements** - Upgraded dropdown search with auto-focus and dynamic filtering. - Improved tag display with responsive limits and an updated "info" style. - Added configuration options to control the number of visible tags. - **Documentation** - Expanded examples to showcase the new grouped and checkbox-enhanced dropdown features. - **Style** - Refined styling and animations for dropdown states, ensuring a fluid and consistent user experience. - **Bug Fixes** - Adjusted selectors in tests to improve interaction with dropdowns, enhancing test reliability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13173050535> > Commit: 33634093ddb9b6d699d8f9c50297c4245bea21fb > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13173050535&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 06 Feb 2025 07:34:34 UTC <!-- end of auto-generated comment: Cypress test results -->
2025-02-06 07:40:25 +00:00
// Note: isVisible is required in case where item exists but is not visible ( hidden by css ),
// For e.g - search input in select widget is not visible,
public WaitUntilEleAppear(selector: string, isVisible = true) {
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
cy.waitUntil(
() =>
this.GetElement(selector)
.should("exist")
chore: update select component (#38954) ![CleanShot 2025-02-03 at 13 51 45](https://github.com/user-attachments/assets/4c7a7a67-c1fc-4fe7-afbb-2342aea27fcc) Few known bugs: 1. --The placeholder value is cleared when the user is searching. This is happening cause we are using hack to put search into dropdown and it is conflicting with native behavior of rc-select-- [](https://github.com/user-attachments/assets/4d40607f-c9c9-4060-9086-cc9d8dc49553) /ok-to-test tags="@tag.All" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a grouped dropdown with checkboxes for multi-select, making option organization more intuitive. - **Enhancements** - Upgraded dropdown search with auto-focus and dynamic filtering. - Improved tag display with responsive limits and an updated "info" style. - Added configuration options to control the number of visible tags. - **Documentation** - Expanded examples to showcase the new grouped and checkbox-enhanced dropdown features. - **Style** - Refined styling and animations for dropdown states, ensuring a fluid and consistent user experience. - **Bug Fixes** - Adjusted selectors in tests to improve interaction with dropdowns, enhancing test reliability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/13173050535> > Commit: 33634093ddb9b6d699d8f9c50297c4245bea21fb > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13173050535&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 06 Feb 2025 07:34:34 UTC <!-- end of auto-generated comment: Cypress test results -->
2025-02-06 07:40:25 +00:00
.should(isVisible ? "be.visible" : "not.be.visible")
.its("length")
.should("be.gte", 1),
{
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
errorMsg:
"Element did not appear even after " +
Cypress.config().pageLoadTimeout +
" seconds",
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
timeout: Cypress.config().pageLoadTimeout,
interval: 2000,
},
);
//Below can be tried if above starts being flaky:
// cy.waitUntil(() => cy.get(selector, { timeout: 50000 }).should("have.length.greaterThan", 0)
//or
// cy.waitUntil(()) => (selector.includes("//") ? cy.xpath(selector) : cy.get(selector))).then(($ele) => { cy.wrap($ele).eq(0).should("be.visible");});
}
public WaitForCondition(conditionFn: any) {
cy.waitUntil(() => conditionFn, {
timeout: Cypress.config("pageLoadTimeout"),
interval: 1000,
});
}
public AssertNetworkDataSuccess(aliasName: string, expectedRes = true) {
cy.wait(1000).wait(aliasName); //Wait a bit for call to finish!
cy.get(aliasName)
.its("response.body.data.success")
.should("eq", expectedRes);
}
public AssertNetworkDataNestedProperty(
aliasName: string,
expectedPath: string,
expectedRes: any,
) {
cy.wait(1000).wait(aliasName); //Wait a bit for call to finish!
cy.get(aliasName).should("have.nested.property", expectedPath, expectedRes);
}
public SelectDropDown(dropdownOption: string, endpoint = "selectwidget") {
2022-06-21 11:22:55 +00:00
const mode = window.localStorage.getItem("inDeployedMode");
if (mode == "false") {
this.GetNClick(this.locator._selectWidgetDropdown(endpoint));
} else {
this.GetNClick(this.locator._selectWidgetDropdownInDeployed(endpoint));
}
if (endpoint == "selectwidget")
cy.get(this.locator._selectOptionValue(dropdownOption)).click({
force: true,
});
else
cy.get(this.locator._dropDownValue(dropdownOption)).click({
force: true,
});
this.Sleep(); //for selected value to reflect!
}
public SelectFromMutliTree(dropdownOption: string) {
this.GetNClick(this.locator._dropDownMultiTreeSelect);
this.GetNClick(this.locator._dropDownMultiTreeValue(dropdownOption));
}
public SelectFromDropDown(
dropdownOption: string,
2022-06-21 11:22:55 +00:00
insideParent = "",
index = 0,
endpoint = "dropdownwidget",
) {
2022-06-21 11:22:55 +00:00
const mode = window.localStorage.getItem("inDeployedMode");
const modeSelector =
mode == "true"
? this.locator._selectWidgetDropdownInDeployed(endpoint)
: this.locator._selectWidgetDropdown(endpoint);
2022-06-21 11:22:55 +00:00
const finalSelector = insideParent
? this.locator._divWithClass(insideParent) + modeSelector
: modeSelector;
this.GetNClick(finalSelector, index);
cy.get(this.locator._dropDownValue(dropdownOption)).click({ force: true });
this.Sleep(); //for selected value to reflect!
}
// public SelectDropdownList(ddName: string, dropdownOption: string) {
// this.GetNClick(this.locator._existingFieldTextByName(ddName));
// cy.get(this.locator._dropdownText).contains(dropdownOption).click();
// }
public SelectFromMultiSelect(
options: string[],
index = 0,
check = true,
endpoint = "multiselectwidgetv2",
) {
this.ScrollIntoView(
this.locator._widgetInDeployed(endpoint) + " div.rc-select-selector",
index,
)
.then(($element: any) => {
// here, we try to click on downArrow in dropdown of multiSelect.
// the position is calculated from top left of the element
const dropdownCenterPosition = +$element.height / 2;
const dropdownArrowApproxPosition = +$element.width - 10;
cy.get($element).click(
dropdownArrowApproxPosition,
dropdownCenterPosition,
{
force: true,
},
);
})
.wait(500); //for dropdown options to settle
if (check) {
options.forEach(($each) => {
cy.get(this.locator._multiSelectOptions($each))
.check({ force: true })
.wait(1000);
cy.get(this.locator._multiSelectOptions($each)).should("be.checked");
});
} else {
options.forEach(($each) => {
cy.get(this.locator._multiSelectOptions($each))
.uncheck({ force: true })
.wait(1000);
cy.get(this.locator._multiSelectOptions($each)).should(
"not.be.checked",
);
});
}
// //closing multiselect dropdown
this.PressEscape();
// cy.get(this.locator._widgetInDeployed(endpoint))
// .eq(index)
// .click()
}
public PressEscape(sleep = 500) {
cy.get("body").type("{esc}");
this.Sleep(sleep);
}
public PressEnter(sleep = 500) {
feat: Add postMessage as a global function (#14925) ## Description **Revert Context -** Reverts appsmithorg/appsmith#14890 (We had to revert the PR as we got some suggestions on improving the feature - now reverting the revert so we can have this feature out with improvements) **PR Context -** This pull request exposes window.postMessage() as a global function in the Appsmith platform. Post message safely enables cross-origin communication between window objects. Example use-case - Appsmith page embedded within an iframe which communicates with the container website Diagram for all the different levels of communication - ![Untitled-2022-09-12-1205](https://user-images.githubusercontent.com/10229595/189592030-98bc29ac-b94e-4c75-8567-965757cc0d18.png) **More on post message here** - https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage **References used for this PR:** 1. Geolocation APIs - https://github.com/appsmithorg/appsmith/pull/9295 2. setInterval and clearInterval support - https://github.com/appsmithorg/appsmith/pull/8158 **Fixes** https://github.com/appsmithorg/appsmith/issues/7241 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Test plan - **Manual**: Created an app with different buttons holding different types of data and embedded it in a code sandbox within an iframe. Also removed the target origin which throws an error (App link - https://dev.appsmith.com/app/post-msg-app/page1-624c1af4d8e632741017682e, Codesandbox link - https://codesandbox.io/s/compassionate-tdd-6dnzzd?file=/src/index.js) - Added Jest tests - https://github.com/appsmithorg/TestSmith/issues/1892 - https://github.com/appsmithorg/TestSmith/issues/2068 - https://github.com/appsmithorg/TestSmith/issues/2069 - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-10-20 07:09:42 +00:00
cy.get("body").type("{enter}");
this.Sleep(sleep);
feat: Add postMessage as a global function (#14925) ## Description **Revert Context -** Reverts appsmithorg/appsmith#14890 (We had to revert the PR as we got some suggestions on improving the feature - now reverting the revert so we can have this feature out with improvements) **PR Context -** This pull request exposes window.postMessage() as a global function in the Appsmith platform. Post message safely enables cross-origin communication between window objects. Example use-case - Appsmith page embedded within an iframe which communicates with the container website Diagram for all the different levels of communication - ![Untitled-2022-09-12-1205](https://user-images.githubusercontent.com/10229595/189592030-98bc29ac-b94e-4c75-8567-965757cc0d18.png) **More on post message here** - https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage **References used for this PR:** 1. Geolocation APIs - https://github.com/appsmithorg/appsmith/pull/9295 2. setInterval and clearInterval support - https://github.com/appsmithorg/appsmith/pull/8158 **Fixes** https://github.com/appsmithorg/appsmith/issues/7241 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? Test plan - **Manual**: Created an app with different buttons holding different types of data and embedded it in a code sandbox within an iframe. Also removed the target origin which throws an error (App link - https://dev.appsmith.com/app/post-msg-app/page1-624c1af4d8e632741017682e, Codesandbox link - https://codesandbox.io/s/compassionate-tdd-6dnzzd?file=/src/index.js) - Added Jest tests - https://github.com/appsmithorg/TestSmith/issues/1892 - https://github.com/appsmithorg/TestSmith/issues/2068 - https://github.com/appsmithorg/TestSmith/issues/2069 - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-10-20 07:09:42 +00:00
}
public PressDelete(sleep = 500) {
cy.get("body").type(`{del}`, { force: true });
this.Sleep(sleep);
}
feat: enabled editor pane sidebar (#29882) ## Description This PR fixes the cypress failures introduced after editor pane #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/29881 #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
2024-01-12 14:43:58 +00:00
public SelectAllWidgets() {
cy.get("body").type(this.isMac ? "{meta}A" : "{ctrl}A");
test: Auto dimension scenarios (#23398) ## Description Adds Cypress tests for ensuring Auto layout's auto-dimension feature works properly #### PR fixes following issue(s) Fixes #23230 Fixes #22580 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-05-30 02:40:13 +00:00
}
public SetCanvasViewportWidth(width: number) {
cy.get(this.locator._canvasViewport).invoke("width", `${width}px`);
}
public ClickOutside(x = 0, y = 0, force = true) {
cy.get("body").click(x, y, { force: force });
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
}
public RemoveMultiSelectItems(items: string[]) {
items.forEach(($each) => {
cy.xpath(this.locator._multiSelectItem($each))
.eq(0)
feat: List V2 (#15839) ## Description TL;DR This is a complete architectural change of of List widget works to support all widgets we currently have and should automatically support any future widgets. It also introduces nested List widgets i.e a list widget can have a another list widget which in turn can have another list widget. Fixes #18206 Fixes #6775 Fixes #13211 Fixes #16582 Fixes #11739 Fixes #15094 Fixes #6840 Fixes #10841 Fixes #17386 Fixes #18340 Fixes #16898 Fixes #17555 Fixes #6858 Fixes #9568 Fixes #17480 Fixes #18523 Fixes #18206 Fixes #16586 Fixes #18106 Fixes #16576 Fixes #14697 Fixes #9607 Fixes #19648 Fixes #19739 Fixes #19652 Fixes #18730 Fixes #19503 Fixes #19498 Fixes #19437 Fixes #5245 Fixes #19150 Fixes #18638 Fixes #11332 Fixes #17901 Fixes #19043 Fixes #17777 Fixes #8237 Fixes #15487 Fixes #15988 Fixes #18621 Fixes #16788 Fixes #18110 Fixes #18382 Fixes #17427 Fixes #18105 Fixes #18287 Fixes #19808 Fixes #14655 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Cypress - Jest - Manual ## Checklist: - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes --------- Co-authored-by: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com>
2023-02-14 16:07:31 +00:00
.click({ force: true })
.wait(1000);
});
}
public ReadSelectedDropDownValue() {
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
return cy.xpath(this.locator._selectedDropdownValue).first().invoke("text");
}
public EnterActionValue(
actionName: string,
value: string,
paste = true,
index = 0,
feat: Action selector (#21582) ## Description Replaces the old boring action selector dropdown with a much more sophisticated UI that is capable of going above and beyond. Users with an aversion to code can now build their more complex workflows with a click of a few buttons. Consider this code snippet ```javascript Api1.run(() => { showAlert("Hello"); navigateTo('Page1', {}, 'SAME_WINDOW'); }, () => { removeValue("test"); }); ``` |**Old action selector** |**New action selector**| |:-:|:-:| |<img width="250" alt="Screenshot 2023-03-29 at 16 54 14" src="https://user-images.githubusercontent.com/32433245/228520661-a639b580-8986-4aec-a0f5-e2786d1a0f56.png">| <img width="250" alt="Screenshot 2023-03-29 at 16 55 15" src="https://user-images.githubusercontent.com/32433245/228521043-5025aa42-af95-4574-b586-bc4c721240bc.png">| **Click on an action block to edit its parameters.** <img width="500" alt="Screenshot 2023-03-29 at 17 01 18" src="https://user-images.githubusercontent.com/32433245/228522479-493769d0-9d2c-4b67-b493-a79e3bb9c947.png"> **Switch to JS mode to get the raw code** <img width="273" alt="Screenshot 2023-03-29 at 17 05 51" src="https://user-images.githubusercontent.com/32433245/228523458-13bc0302-4c94-4176-b5aa-3ec208122f57.png"> ### Code changes **New UI components** - ActionCreator component splits the code into block statements. - Each block statement is represented by ActionTree.tsx UI component. - ActionTree.tsx represents an action and its chains. - ActionCard.tsx is the block that represents the individual action on the UI. - ActionSelector.tsx component is popover that contains the form for editing individual action. - TabView, TextView, SelectorView, ActionSelectorView and KeyValueView are components that represent configurable fields in ActionSelector form. **AST methods** - Added methods to get/set function names, expressions, arguments. - Added methods to get/set then/catch blocks to allow chaining of actions. - Added methods to check if code is convertible to UI. Fixes #10160 Fixes #21588 Fixes #21392 Fixes #21393 Fixes #7903 Fixes #15895 Fixes #17765 Fixes #14562 Depends on https://github.com/appsmithorg/design-system/pull/306 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Manual - Jest - Cypress ### Test Plan https://github.com/appsmithorg/TestSmith/issues/2296 ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [x] Test plan has been approved by relevant developers - [x] Test plan has been peer reviewed by QA - [x] Cypress test cases have been added and approved by either SDET or manual QA - [x] Organized project review call with relevant stakeholders after Round 1/2 of QA - [x] Added Test Plan Approved label after reveiwing all Cypress test --------- Co-authored-by: Rimil Dey <rimil@appsmith.com> Co-authored-by: arunvjn <arun@appsmith.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
2023-04-06 16:49:12 +00:00
parseSpecialCharacters = false,
) {
this.ScrollIntoView(this.locator._actionTextArea(actionName), index)
.parents(".CodeMirror")
.first()
.then((ins: any) => {
const input = ins[0].CodeMirror;
input.focus();
this.Sleep(200);
input.setValue("");
this.Sleep(200);
});
//Not working consistenly, hence commenting
// .focus()
// .type("{uparrow}", { force: true })
// .type("{ctrl}{shift}{downarrow}{del}", { force: true });
cy.focused().then(($cm: any) => {
if ($cm.contents != "") {
this.ScrollIntoView(this.locator._actionTextArea(actionName), index)
.click({ force: true })
.focused()
.clear({
force: true,
});
}
this.Sleep();
this.ScrollIntoView(this.locator._actionTextArea(actionName), index).then(
(el: any) => {
if (paste) {
//input.invoke("val", value);
this.Paste(el, value);
} else {
cy.get(el).type(value, {
feat: Action selector (#21582) ## Description Replaces the old boring action selector dropdown with a much more sophisticated UI that is capable of going above and beyond. Users with an aversion to code can now build their more complex workflows with a click of a few buttons. Consider this code snippet ```javascript Api1.run(() => { showAlert("Hello"); navigateTo('Page1', {}, 'SAME_WINDOW'); }, () => { removeValue("test"); }); ``` |**Old action selector** |**New action selector**| |:-:|:-:| |<img width="250" alt="Screenshot 2023-03-29 at 16 54 14" src="https://user-images.githubusercontent.com/32433245/228520661-a639b580-8986-4aec-a0f5-e2786d1a0f56.png">| <img width="250" alt="Screenshot 2023-03-29 at 16 55 15" src="https://user-images.githubusercontent.com/32433245/228521043-5025aa42-af95-4574-b586-bc4c721240bc.png">| **Click on an action block to edit its parameters.** <img width="500" alt="Screenshot 2023-03-29 at 17 01 18" src="https://user-images.githubusercontent.com/32433245/228522479-493769d0-9d2c-4b67-b493-a79e3bb9c947.png"> **Switch to JS mode to get the raw code** <img width="273" alt="Screenshot 2023-03-29 at 17 05 51" src="https://user-images.githubusercontent.com/32433245/228523458-13bc0302-4c94-4176-b5aa-3ec208122f57.png"> ### Code changes **New UI components** - ActionCreator component splits the code into block statements. - Each block statement is represented by ActionTree.tsx UI component. - ActionTree.tsx represents an action and its chains. - ActionCard.tsx is the block that represents the individual action on the UI. - ActionSelector.tsx component is popover that contains the form for editing individual action. - TabView, TextView, SelectorView, ActionSelectorView and KeyValueView are components that represent configurable fields in ActionSelector form. **AST methods** - Added methods to get/set function names, expressions, arguments. - Added methods to get/set then/catch blocks to allow chaining of actions. - Added methods to check if code is convertible to UI. Fixes #10160 Fixes #21588 Fixes #21392 Fixes #21393 Fixes #7903 Fixes #15895 Fixes #17765 Fixes #14562 Depends on https://github.com/appsmithorg/design-system/pull/306 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Manual - Jest - Cypress ### Test Plan https://github.com/appsmithorg/TestSmith/issues/2296 ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [x] Test plan has been approved by relevant developers - [x] Test plan has been peer reviewed by QA - [x] Cypress test cases have been added and approved by either SDET or manual QA - [x] Organized project review call with relevant stakeholders after Round 1/2 of QA - [x] Added Test Plan Approved label after reveiwing all Cypress test --------- Co-authored-by: Rimil Dey <rimil@appsmith.com> Co-authored-by: arunvjn <arun@appsmith.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
2023-04-06 16:49:12 +00:00
parseSpecialCharSequences: parseSpecialCharacters,
2022-03-25 11:14:12 +00:00
});
}
},
);
this.AssertAutoSave();
});
}
public VerifyCallCount(alias: string, expectedNumberOfCalls: number) {
cy.wait(alias);
cy.get(`${alias}.all`).should("have.length", expectedNumberOfCalls);
}
public GetNClickIfPresent(selector: string) {
cy.get("body").then(($body) => {
if ($body.find(selector).length > 0) {
cy.get(selector).click();
}
});
}
public GetNClick(
selector: string,
index = 0,
force = false,
waitTimeInterval = 500,
chore: Conversion and Copy Paste tests for Autolayout (#23702) ## Description Add Auto layout related test cases for Conversion algorithm and copy paste test cases #### PR fixes following issue(s) Fixes #23642 Fixes #23644 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### How Has This Been Tested? - [ ] Cypress #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-09 14:40:12 +00:00
ctrlKey = false,
metaKey = false,
feat: Homepage experience v2 changes (#29282) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description > Add a TL;DR when description is extra long (helps content team) > > Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation > and context. List any dependencies that are required for this change > > Links to Notion, Figma or any other documents that might be relevant to the PR > > #### PR fixes following issue(s) Fixes # (issue number) > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added new workspace search functionality in the search bar. - Introduced a help button for user assistance. - Implemented new UI components for workspace selection and management. - Enhanced application card with edit permission checks. - Integrated workspace actions for creating and fetching workspaces directly from the UI. - **Improvements** - Improved workspace and application fetching logic. - Enhanced Global Search with updated import paths and logic. - Refined the layout and styling of the applications page and sub-header components. - Optimized workspace-related sagas and reducers for better performance and maintainability. - **Bug Fixes** - Fixed tooltip functionality in "Reconnect Datasources" within templates. - Corrected test logic for forking templates and applications. - Updated Cypress test commands for consistency and reliability. - Addressed issues with application URL test cases and workspace import logic. - **Documentation** - Updated messages and constants related to workspace and application UI elements for clearer user communication. - **Chores** - Cleaned up unused code and simplified selectors across various components and tests. - Refactored application and workspace selectors for improved code organization. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Dipyaman Biswas <dipyaman@appsmith.com> Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com> Co-authored-by: Nidhi <nidhi@appsmith.com> Co-authored-by: Goutham Pratapa <goutham@appsmith.com> Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: albinAppsmith <87797149+albinAppsmith@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com> Co-authored-by: Nayan <nayan@appsmith.com> Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
2024-01-25 13:41:48 +00:00
position: Cypress.PositionType = "center",
) {
return this.ScrollIntoView(selector, index)
feat: Homepage experience v2 changes (#29282) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description > Add a TL;DR when description is extra long (helps content team) > > Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation > and context. List any dependencies that are required for this change > > Links to Notion, Figma or any other documents that might be relevant to the PR > > #### PR fixes following issue(s) Fixes # (issue number) > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added new workspace search functionality in the search bar. - Introduced a help button for user assistance. - Implemented new UI components for workspace selection and management. - Enhanced application card with edit permission checks. - Integrated workspace actions for creating and fetching workspaces directly from the UI. - **Improvements** - Improved workspace and application fetching logic. - Enhanced Global Search with updated import paths and logic. - Refined the layout and styling of the applications page and sub-header components. - Optimized workspace-related sagas and reducers for better performance and maintainability. - **Bug Fixes** - Fixed tooltip functionality in "Reconnect Datasources" within templates. - Corrected test logic for forking templates and applications. - Updated Cypress test commands for consistency and reliability. - Addressed issues with application URL test cases and workspace import logic. - **Documentation** - Updated messages and constants related to workspace and application UI elements for clearer user communication. - **Chores** - Cleaned up unused code and simplified selectors across various components and tests. - Refactored application and workspace selectors for improved code organization. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Dipyaman Biswas <dipyaman@appsmith.com> Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com> Co-authored-by: Nidhi <nidhi@appsmith.com> Co-authored-by: Goutham Pratapa <goutham@appsmith.com> Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: albinAppsmith <87797149+albinAppsmith@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com> Co-authored-by: Nayan <nayan@appsmith.com> Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
2024-01-25 13:41:48 +00:00
.click(position, {
force: force,
ctrlKey: ctrlKey,
metaKey,
})
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
.then(($element) => {
return cy.wrap($element).wait(waitTimeInterval);
});
}
public GetClosestNClick(
selector: string,
closestSelector: string,
index = 0,
force = false,
waitTimeInterval = 500,
ctrlKey = false,
) {
return this.ScrollIntoView(selector, index)
.closest(closestSelector)
.click({ force: force, ctrlKey: ctrlKey })
.wait(waitTimeInterval);
}
public GetHoverNClick(
selector: string,
index = 0,
force = false,
waitTimeInterval = 500,
) {
return (this.ScrollIntoView(selector, index) as any)
.realHover()
.click({ force: force })
.wait(waitTimeInterval);
}
public HoverElement(
selector: string,
index = 0,
realTouch = true,
waitTimeInterval = 100,
) {
let chain = this.ScrollIntoView(selector, index);
if (realTouch) {
chain = (chain as any)
.realTouch({ position: "center" })
.realHover({ pointer: "mouse" });
}
return (
chain
//.trigger("mousemove", { eventConstructor: "MouseEvent" })
.wait(waitTimeInterval)
);
}
2022-12-02 05:49:51 +00:00
public GetSiblingNClick(
selector: string,
siblingSelector: string,
index = 0,
force = false,
waitTimeInterval = 500,
) {
return this.GetElement(selector)
.siblings(siblingSelector)
.first()
.eq(index)
.then(($element) => {
if (
Cypress.$("body").find($element).length &&
$element[0].offsetParent !== null
) {
return $element;
} else {
$element[0].scrollIntoView();
return $element;
}
})
2022-12-02 05:49:51 +00:00
.click({ force: force })
.wait(waitTimeInterval);
}
public GoBack() {
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
this.GetNClick(this.locator._goBack);
feat: Datasource autosave improvements (#17649) * Datasource autosave improvements WIP * authenticated API and ds name updates * popup updates, api to datasource updates * issue fixes for new ds in new workspace * formatter issue fixed * console warning issue fixed * refresh edge case handled for temp ds * DS creation cypress update * datasource improvements issue fixes * CreateDS flow change cypress update * reconnect issue fixed * added space * Create Ds related script updates * SaveDs changes updated * DatasourceForm_spec.js fix * GoogleSheetsQuery_spec.js - still spec will fail * GoogleSheetsStub_spec.ts fix * MongoDatasource_spec.js fix * ElasticSearchDatasource_spec.js fix * AuthenticatedApiDatasource_spec.js * RestApiDatasource_spec.js - will stil fail * RedshiftDataSourceStub_spec.js fix * issue fixes for datasource autosave * save as datasource issue fixed * SKipped - Bug 18035 * MySQL spec fix * PostgresDatasource_spec.js fix * MySQLDataSourceStub_spec.js fix * MsSQLDataSourceStub_spec.js fix * Bug16702_Spec.ts fix * SwitchDatasource_spec.js fix * ArangoDataSourceStub_spec.js fix * code review changes, save and authorise issue fixed * cypress test issue and cypress tests fixed * client build failure issue fixed * test failure fixes * ReconnectDatasource_spec.js fix * Entity_Explorer_CopyQuery_RenameDatasource_spec.js fix * GitImport_spec.js fix * Index add * undo redo test issue fixed * fixed cypress tests of rest api ds * globalsearch_spec.js fixed * code review changes * code review comments addressed * ds schema cypress issue fixed * cypress test updates * fix updateDatasource path * rest api cypress test fixed * cypress code review changes * Removing few random .only's * replay editor fix * indexed * adding .skip Co-authored-by: “sneha122” <“sneha@appsmith.com”> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-11-30 05:59:45 +00:00
}
fix: Retain last selected tab on debugger and user selected filter condition (#25538) ## Description Retains last selected tab on debugger and user selected filter condition #### PR fixes following issue(s) Fixes #23108 #### Type of change - Bug fix (non-breaking change which fixes an issue) > > ## Testing > #### How Has This Been Tested? - [x] Manual - [x] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] 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 - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [x] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [x] We had an implementation alignment call with stakeholders post QA Round 2 - [x] Cypress test cases have been added and approved by SDET/manual QA - [x] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com> Co-authored-by: arunvjn <arun@appsmith.com>
2023-08-09 09:49:32 +00:00
public SelectAllAndType(selector: string, text: string) {
this.GetElement(selector).type("{selectall}" + text);
}
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
public SelectNRemoveLineText(selector: string) {
this.GetElement(selector).type(this.selectLine);
return this.GetElement(selector).type(this.removeLine);
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
}
public SelectAllRemoveCodeText(selector: string) {
return this.GetElement(selector).type(this.selectAll + "{del}");
}
public RemoveCharsNType(
selector: string,
charCount = 0,
totype: string,
index = 0,
) {
if (charCount > 0)
this.GetElement(selector)
.eq(index)
.focus()
.type("{backspace}".repeat(charCount), { timeout: 2, force: true })
.wait(50)
.type(totype);
else {
if (charCount == -1) this.GetElement(selector).eq(index).clear();
this.TypeText(selector, totype, index);
}
}
public ClickNClear(selector: string, force = false, index = 0) {
this.GetNClick(selector, index, force);
this.ClearTextField(selector, force, index);
}
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
public ClearTextField(selector: string, force = false, index = 0) {
this.GetElement(selector)
.eq(index)
.scrollIntoView({ easing: "linear" })
.click()
.clear({ force });
this.Sleep(500); //for text to clear for CI runs
}
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
public ClearNType(
selector: string,
totype: string,
index = 0,
force = false,
) {
this.ClearTextField(selector, force, index);
return this.TypeText(selector, totype, index);
2022-12-02 05:49:51 +00:00
}
public TypeText(
selector: string,
value: string,
indexOrOptions:
| number
| Partial<{
index: number;
parseSpecialCharSeq: boolean;
shouldFocus: boolean;
chore: Adding custom delay parameter in TypeText aggregate helper (#26516) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description > Add a TL;DR when description is extra long (helps content team) > > Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation > and context. List any dependencies that are required for this change > > Links to Notion, Figma or any other documents that might be relevant to the PR > > #### PR fixes following issue(s) Fixes # (issue number) > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-08-21 12:09:26 +00:00
delay: number;
chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) ## Description Removing the feature flag for using Entity Item component from ADS templates in the Entity Explorer in App Editor. Fixes [#39067](https://github.com/appsmithorg/appsmith/issues/39067) ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13804174182> > Commit: 8a4a2007c8e1411a9baa388cf841e5e489cb6778 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13804174182&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Wed, 12 Mar 2025 06:32:35 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 - **New Features** - Improved entity renaming: input fields now automatically clear previous text for smoother editing. - Enhanced page navigation: active selections are now verified more consistently, ensuring clearer context. - New feature flag added for enhanced entity item visibility. - Added new methods for improved entity selection and verification in tests. - Introduced `parentId` properties in widget definitions to enhance hierarchical structure. - Updated selectors for widget names and collapsible elements in tests for improved targeting. - **Bug Fixes** - Resolved issues with inconsistent element detection and state feedback for a more stable interface. - **Refactor** - Updated widget hierarchy and locator logic for improved layout rendering and overall UI consistency. - Modified locator strategies to enhance element targeting across various components. - Simplified method signatures for better clarity and maintainability. - Enhanced test selectors to improve reliability and maintainability. - Removed obsolete commands and streamlined interaction methods in tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hetu Nandu <hetunandu@gmail.com> Co-authored-by: Hetu Nandu <hetu@appsmith.com>
2025-03-14 12:10:02 +00:00
clear: boolean;
}> = 0,
) {
let index: number;
let shouldFocus = true;
let parseSpecialCharSeq = false;
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
let delay = 10;
chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) ## Description Removing the feature flag for using Entity Item component from ADS templates in the Entity Explorer in App Editor. Fixes [#39067](https://github.com/appsmithorg/appsmith/issues/39067) ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13804174182> > Commit: 8a4a2007c8e1411a9baa388cf841e5e489cb6778 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13804174182&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Wed, 12 Mar 2025 06:32:35 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 - **New Features** - Improved entity renaming: input fields now automatically clear previous text for smoother editing. - Enhanced page navigation: active selections are now verified more consistently, ensuring clearer context. - New feature flag added for enhanced entity item visibility. - Added new methods for improved entity selection and verification in tests. - Introduced `parentId` properties in widget definitions to enhance hierarchical structure. - Updated selectors for widget names and collapsible elements in tests for improved targeting. - **Bug Fixes** - Resolved issues with inconsistent element detection and state feedback for a more stable interface. - **Refactor** - Updated widget hierarchy and locator logic for improved layout rendering and overall UI consistency. - Modified locator strategies to enhance element targeting across various components. - Simplified method signatures for better clarity and maintainability. - Enhanced test selectors to improve reliability and maintainability. - Removed obsolete commands and streamlined interaction methods in tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hetu Nandu <hetunandu@gmail.com> Co-authored-by: Hetu Nandu <hetu@appsmith.com>
2025-03-14 12:10:02 +00:00
let clear = false;
if (typeof indexOrOptions === "number") {
index = indexOrOptions;
} else {
index = indexOrOptions.index || 0;
parseSpecialCharSeq = indexOrOptions.parseSpecialCharSeq || false;
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
delay = indexOrOptions.delay || 10;
shouldFocus =
indexOrOptions.shouldFocus !== undefined
? indexOrOptions.shouldFocus
: true;
chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) ## Description Removing the feature flag for using Entity Item component from ADS templates in the Entity Explorer in App Editor. Fixes [#39067](https://github.com/appsmithorg/appsmith/issues/39067) ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13804174182> > Commit: 8a4a2007c8e1411a9baa388cf841e5e489cb6778 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13804174182&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Wed, 12 Mar 2025 06:32:35 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 - **New Features** - Improved entity renaming: input fields now automatically clear previous text for smoother editing. - Enhanced page navigation: active selections are now verified more consistently, ensuring clearer context. - New feature flag added for enhanced entity item visibility. - Added new methods for improved entity selection and verification in tests. - Introduced `parentId` properties in widget definitions to enhance hierarchical structure. - Updated selectors for widget names and collapsible elements in tests for improved targeting. - **Bug Fixes** - Resolved issues with inconsistent element detection and state feedback for a more stable interface. - **Refactor** - Updated widget hierarchy and locator logic for improved layout rendering and overall UI consistency. - Modified locator strategies to enhance element targeting across various components. - Simplified method signatures for better clarity and maintainability. - Enhanced test selectors to improve reliability and maintainability. - Removed obsolete commands and streamlined interaction methods in tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hetu Nandu <hetunandu@gmail.com> Co-authored-by: Hetu Nandu <hetu@appsmith.com>
2025-03-14 12:10:02 +00:00
clear = indexOrOptions.clear || false;
}
const element = this.GetElement(selector).eq(index);
if (shouldFocus) {
element.focus();
}
if (value === "") return element;
chore: Removing the feature flag for using Entity Item component from ADS templates (#39093) ## Description Removing the feature flag for using Entity Item component from ADS templates in the Entity Explorer in App Editor. Fixes [#39067](https://github.com/appsmithorg/appsmith/issues/39067) ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13804174182> > Commit: 8a4a2007c8e1411a9baa388cf841e5e489cb6778 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13804174182&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Wed, 12 Mar 2025 06:32:35 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 - **New Features** - Improved entity renaming: input fields now automatically clear previous text for smoother editing. - Enhanced page navigation: active selections are now verified more consistently, ensuring clearer context. - New feature flag added for enhanced entity item visibility. - Added new methods for improved entity selection and verification in tests. - Introduced `parentId` properties in widget definitions to enhance hierarchical structure. - Updated selectors for widget names and collapsible elements in tests for improved targeting. - **Bug Fixes** - Resolved issues with inconsistent element detection and state feedback for a more stable interface. - **Refactor** - Updated widget hierarchy and locator logic for improved layout rendering and overall UI consistency. - Modified locator strategies to enhance element targeting across various components. - Simplified method signatures for better clarity and maintainability. - Enhanced test selectors to improve reliability and maintainability. - Removed obsolete commands and streamlined interaction methods in tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Hetu Nandu <hetunandu@gmail.com> Co-authored-by: Hetu Nandu <hetu@appsmith.com>
2025-03-14 12:10:02 +00:00
if (clear) {
return element.wait(100).clear().type(value, {
parseSpecialCharSequences: parseSpecialCharSeq,
delay: delay,
force: true,
});
}
return element.wait(100).type(value, {
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
parseSpecialCharSequences: parseSpecialCharSeq,
chore: Adding custom delay parameter in TypeText aggregate helper (#26516) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description > Add a TL;DR when description is extra long (helps content team) > > Please include a summary of the changes and which issue has been fixed. Please also include relevant motivation > and context. List any dependencies that are required for this change > > Links to Notion, Figma or any other documents that might be relevant to the PR > > #### PR fixes following issue(s) Fixes # (issue number) > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-08-21 12:09:26 +00:00
delay: delay,
feat: Action selector (#21582) ## Description Replaces the old boring action selector dropdown with a much more sophisticated UI that is capable of going above and beyond. Users with an aversion to code can now build their more complex workflows with a click of a few buttons. Consider this code snippet ```javascript Api1.run(() => { showAlert("Hello"); navigateTo('Page1', {}, 'SAME_WINDOW'); }, () => { removeValue("test"); }); ``` |**Old action selector** |**New action selector**| |:-:|:-:| |<img width="250" alt="Screenshot 2023-03-29 at 16 54 14" src="https://user-images.githubusercontent.com/32433245/228520661-a639b580-8986-4aec-a0f5-e2786d1a0f56.png">| <img width="250" alt="Screenshot 2023-03-29 at 16 55 15" src="https://user-images.githubusercontent.com/32433245/228521043-5025aa42-af95-4574-b586-bc4c721240bc.png">| **Click on an action block to edit its parameters.** <img width="500" alt="Screenshot 2023-03-29 at 17 01 18" src="https://user-images.githubusercontent.com/32433245/228522479-493769d0-9d2c-4b67-b493-a79e3bb9c947.png"> **Switch to JS mode to get the raw code** <img width="273" alt="Screenshot 2023-03-29 at 17 05 51" src="https://user-images.githubusercontent.com/32433245/228523458-13bc0302-4c94-4176-b5aa-3ec208122f57.png"> ### Code changes **New UI components** - ActionCreator component splits the code into block statements. - Each block statement is represented by ActionTree.tsx UI component. - ActionTree.tsx represents an action and its chains. - ActionCard.tsx is the block that represents the individual action on the UI. - ActionSelector.tsx component is popover that contains the form for editing individual action. - TabView, TextView, SelectorView, ActionSelectorView and KeyValueView are components that represent configurable fields in ActionSelector form. **AST methods** - Added methods to get/set function names, expressions, arguments. - Added methods to get/set then/catch blocks to allow chaining of actions. - Added methods to check if code is convertible to UI. Fixes #10160 Fixes #21588 Fixes #21392 Fixes #21393 Fixes #7903 Fixes #15895 Fixes #17765 Fixes #14562 Depends on https://github.com/appsmithorg/design-system/pull/306 ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Manual - Jest - Cypress ### Test Plan https://github.com/appsmithorg/TestSmith/issues/2296 ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag ### QA activity: - [x] Test plan has been approved by relevant developers - [x] Test plan has been peer reviewed by QA - [x] Cypress test cases have been added and approved by either SDET or manual QA - [x] Organized project review call with relevant stakeholders after Round 1/2 of QA - [x] Added Test Plan Approved label after reveiwing all Cypress test --------- Co-authored-by: Rimil Dey <rimil@appsmith.com> Co-authored-by: arunvjn <arun@appsmith.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
2023-04-06 16:49:12 +00:00
force: true,
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
});
test: Script updates for flaky fixes (#16143) * Remove mongo coll dataset * JSEXe spec flaky trial fix * AbortActions to ts * js func exe fix * Abort spec fix * Appsmith down flaky fix * SelectWidget bug 12531 comment * JSfun exec spec flaky fix * Scrolling spec fix * mysql crud fix * mySql crud fix * CRUD generate page fix * jsonload flaky fix * Automcomplete spec update * jsOnload-1 spec flaky fix * http patch * patch install * patch path correction * cypress instal force * removed * yarn * adding dev * applypatch path corrected * patch fix * patch update * patches * patch file name update * Adding blureprint patch back * Cypress install removed * Removed .only * Autocomplete + Abort spec fix * CI run key press fix * https proxy update path fix * JS editor parsing delay handle * Autocmplete js fix * Abort Query added * Removed "dev": "cypress open" * js func exec spec fix * js editor type flaky fix * GetNClick revert * Saving JS editor aft removal * JS specs flaky fixes * JSfun flaky fix * Auto complete spec fi * jSonkoad1 spec fix * JSOnload spec * Auto complete JS spec fix * Removing waiting for toasts * jsfun fix * EditJSObj Preetify update * contains index or colection * SetQueryTimeout update * DS toasts handle * POstgresCRUD toast change * POstgres CRUD toasts fix * Bug 15372 spec toast fix + Api timeout update * Added DeleteDSDirectly() * Arango spec fix * JSEditor indent spec - 6 fix * JSeditor indent spec update 7, 1,2 * removed only * JSEDitor Indent spec fixes * removed only * MySQK CRUD fixes * BUg 14006 spec fix * Mongo spec toast fix * Mongo update * text wrapping spec flaky fix
2022-08-24 14:23:41 +00:00
}
public ContainsNClick(
text: string,
index = 0,
force = false,
waitTimeInterval = 500,
) {
return cy
.contains(text)
.eq(index)
.click({ force: force })
.wait(waitTimeInterval);
}
public GetNClickByContains(
selector: string,
containsText: string | RegExp,
index = 0,
force = true,
waitTimeInterval = 500,
) {
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
return cy
.get(selector)
.contains(containsText, { matchCase: false })
.eq(index)
.click({ force: force })
.wait(waitTimeInterval);
}
public CheckUncheck(selector: string, check = true) {
if (check) {
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
this.GetElement(selector).check({ force: true }).should("be.checked");
} else {
this.GetElement(selector)
.uncheck({ force: true })
.should("not.be.checked");
}
this.Sleep();
}
public AssertExistingToggleState(
propertyName: string,
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
toggle: "true" | "false",
) {
this.GetElement(this.locator._propertyToggleValue(propertyName))
.invoke("attr", "data-checked")
.then((classes) => {
expect(classes).includes(toggle);
});
}
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
public AssertExistingCheckedState(selector: string, toggle = "true") {
this.GetElement(selector)
.invoke("attr", "data-selected-value")
.then((dataSelectedValue) => {
if (dataSelectedValue !== undefined) {
this.GetElement(selector).should(
"have.attr",
"data-selected-value",
toggle,
);
} else
this.GetElement(selector).should(
toggle == "true" ? "be.checked" : "not.be.checked",
);
});
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
}
public AssertSelectedTab(propertyName: string, value: "true" | "false") {
let locator;
if (propertyName.startsWith("//")) {
locator = cy.xpath(propertyName);
locator.should("have.attr", "aria-checked", value);
} else if (propertyName.includes(" ")) {
locator = cy.get(propertyName);
locator.should("have.attr", "aria-checked", value);
}
}
public AssertAttribute(
selector: string,
attribName: string,
attribValue: any,
index = 0,
) {
return this.GetElement(selector)
.eq(index)
.should("have.attr", attribName, attribValue);
}
public AssertProperty(
selector: string,
propName: string,
propValue: any,
index = 0,
) {
return this.GetElement(selector)
.eq(index)
.should("have.prop", propName, propValue);
}
fix: Remove Auto layout feature flag dependency. (#24947) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description Removing Feature flag requirement for auto layout since its been in prod for a while and also feature flags are unavailable for public apps. > > #### PR fixes following issue(s) Fixes #24848 > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-07-03 06:33:27 +00:00
public AssertCSS(
selector: string,
cssName: string,
cssValue: string,
index = 0,
) {
return this.GetElement(selector)
.eq(index)
.should("have.css", cssName, cssValue);
}
public ToggleSwitch(
switchName: string,
toggle: "check" | "uncheck" = "check",
jsonSwitch = false,
) {
const locator = jsonSwitch
? cy.xpath(this.locator._jsonToggle(switchName))
: cy.xpath(this.locator._switchToggle(switchName));
const parentLoc = locator.parent("label");
if (toggle == "check")
parentLoc.then(($parent) => {
if (!$parent.hasClass("t--switch-widget-active")) {
locator.click();
}
});
else
parentLoc.then(($parent) => {
if (!$parent.hasClass("t--switch-widget-inactive")) {
locator.click();
}
});
}
public GenerateUUID() {
let id = uuidv4();
id = "Cy" + id.split("-")[0];
cy.wrap(id).as("guid");
}
public GetObjectName() {
//cy.get(this.locator._queryName).invoke("text").then((text) => cy.wrap(text).as("queryName")); or below syntax
chore: entity tabs replacement (#38989) ## Description Replacing entity tab bar and components with ADS templates. Fixes #37647 Fixes #37775 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/13172995565> > Commit: f3db2d920ded4aec290af6bc48278a59a04b8db8 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13172995565&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 06 Feb 2025 07:56:59 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 ## Summary by CodeRabbit - **New Features** - Enhanced tab interaction: The add button now supports dynamic visibility and a loading indicator when new tabs are being created. - Improved editing: Tab labels now feature refined controls for entering and exiting edit mode, offering a more flexible user experience. - New `EntityTabsHeader` component added to enhance tab management. - Updated tab structure to utilize `DismissibleTab` for improved functionality. - Introduced new props for `DismissibleTabBar` to allow for additional styling and control over add button visibility. - New properties added to `DismissibleTab` for greater interactivity and customization. - Additional properties introduced to `EditableDismissibleTab` for enhanced editing capabilities. - **Refactor** - Streamlined the tab interface by replacing legacy components with modern, responsive alternatives, simplifying the overall design and interaction. - Enhanced event handling and state management for better performance and user experience. - Updated import paths and component structures for clarity and maintainability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-02-06 08:33:54 +00:00
return cy.get(this.locator._activeEntityTab).invoke("text");
}
public GetElementLength(selector: string) {
return this.GetElement(selector).its("length");
}
public Sleep(timeout = 1000) {
fix: Remove Auto layout feature flag dependency. (#24947) > Pull Request Template > > Use this template to quickly create a well written pull request. Delete all quotes before creating the pull request. > ## Description Removing Feature flag requirement for auto layout since its been in prod for a while and also feature flags are unavailable for public apps. > > #### PR fixes following issue(s) Fixes #24848 > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-07-03 06:33:27 +00:00
return cy.wait(timeout);
}
fix: Reset templates filter for templates modal (#24192) ## Description * Currently we do not reset the template filters when we close template modal and open it again in `add page from template flow` This becomes confusing for some users. * Also increases test coverage of templates filtering #### PR fixes following issue(s) Fixes #17276 #### Media https://github.com/appsmithorg/appsmith/assets/6761673/3c94e21b-e8a9-4c6b-bc81-e677269bb5ea #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [x] Cypress #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-29 06:22:05 +00:00
public RefreshPage(
networkCallAlias = "getWorkspace", // reloadWithoutCache = true,
fix: Reset templates filter for templates modal (#24192) ## Description * Currently we do not reset the template filters when we close template modal and open it again in `add page from template flow` This becomes confusing for some users. * Also increases test coverage of templates filtering #### PR fixes following issue(s) Fixes #17276 #### Media https://github.com/appsmithorg/appsmith/assets/6761673/3c94e21b-e8a9-4c6b-bc81-e677269bb5ea #### Type of change - Bug fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [x] Cypress #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-29 06:22:05 +00:00
) {
this.Sleep(2000);
this.assertHelper.AssertDocumentReady();
// // cy.window()
// // .then((win) => {
// // win.location.reload();
// // })
// cy.reload(reloadWithoutCache).then(() => {
// this.assertHelper.AssertDocumentReady();
// });
cy.url().then((url) => {
cy.window({ timeout: 60000 }).then((win) => {
win.location.href = url;
});
});
this.AssertElementAbsence(
this.locator._specificToast("Cannot read properties of undefined"),
);
this.assertHelper.AssertDocumentReady();
test: Cypress | CI Stablize + Other improvements (#28254) ## Description **This PR does the below improvements:** - Handles initial empty error toast- with cy.LogOut() - Calling cy.LoginFromAPI() per need only - to improve execution time - Update agHelper.UpdateCodeInput() - Added waitForNetworkCall for AsserHelper methods to only get api call & validate - Added gitSync.AuthorizeKeyToGitea() - to validate keyGenerate success - Adding validationg for 'Unable to import application in workspace' - cy.CreateNewAppInNewWorkspace() improved - agHelper.RemoveUIElement() created to handle tooltip, toast, evaluatedpopup & removed duplicates - cy.merge() improved to call assertHelper - assertHelper.AssertNetworkStatus() to handle both array & individual status checks & return actual responseCode - createBranch & generatedKey intercepts added to git operation validations - homePage.AssertApplication() created - Removed cy.Logout() & Login improved - brings down total run time to less than 1 hr from 1+ hrs - entityExplorer.NavigateToSwitcher() improved to check status - dataSources.ValidateDSDeletion() improved to handle one of array toast for array value also - assertHelper.WaitForNetworkCall() improved to wait & return latest request - Private methods processNetworkStatus() & processNetworkResponseData() created **Also flaky fixes below:** - ServerSide/QueryPane/S3_2_spec.ts - Adding sleep for CI flaky behaviour - Trial fix for cypress/e2e/Regression/ClientSide/OtherUIFeatures/PageOnLoad_spec.ts - GitWithJSLibrary/GitwithCustomJSLibrary_spec.js - Handling Import failure at various points in the flow - ExplorerTests/Widgets_Copy_Paste_Delete_Undo_Keyboard_Event_spec.js - ClientSide/JSLibrary/Library_spec.ts - asserting success import - /OtherUIFeatures/ApplicationURL_spec.js - using cy.url() - /ClientSide/Templates/Fork_Template_spec.js - ServerSide/Postgres_DataTypes/Binary_Spec.ts & /Postgres_DataTypes/Json_Spec.ts - Adding sleep for CI flaky behaviour - ClientSide/Widgets/List/List4_2_spec.js - /Git/ExistingApps/v1.9.24/DSCrudAndBindings_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-10-25 14:03:07 +00:00
this.Sleep(4000); //for page to load for CI runs
networkCallAlias &&
this.assertHelper.AssertNetworkStatus("@" + networkCallAlias); //getWorkspace for Edit page!
}
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
public CypressReload() {
cy.reload();
this.assertHelper.AssertDocumentReady();
}
public ActionContextMenuWithInPane({
action = "Delete",
entityType = EntityItems.JSObject,
subAction = "",
toastToValidate = "",
}: DeleteParams) {
cy.get(this.locator._contextMenuInPane).click();
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
this.GetNClick(this.locator._contextMenuItem(action));
if (action == "Delete") {
this.DeleteEntityNAssert(entityType);
} else if (subAction) {
this.ActionContextMenuSubItem({
subAction: subAction,
toastToValidate: toastToValidate,
});
toastToValidate && this.AssertContains(toastToValidate);
}
}
public DeleteEntityNAssert(
entityType: EntityItemsType,
toAssertAction = true,
) {
if (entityType != EntityItems.Widget)
this.GetNClick(this.locator._contextMenuItem("Are you sure?"));
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
this.Sleep();
toAssertAction && this.assertHelper.AssertDelete(entityType);
}
public ActionContextMenuSubItem({
force = false,
subAction,
toastToValidate = "",
}: SubActionParams) {
feat: Disabled datasource selector in query pages (#36940) ## Description This PR disable the datasource selector inside query editor. This change is behind feature flag to ensure that if this is needed, we can revert back using feature flag toggling. EE PR: https://github.com/appsmithorg/appsmith-ee/pull/5382 Fixes #35534 ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/11512255262> > Commit: ccdb5227464882e1d135a0eb42d1ed1b931a2680 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11512255262&attempt=3" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Fri, 25 Oct 2024 07:24:38 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new feature flag: `release_ide_datasource_selector_enabled`, allowing for future enhancements to the `DatasourceSelector` component. - Conditional rendering of the `DatasourceSelector` in the `QueryEditorHeader` based on the new feature flag. - **Bug Fixes** - Disabled the test suite for the "Switch datasource" functionality as it is currently under a feature flag. These changes enhance the flexibility of the application and improve the user experience by controlling the visibility of features based on their activation status. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-25 16:22:41 +00:00
cy.xpath(this.locator._contextMenuItem(subAction)).trigger("click", {
force: force,
});
this.Sleep(500);
toastToValidate && this.AssertContains(toastToValidate);
}
public EnterValueNValidate(valueToType: string, fieldName = "") {
this.EnterValue(valueToType, {
propFieldName: fieldName,
directInput: false,
inputFieldName: "",
});
this.VerifyEvaluatedValue(valueToType);
}
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
// by dynamic input value we mean QUERY_DYNAMIC_INPUT_TEXT formControls.
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
public TypeDynamicInputValueNValidate(
valueToType: string,
fieldName = "",
isDynamicValue = false,
evaluatedValue = valueToType,
) {
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
this.EnterValue(valueToType, {
propFieldName: fieldName,
directInput: true,
inputFieldName: "",
});
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
if (!isDynamicValue) {
this.AssertElementAbsence(this.locator._evaluatedCurrentValue);
} else {
this.VerifyEvaluatedValue(evaluatedValue);
}
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
}
public EnterValue(
valueToEnter: string,
options: IEnterValue = DEFAULT_ENTERVALUE_OPTIONS,
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
toVerifySave = true,
) {
const { apiOrQuery, directInput, inputFieldName, propFieldName } = options;
if (propFieldName && directInput && !inputFieldName) {
this.UpdateCodeInput(propFieldName, valueToEnter, apiOrQuery);
} else if (inputFieldName && !propFieldName && !directInput) {
this.UpdateCodeInput(
this.locator._inputFieldByName(inputFieldName),
valueToEnter,
);
}
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
toVerifySave && this.AssertAutoSave();
}
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
public VerifyCodeInputValue(propFieldName: string, value: string) {
cy.get(propFieldName).then(($field: any) => {
this.CheckCodeInputValue($field, value);
});
}
public BlurInput(propFieldName: string) {
cy.get(propFieldName).then(($field: any) => {
this.BlurCodeInput($field);
});
}
2022-06-21 11:22:55 +00:00
public EnterInputText(
name: string,
input: string,
toClear = false,
isInput = true,
) {
toClear && this.ClearInputText(name);
cy.xpath(this.locator._inputWidgetValueField(name, isInput))
2022-06-21 11:22:55 +00:00
.trigger("click")
.type(input, { parseSpecialCharSequences: false });
}
public ClearInputText(name: string, isInput = true) {
feat: [epic] appsmith design system version 2 deduplication (#22030) ## Description ### Fixes - [x] https://github.com/appsmithorg/appsmith/issues/19383 - [x] https://github.com/appsmithorg/appsmith/issues/19384 - [x] https://github.com/appsmithorg/appsmith/issues/19385 - [x] https://github.com/appsmithorg/appsmith/issues/19386 - [x] https://github.com/appsmithorg/appsmith/issues/19387 - [x] https://github.com/appsmithorg/appsmith/issues/19388 - [x] https://github.com/appsmithorg/appsmith/issues/19389 - [x] https://github.com/appsmithorg/appsmith/issues/19390 - [x] https://github.com/appsmithorg/appsmith/issues/19391 - [x] https://github.com/appsmithorg/appsmith/issues/19392 - [x] https://github.com/appsmithorg/appsmith/issues/19393 - [x] https://github.com/appsmithorg/appsmith/issues/19394 - [x] https://github.com/appsmithorg/appsmith/issues/19395 - [x] https://github.com/appsmithorg/appsmith/issues/19396 - [x] https://github.com/appsmithorg/appsmith/issues/19397 - [x] https://github.com/appsmithorg/appsmith/issues/19398 - [x] https://github.com/appsmithorg/appsmith/issues/19399 - [x] https://github.com/appsmithorg/appsmith/issues/19400 - [x] https://github.com/appsmithorg/appsmith/issues/19401 - [x] https://github.com/appsmithorg/appsmith/issues/19402 - [x] https://github.com/appsmithorg/appsmith/issues/19403 - [x] https://github.com/appsmithorg/appsmith/issues/19404 - [x] https://github.com/appsmithorg/appsmith/issues/19405 - [x] https://github.com/appsmithorg/appsmith/issues/19406 - [x] https://github.com/appsmithorg/appsmith/issues/19407 - [x] https://github.com/appsmithorg/appsmith/issues/19408 - [x] https://github.com/appsmithorg/appsmith/issues/19409 Fixes # (issue) > if no issue exists, please create an issue and ask the maintainers about this first Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Ankita Kinger <ankita@appsmith.com> Co-authored-by: akash-codemonk <67054171+akash-codemonk@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvi@appsmith.com> Co-authored-by: Arsalan <arsalanyaldram0211@outlook.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Rohit Agarwal <rohit_agarwal@live.in> Co-authored-by: Nilesh Sarupriya <nilesh@appsmith.com> Co-authored-by: Nilesh Sarupriya <20905988+nsarupr@users.noreply.github.com> Co-authored-by: Tanvi Bhakta <tanvibhakta@gmail.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local> Co-authored-by: Vijetha-Kaja <vijetha@appsmith.com> Co-authored-by: Parthvi <80334441+Parthvi12@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io> Co-authored-by: Saroj <43822041+sarojsarab@users.noreply.github.com> Co-authored-by: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com> Co-authored-by: rahulramesha <rahul@appsmith.com> Co-authored-by: Aswath K <aswath.sana@gmail.com> Co-authored-by: Preet Sidhu <preetsidhu.bits@gmail.com> Co-authored-by: Vijetha-Kaja <119562824+Vijetha-Kaja@users.noreply.github.com> Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
2023-05-19 18:37:06 +00:00
cy.xpath(this.locator._inputWidgetValueField(name, isInput)).clear({
force: true,
});
}
public UpdateCodeInput(
selector: string,
value: string,
apiOrQuery: "api" | "query" = "query",
) {
this.EnableAllCodeEditors();
const isXPathSelector =
selector.startsWith("//") || selector.startsWith("(//");
// A previous version of this code used a more simple `this.GetElement(xPathOrCssSelector).find(".CodeMirror")` command.
// However, occasionally, this would lead to a race condition: React would re-render between calls to `this.GetElement()`
// and `.find(".CodeMirror")`, causing the element from the first call to be detached from the DOM.
// Relevant docs: http://web.archive.org/web/20210618235924/https://docs.cypress.io/guides/core-concepts/retry-ability#Only-the-last-command-is-retried
//
// This was fixed in Cypress 12 (https://github.com/cypress-io/cypress/issues/7306), which started to retry
// the entire query chain (https://docs.cypress.io/guides/core-concepts/retry-ability#Only-queries-are-retried),
// but until weve upgraded to v12, we cant rely on that and have to fit everything into a single query.
const codeMirrorSelector = isXPathSelector
? selector +
"//*[contains(concat(' ', normalize-space(@class), ' '), ' CodeMirror ')]"
: selector + " .CodeMirror";
this.GetElement(codeMirrorSelector)
.find("textarea")
.parents(".CodeMirror")
.first()
.then((ins) => {
const input = (ins[0] as any).CodeMirror as CodeMirror.Editor;
if (apiOrQuery === "api") {
setTimeout(() => {
input.focus();
setTimeout(() => {
input.setValue(value);
setTimeout(() => {
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
input.execCommand("goLineStart");
// Move cursor to the end of the line
input.execCommand("goLineEnd");
}, 1000);
}, 500);
}, 500);
} else {
input.focus();
this.Sleep(200);
input.setValue(value);
this.Sleep(200);
input.execCommand("goLineEnd");
this.Sleep(200);
}
});
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.Sleep(); //for value set to register
}
public UpdateFieldInput(selector: string, value: string) {
this.GetElement(selector)
.find("input")
.invoke("attr", "value", value)
.trigger("input");
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.Sleep(); //for value set to register
}
fix: Fix cancel issue and form value state persistence (#25412) This PR fixes two things 1. The cancel button not showing the dialog after a change has been made. 2. The fields in the datasource form retaining values changed by the user without the user saving those changes. Fixes #25333 > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] Jest - [x] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [x] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [x] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-07-24 10:29:05 +00:00
public ValidateFieldInputValue(selector: string, value: string) {
this.GetElement(selector)
.closest("input")
.scrollIntoView({ easing: "linear" })
.invoke("val")
.then((inputValue) => {
expect(inputValue).to.equal(value);
});
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.Sleep(); //for value set to register
fix: Fix cancel issue and form value state persistence (#25412) This PR fixes two things 1. The cancel button not showing the dialog after a change has been made. 2. The fields in the datasource form retaining values changed by the user without the user saving those changes. Fixes #25333 > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] Jest - [x] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [x] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [x] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-07-24 10:29:05 +00:00
}
public UpdateTextArea(selector: string, value: string) {
this.GetElement(selector)
.find("textarea")
.first()
.invoke("val", value)
.trigger("input");
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.Sleep(500); //for value set to register
}
public TypeIntoTextArea(selector: string, value: string) {
this.GetElement(selector)
.find("textarea")
.first()
.type(value, { delay: 0, force: true, parseSpecialCharSequences: false });
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.Sleep(500); //for value set to register
}
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
public BlurCodeInput(selector: string) {
cy.wrap(selector)
.find(".CodeMirror")
.first()
.then((ins: any) => {
const input = ins[0].CodeMirror;
input.focus();
this.Sleep(200);
input.display.input.blur();
this.Sleep(200);
});
}
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
public FocusCodeInput(selector: string) {
cy.wrap(selector)
.find(".CodeMirror")
.first()
.then((ins: any) => {
const input = ins[0].CodeMirror;
input.focus();
this.Sleep(200);
// input.display.input.blur();
// this.Sleep(200);
});
}
DragEvaluatedValuePopUp(x: number, y: number) {
(
cy
.get(this.locator._evaluatedCurrentValue)
.first()
.should("be.visible") as any
).realHover({ pointer: "mouse" });
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
cy.get(this.locator._evaluatedValuePopDragHandler)
.trigger("mousedown", { which: 1 })
.trigger("mousemove", { clientX: x, clientY: y })
.trigger("mouseup", { force: true });
}
public FocusAndDragEvaluatedValuePopUp(
options: IEnterValue = DEFAULT_ENTERVALUE_OPTIONS,
x = 0,
y = 0,
) {
const { directInput, inputFieldName, propFieldName } = options;
if (propFieldName && directInput && !inputFieldName) {
cy.get(propFieldName).then(($field: any) => {
this.FocusCodeInput($field);
this.DragEvaluatedValuePopUp(x, y);
});
} else if (inputFieldName && !propFieldName && !directInput) {
cy.xpath(this.locator._inputFieldByName(inputFieldName)).then(
($field: any) => {
this.FocusCodeInput($field);
this.DragEvaluatedValuePopUp(x, y);
},
);
}
}
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
public CheckCodeInputValue(selector: string, expectedValue: string) {
cy.wrap(selector)
.find(".CodeMirror")
.first()
.then((ins: any) => {
const input = ins[0].CodeMirror;
const inputVal = input.getValue();
this.Sleep(200);
expect(inputVal).to.eq(expectedValue);
});
}
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
public ReturnCodeInputValue(selector: string) {
let inputVal = "";
this.GetElement(selector).then(($field) => {
cy.wrap($field)
.find(".CodeMirror-code span")
.first()
.invoke("text")
.then((text1) => {
inputVal = text1;
});
});
//if (currentValue) expect(val).to.eq(currentValue);
// to be chained with another cy command.
return cy.wrap(inputVal);
// cy.xpath(this.locator._existingFieldValueByName(selector)).then(
// ($field: any) => {
// cy.wrap($field)
// .find(".CodeMirror")
// .first()
// .then((ins: any) => {
// const input = ins[0].CodeMirror;
// inputVal = input.getValue();
// this.Sleep(200);
// });
// // to be chained with another cy command.
// return inputVal;
// },
// );
}
public VerifyEvaluatedErrorMessage(errorMessage: string) {
cy.get(this.locator._evaluatedErrorMessage)
.should("be.visible")
.should("have.text", errorMessage);
}
feat: Feature/evaluated value window (#19972) Evaluated value window improvements: 1. Evaluated value window will not show up unless there is a dynamic binding within the input field or when there's a validation error on the input field (this edge case happens when user types an incorrect string in the field for example typing a wrong date format inside the Default Date field in the DatePickerWidget). 2. Evaluated value window will be draggable anywhere on the DOM. The new position would also be remembered the next time the user returns to the input. 3. The UI of the evaluated value window has been changed: Since the popup will become draggable, it will have the name of the input it is attached to. The styling of the evaluated value window fields has been changed as well. Design Documentation: https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc > Add a TL;DR when description is extra long (helps content team) Fixes #4458 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - This change requires a documentation update > Tests - Manual - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [x] 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 11:09:54 +00:00
// this should only be used when we want to verify the evaluated value of dynamic bindings for example {{Api1.data}} or {{"asa"}}
// and should not be called for plain strings
public VerifyEvaluatedValue(currentValue: string) {
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.GetElement(this.locator._evaluatedCurrentValue)
.first()
.should("be.visible")
.should("not.have.text", "undefined");
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
this.GetElement(this.locator._evaluatedCurrentValue)
.first()
.click({ force: true })
.then(($text) => {
if ($text.text()) expect($text.text()).to.eq(currentValue);
feat: Simplified Google Sheets queries (#14869) * Client changes 1 * add DSL functionality * Temp commit for refactoring changes * Do I even know what I'm doing here? * chore: Second GS layout * Update: Visibility conditional outputs for schemas - Added the output from conditional outputs for schema children too * Update: Entity selector visibility control - Added logic for controlling visibility of sub components via the JS expressions system * Update: Passing disabled prop to toggle button * Update: Passing disabled prop to toggle btn * Update: Styled component for toggle button - Added disabled styles based on the disabled prop sent to the toggle form view JSON button * Update: configProperty role in Entity Selector - Removed dependance of the configProperty of the entity selector children to it's parent component * Update: type of placeholder key - Made placeholder key from form config JSON to accept either string or an object - Earlier only string was accepted - This is for pagination component * Update: Added placeholder control for pagination * Client changes 1 * add DSL functionality * Do I even know what I'm doing here? * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * temp triggers * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395) * fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design * fix: updated tooltip component for wrong ui on entity explore * fix: updated tooltip ui, where condition placement, sort by ui * temp form data access logic * fix: updated sorting type width ui * fix: updated ui for spacing, width and text issues * Update: Type for tooltip of UQI forms - Added option to send an object to the tooltipText object. - This allows for composite components like pagination to have tooltips for each sub component * Update: tooltip for pagination component - Added handling to parse the tooltip for multiple components. - This allows for composite components like pagination to have tooltips for each sub component * Update: Type cast for tooltip component - Made the content passed to tooltip component as a string only * Update: Fixed tooltip component CSS * Update: Dropdown option component - Added a tooltip wrapper to each option - This is to show on hover text like disabled state * fix: updated ẇhere clause broken ui for condition * Add: functions to check and extract expressions - Loop through the formConfig and find any keys that have a value that is bindable - Used pre defined regex to check if value is a moustache binding * Add: Types for evaluated form configs - Added types for the form configs to be evaluated and their output post eval * Add: Flow to run the form config - Run the form config and update the result to the redux state * Update: Name of the type for formconfigs - Updated since it was clashing with a component of the same name * Add: Function to enforce config type checks - This is done so that the improper configs can be weeded out and the rest of the form can be shown * Add: Function to update evaluated config - Added option to update the config if it's values needed evaluation * Add: Type check for schema sections * Update: Error handling for invalid control type - We were throwing an exception till now, changed it to a warning text * Add: Exposed tooltip for dropdown option disabled state * Update: switch to json mode functionality - Added logic to convert data to a string rather than an object when the first switch to JSON mode happens * Update: Added key to tooltip for dropdown options * Trigger API modification * Add: function to fetch default trigger URL * Update: Made URL optional in dynamic trigger config * Update: Dynamic trigger API call - Made the API call for dynamic triggers have URL as optional field - Added type check to the response of the API call * Update: resp type for trigger APIs * Update: Moved code to utils folder - Moved functions for UQI form eval processing to utils file * Update: passing original controltype to JS switch * Update: config for JSON editor mode - Updated the config to have different options for JSON mode depending on the original control type * Update: Connected line numbers flag to config * Revert: CSS changes for tooltip * Refactor: Removed consle * Add: type for the config of dynamic values * Add: Feature to evaluate config for triggers * Refactor: fix type check errors * fix: dropdown ui width with text alignment * Update: fixed selector for dynamic values * Update: selector call for fetchDynamicValues * Add table header index prop for columns selector * migration partial commit * migration partial commit * Refactor: removed unused import * Update: reused function for checking dynamic value * Update: removed unused import * Fix format JSON issues * Retrieve binding paths from entity selector components * Fixes 6 remaining issues with UQI implementation * Fix dropdown issues * Fix dropdown height issues and fixes triggering of APIs when option is deselected * Migration changes * Fix QA generated UQI issues * Fix projection component height and route change logic * Fix multi select dropdown placeholder text issue and json stringify issue with switching view types * Reset entity type value when command value changes * Test changes * Review comments * Moved migrations around * Corrected import statement * Added JSON schema migration * Updated schema version * perf improvements and filter dropdown options feature * Fix Code mirror component config for toggleComponentToJson input fields. * Fix prettier issues * fix prettier issues * Fix style issues as a result of the merged conflicts * Fix failing test case * Fixed a few other flows (#14225) * Fixed a few other flows * Review comments * Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues. * More fixes (#14367) * Factor in the root formconfig parent key. * Fix flickering issues, and evaluatedFormConfig issues * fix: Teeny bugs (#14455) * Teeny bugs * Added previous functionality as is * Improvements in the way we fetch dynamic values * Fix stringiification issue and cyclic dependency issues * Resolve projection component values deletion * Resolve merge conflicts and fix prettier issues * fix: Tsc issues * Fix property pane connection navigation * updating ee locator * updating inputfield locator * dropdown locator update * Merge conflict not properly resolved. * Fix s3 spec * Fix Mongo Spec * Fix some more tests * fix: prevent cyclic dependency when switching to js mode (#14668) * add delete events for change from array to string in diff * add test to assert absence of cyclic dependency error when switching to js in switchgroup widget * Assert that evaluation is not disabled when no cyclic dependency happens * Cypress test preparations for google sheets and form controls * Fixed a few test errors (#14874) * Add: unit tests for uqi UI updates - view type tests - conditional output extraction - processing conditional output to handle view/enabled state of the component * Add: completed isValidFormConfig test * Update: improved tests for update config - These tests cover the functionality to update a section config after it's components are done evaluating * Fix failing cypress tests and cyclic dependency issue * Fixes some more tests * Fixed migration of row objects (#14896) * Bumped the version of design system package * Update: reverted change to EE selector * Fix deletion pointer * Update: selector for js on load spec - Synced with changes related to ADS dropdown * Fix mongoDBShoppingCart spec * Remove comments * Fix: mongo shopping cart test failures * fix: mongo shopping cart spec * Dummy push to retrigger vercel * fix: mongo shopping cart spec * Update MongoDBShoppingCart_spec.js * fix: removed unused click away * dummy commit * Update: moved helper functions to separate file * Add: added tests for saga functions - Worked on testing for - extractFetchDynamicValueFormConfigs - extractQueueOfValuesToBeFetched * Add if check for queueOfValuesToBeFetched * Resolve review comments * Empty-Commit Co-authored-by: Irongade <adeoluayangade@yahoo.com> Co-authored-by: Ayush Pahwa <ayush@appsmith.com> Co-authored-by: Aman Agarwal <aman@appsmith.com> Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com> Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com> Co-authored-by: Albin <albin@appsmith.com>
2022-07-04 05:43:27 +00:00
})
test: Cypress | Replace static waits from Helpers + Flaky fixes (#29856) ## Description - This PR removes static waits from below helpers & added dynamic checks as needed: - apiPage.CreateApi(), apiPage.CreateAndFillGraphqlApi() - app/client/cypress/support/Pages/AppSettings/ThemeSettings.ts - cy.CreateNewAppInNewWorkspace() - replaced static wait with dynamic check - dataSources.NavigateToDSCreateNew() - removed wait, updated logic - agHelper.VerifyEvaluatedValue() - Flaky fix below specs: - /Git/GitSync/GitSyncedApps_spec.js (fixed testcase # 2 - 4th onwards is failing due to childbranch/master change - to be checked further) - /Git/GitDiscardChange/DiscardChanges_spec.js (EditorNavigation.NavigateToDatasource(), Sidebar.navigate()) - /BugTests/ApiBugs_Spec.ts (3rd case) - /Dropdown/Dropdown_onOptionChange_spec.js (3rd case) - /ServerSide/ApiTests/API_Search_spec.js (3rd case) - Removed extra Refresh call from before hook in /BugTests/ApiBugs_Spec.ts #### Type of change - Script update (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Bug Fixes** - Improved the reliability of API creation processes. - Enhanced the user experience in theme settings by removing unnecessary delays. - Streamlined navigation in the data source creation workflow. - **Refactor** - Optimized test automation scripts for better performance and maintainability. - Updated element interaction methods to increase test robustness. - Refined logic for selecting and asserting UI components within test cases. - **Chores** - Adjusted test suite configurations to include new test cases and exclude a specific test file. - Removed redundant page refresh steps to improve test execution speed. - **Tests** - Added new assertions to validate the evaluated values in test scenarios. - Simplified data source and query creation in widget test cases for clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-05 06:12:03 +00:00
.trigger("mouseout");
}
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
public UploadFile(fixtureName: string, toClickUpload = true, index = 0) {
//cy.fixture(fixtureName).as("selectFileFixture");//giving issue, hence using directly as below
cy.get(this.locator._uploadFiles)
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
.eq(index)
.selectFile("cypress/fixtures/" + fixtureName, { force: true })
.wait(3000);
toClickUpload && this.GetNClick(this.locator._uploadBtn, 0, false);
}
public AssertElementAbsence(selector: ElementType, timeout = 0) {
//Should not exists - cannot take indexes
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
return this.GetElement(selector, "not.exist", timeout).should("not.exist");
}
public GetText(
selector: ElementType,
textOrValue: "text" | "val" = "text",
index = 0,
) {
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
return this.GetElement(selector).eq(index).invoke(textOrValue);
}
AssertHeight(selector: ElementType, height: number) {
return this.GetElement(selector)
.invoke("height")
.should("be.closeTo", height, 1);
}
public AssertText(
selector: ElementType,
textOrValue: "text" | "val" = "text",
expectedData: string,
index = 0,
) {
this.GetElement(selector)
.eq(index)
.invoke(textOrValue)
.should("deep.equal", expectedData);
}
2022-12-11 14:42:32 +00:00
public AssertElementFocus(selector: ElementType, isFocused = true) {
if (isFocused) return this.GetElement(selector).should("be.focused");
return this.GetElement(selector).should("not.be.focused");
}
public AssertElementVisibility(
selector: ElementType,
visibility = true,
index = 0,
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
timeout = Cypress.config("pageLoadTimeout"),
) {
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
return this.GetElement(selector, "exist", timeout)
.eq(index)
.scrollIntoView()
.should(visibility == true ? "be.visible" : "not.be.visible");
//return this.ScrollIntoView(selector, index, timeout).should("be.visible");//to find out why this is failing.
}
test: Cypress | Replace static with Dynamic checks (#29664) ## Description - This PR removed static wait from spec - API_with_List_Widget_spec - Git/GitSync/GitSyncedApps_spec.js (fixes for EE flakyness - WIP - still failing in chrome, pass in electron) - Remove wait from OpenPaneAndChangeThemeColors() & added n/w check - Upgrading Cypress from 13.3 to 13.6 - Flaky fix: - ClientSide/Widgets/Text/Text2_Spec.ts - ClientSide/Widgets/Select/Select2_Spec.ts - cypress/e2e/Regression/ClientSide/JSLibrary/Library_spec.ts - /ClientSide/Git/GitWithJSLibrary/GitwithCustomJSLibrary_spec.js #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Enhanced Git synchronization capabilities with improved user interface interactions. - Streamlined navigation back to the editor from deployment mode. - Implemented more robust table loading checks to ensure data is properly displayed. - **Bug Fixes** - Fixed issues with element presence assertions to improve test reliability. - Addressed the visibility of certain UI elements to ensure they appear as expected. - **Tests** - Updated end-to-end test scripts to reflect new interactions and assertions. - Added a new test file `GitSyncedApps_spec.js` to cover Git-synced applications. - Removed outdated test file `Fork_Template_spec.js`. - **Refactor** - Improved method calls for querying and interacting with elements to enhance test stability. - Optimized wait conditions for element visibility to reduce flakiness in tests. - **Chores** - Adjusted the GitHub Actions workflow for client-server build to refine output for matrix counts. - Updated CI test workflow to incorporate Electron setup and remove Chrome setup steps. - **Documentation** - Included comments to explain the rationale behind certain timeout values and method changes. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-22 11:50:05 +00:00
IsElementVisible(selector: ElementType) {
return this.GetElement(selector).then(($element) =>
Cypress.$($element).length > 0 ? true : false,
) as Cypress.Chainable<boolean>;
}
fix: Fix test case for api (#36083) ## Description RCA: Toggle button from log tab is not open always. Due to this next element was not visible. Fix: Have gone through the test case and found unnecessary steps for verifying successful log. Update the only required code and fixed the test case. Fixes #`36082` ## Automation /ok-to-test tags="@tag.Datasource" ### :mag: 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/10714184973> > Commit: bd850ca5d80f39c544b6953c85cddc43a3e723d0 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10714184973&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Datasource` > Spec: > <hr>Thu, 05 Sep 2024 05:42:15 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Enhanced API testing capabilities with updated test cases for various HTTP methods. - Introduced new properties for improved API debugging in the UI. - Added a method to check the visibility of specific elements in tests. - **Bug Fixes** - Improved the `validateRequest` command to handle multiple API log entries more effectively. - **Chores** - Updated the test specifications to focus on server-side API tests, replacing outdated client-side entries. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-09-06 05:01:32 +00:00
/**
* Checks if the specified instance of the element is present with number and visible on the page.
*
* @param {ElementType} selector - The element selector.
* @param {number} [eq=0] - The index of the element to check (default is 0).
* @returns {Cypress.Chainable<boolean>} - Returns a boolean wrapped in a Cypress Chainable indicating visibility.
*/
IsElementVisibleWithEq(selector: ElementType, eq: number = 0) {
return this.GetElement(selector)
.eq(eq)
.then(($element) => {
// Check if the element is present and visible
const isVisible =
Cypress.$($element).length > 0 && Cypress.$($element).is(":visible");
console.log(`Element visibility: ${isVisible}`);
return isVisible;
}) as Cypress.Chainable<boolean>;
}
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
public FailIfErrorToast(error: string) {
cy.get("body").then(($ele) => {
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
if ($ele.find(this.locator._toastMsg).length > 0) {
if ($ele.find(this.locator._specificToast(error)).length > 0) {
throw new Error("Error Toast from Application:" + error);
}
}
});
}
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
public AssertElementExist(
selector: ElementType,
index = 0,
timeout = Cypress.config("defaultCommandTimeout"),
) {
return this.GetElement(selector, "exist", timeout)
.eq(index)
.should("exist");
}
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
public ScrollIntoView(
selector: ElementType,
index = 0,
timeout = Cypress.config("defaultCommandTimeout"),
) {
return this.GetElement(selector, "exist", timeout)
.should("have.length.at.least", 1)
.eq(index)
.then(($element) => {
if (
Cypress.$("body").find($element).length &&
$element[0].offsetParent !== null
) {
return $element;
} else {
$element[0].scrollIntoView();
return $element;
}
});
}
public AssertElementLength(
selector: ElementType,
length: number,
index: number | null = null,
) {
if (index)
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
return this.GetElement(selector, "noVerify")
.eq(index)
.should("have.length", length);
else
return this.GetElement(selector, "noVerify").should(
"have.length",
length,
);
}
public FocusElement(selector: ElementType) {
this.GetElement(selector).focus();
}
public AssertContains(
text: string | RegExp,
fix: Auto-generated header Refactor (#19873) API content type refactor flow. More information can be found [here](https://www.notion.so/appsmith/API-Content-type-Header-Refactor-07f2f944e13f43148210c2461cf3fcda?d=339958cf1d374fefadfa437f86d95627) Fixes #18473 - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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 --------- Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: PiyushPushkar02 <118709669+PiyushPushkar02@users.noreply.github.com> Co-authored-by: Sumit Kumar <sumit@appsmith.com> Co-authored-by: Aishwarya-U-R <91450662+Aishwarya-U-R@users.noreply.github.com>
2023-02-24 12:18:48 +00:00
exists: "exist" | "not.exist" | "be.visible" = "exist",
selector?: string,
) {
test: Cypress | Replace static with Dynamic waits - Part IV (#29641) ## Description - This PR removes static wait from below 'app/client/cypress/e2e/Regression/ClientSide/**' & replaces with dynamic checks as needed: - /AuditLogs/Audit_logs_spec.js - /Autocomplete/Autocomplete_setters_spec.ts - /Autocomplete/BracketNotation_AC_spec.ts - /Autocomplete/Bugs_AC_Spec.ts - /Autocomplete/JS_AC1_spec.ts - /Autocomplete/JS_AC2_spec.ts - /Autocomplete/PropertyPaneSuggestion_spec.ts - /Autocomplete/autocomplete_spec.ts - /Branding/Branding_spec.js - /Debugger/Widget_property_navigation_spec.ts - Flaky fix to move to TED(from Users) & remove wait in Widgets/Chart/Chart_Widget_Loading_spec.js - Dynamic wait add - ClientSide/SetProperty/SetOptions_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Optimized test flows by removing unnecessary wait times, improving test reliability and execution speed. - Skipped certain test suites and cases, likely due to ongoing development or identified issues requiring attention. - Updated test cases to reflect new functionalities and ensure proper synchronization during test execution. - **Chores** - Adjusted the list of limited tests, refining the focus of the test suite for more targeted testing. - **Documentation** - Updated test descriptions and comments to better reflect their purpose and the importance of specific actions within the tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-15 12:32:43 +00:00
let timeout = Cypress.config().pageLoadTimeout;
if (selector) {
test: Cypress | Replace static with Dynamic waits - Part IV (#29641) ## Description - This PR removes static wait from below 'app/client/cypress/e2e/Regression/ClientSide/**' & replaces with dynamic checks as needed: - /AuditLogs/Audit_logs_spec.js - /Autocomplete/Autocomplete_setters_spec.ts - /Autocomplete/BracketNotation_AC_spec.ts - /Autocomplete/Bugs_AC_Spec.ts - /Autocomplete/JS_AC1_spec.ts - /Autocomplete/JS_AC2_spec.ts - /Autocomplete/PropertyPaneSuggestion_spec.ts - /Autocomplete/autocomplete_spec.ts - /Branding/Branding_spec.js - /Debugger/Widget_property_navigation_spec.ts - Flaky fix to move to TED(from Users) & remove wait in Widgets/Chart/Chart_Widget_Loading_spec.js - Dynamic wait add - ClientSide/SetProperty/SetOptions_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Optimized test flows by removing unnecessary wait times, improving test reliability and execution speed. - Skipped certain test suites and cases, likely due to ongoing development or identified issues requiring attention. - Updated test cases to reflect new functionalities and ensure proper synchronization during test execution. - **Chores** - Adjusted the list of limited tests, refining the focus of the test suite for more targeted testing. - **Documentation** - Updated test descriptions and comments to better reflect their purpose and the importance of specific actions within the tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-15 12:32:43 +00:00
return cy.contains(selector, text, { timeout }).should(exists);
}
test: Cypress | Replace static with Dynamic waits - Part IV (#29641) ## Description - This PR removes static wait from below 'app/client/cypress/e2e/Regression/ClientSide/**' & replaces with dynamic checks as needed: - /AuditLogs/Audit_logs_spec.js - /Autocomplete/Autocomplete_setters_spec.ts - /Autocomplete/BracketNotation_AC_spec.ts - /Autocomplete/Bugs_AC_Spec.ts - /Autocomplete/JS_AC1_spec.ts - /Autocomplete/JS_AC2_spec.ts - /Autocomplete/PropertyPaneSuggestion_spec.ts - /Autocomplete/autocomplete_spec.ts - /Branding/Branding_spec.js - /Debugger/Widget_property_navigation_spec.ts - Flaky fix to move to TED(from Users) & remove wait in Widgets/Chart/Chart_Widget_Loading_spec.js - Dynamic wait add - ClientSide/SetProperty/SetOptions_Spec.ts #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Optimized test flows by removing unnecessary wait times, improving test reliability and execution speed. - Skipped certain test suites and cases, likely due to ongoing development or identified issues requiring attention. - Updated test cases to reflect new functionalities and ensure proper synchronization during test execution. - **Chores** - Adjusted the list of limited tests, refining the focus of the test suite for more targeted testing. - **Documentation** - Updated test descriptions and comments to better reflect their purpose and the importance of specific actions within the tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-15 12:32:43 +00:00
return cy.contains(text, { timeout }).should(exists);
}
public GetNAssertContains(
selector: ElementType,
text: string | number | RegExp,
exists: "exist" | "not.exist" = "exist",
) {
test: Cypress | Replace static with Dynamic waits - Part 1 (#29405) ## Description - Removed hard waits from below specs: - Apps/CurrencyInputIssue_Spec.js - ClientSide/Widgets/Modal/Modal_spec.ts (Fix & unskip) - /Binding/TableV2_Widget_API_Pagination_spec.js - Unskip - ApiTests/API_Unique_name_spec.js - Flaky fix - TableV2_Widget_API_Pagination_spec.js - Flaky fix - /ServerSide/QueryPane/S3_1_spec.js - Removed empty ReusableHelper.ts - Improved agHelper.GetElement() to include the assertion for element presence/absence - Modified helpers/function calls to fit the above syntax of GetElement() - Improved WaitUntilEleAppear(), WaitUntilEleDisappear() to use timeout from cypress config #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced end-to-end test stability by replacing static waits with dynamic element-based synchronization. - Skipped certain test suites to streamline the testing process. - Improved test assertions and control flow for more reliable verification of UI components. - **Chores** - Updated test helper methods to support new verification strategies. - Cleaned up unnecessary imports and inheritance in test support classes. - **Documentation** - Adjusted test case descriptions to reflect the new synchronization methods used. - **Bug Fixes** - Fixed issues with test synchronization that could lead to flaky test results. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-11 09:09:36 +00:00
return this.GetElement(selector, "noVerify").contains(text).should(exists);
}
public AssertURL(url: string) {
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
this.WaitForCondition(() =>
cy.url().then((currentUrl) => {
return currentUrl.includes(url);
}),
test: Cypress | Flaky fixes + Replacing static waits (#30067) ## Description - This PR includes the flaky fixes of the below specs: - jsEditor.NavigateToNewJSEditor() using TS helpers (Addressing flakyness in specs /BugTests/JS_Bug29131_spec.ts, BugTests/invalidLintError_Spec.ts, ClientSide/BugTests/JS_Bug28764_Spec.ts, /ClientSide/BugTests/Bug29566_Spec.ts, ServerSide/JsFunctionExecution/JSFunctionExecution_spec.ts) - /Widgets/ListV2/Listv2_onItemClick_spec.js (toast validation updated to ts helper) - /Apps/MongoDBShoppingCart_spec.ts (Flaky fix 2nd case) - /Regression/Apps/PromisesApp_spec.js (1st test) - /ClientSide/OtherUIFeatures/ApplicationURL_spec.js (whole spec for static wait removal + flaky fixes) - /ClientSide/Templates/Fork_Template_spec.js (complete spec fixes, cypress exception fix) - /Sanity/Datasources/Arango_Basic_Spec.ts (3rd test) - /ServerSide/OnLoadTests/JSOnLoad2_Spec.ts (8th case flaky fix) - /ClientSide/MobileResponsiveTests/AutoFillWidgets_Reflow_spec.ts (2nd testcase, flow update) - /ClientSide/OtherUIFeatures/Resize_spec.js (import update) - /ClientSide/Templates/Fork_Template_spec.js (1st & 3rd for flaky fix, removed 2nd - redundant check) - /Git/GitSync/RepoLimitExceededErrorModal_spec.js flaky fix for EE repo failure - /ServerSide/ApiTests/API_Bugs_Spec.js (3rd case, removed waits, moved to TED Api) - /Apps/EchoApiCMS_spec.js (removed redundant action) - /AppNavigation/Sidebar_spec.ts, /AppNavigation/TopInline_spec.ts, /AppNavigation/TopStacked_spec.ts - added refresh calls for CI flakyness - homePage.RenameWorkspace() & homePage.NavigateToHome() & homePage.Signout() - removed static wait, added dynamic check - homePage.CreateNewApplication() - removed static wait - homePage.CreateAppInWorkspace() - removed commented code - homePage.CreateNewWorkspace() - logic improved - agHelper.AssertURL() - added timeout, removed static wait, calling assertHelper.AssertDocumentReady() - Few of agHelper methods timeout & error mesg text update - cy.Signup() - updated validations - agHelper.CheckForErrorToast() to agHelper.FailIfErrorToast() - method name - /ClientSide/BugTests/DSDiscardBugs_spec.ts - removed unnecessary method call #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after all changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Enhanced timeout handling across various helper methods for improved stability. - Streamlined interactions with UI elements using updated helper methods. - Adjusted test suites to utilize configuration values for consistency. - **Tests** - Temporarily disabled specific test suites to address current issues. - Updated test assertions and interaction patterns for clarity and reliability. - Added new test cases and assertions to cover additional functionalities. - **Chores** - Updated workflow variables for more efficient CI processes. - Curated the list of limited tests to focus on critical test scenarios. - **Documentation** - Clarified test descriptions and intentions for better understanding. - **Bug Fixes** - Fixed UI element interactions to prevent test flakiness and improve user experience. - Implemented page refresh before application imports to ensure clean state for tests. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-01-12 06:30:12 +00:00
);
this.assertHelper.AssertDocumentReady();
}
public ScrollTo(
selector: ElementType,
position:
| "topLeft"
| "top"
| "topRight"
| "left"
| "center"
| "right"
| "bottomLeft"
| "bottom"
| "bottomRight",
) {
chore: upgrade to prettier v2 + enforce import types (#21013)Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com> ## Description This PR upgrades Prettier to v2 + enforces TypeScript’s [`import type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export) syntax where applicable. It’s submitted as a separate PR so we can merge it easily. As a part of this PR, we reformat the codebase heavily: - add `import type` everywhere where it’s required, and - re-format the code to account for Prettier 2’s breaking changes: https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes This PR is submitted against `release` to make sure all new code by team members will adhere to new formatting standards, and we’ll have fewer conflicts when merging `bundle-optimizations` into `release`. (I’ll merge `release` back into `bundle-optimizations` once this PR is merged.) ### Why is this needed? This PR is needed because, for the Lodash optimization from https://github.com/appsmithorg/appsmith/commit/7cbb12af886621256224be0c93e6a465dd710ad3, we need to use `import type`. Otherwise, `babel-plugin-lodash` complains that `LoDashStatic` is not a lodash function. However, just using `import type` in the current codebase will give you this: <img width="962" alt="Screenshot 2023-03-08 at 17 45 59" src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png"> That’s because Prettier 1 can’t parse `import type` at all. To parse it, we need to upgrade to Prettier 2. ### Why enforce `import type`? Apart from just enabling `import type` support, this PR enforces specifying `import type` everywhere it’s needed. (Developers will get immediate TypeScript and ESLint errors when they forget to do so.) I’m doing this because I believe `import type` improves DX and makes refactorings easier. Let’s say you had a few imports like below. Can you tell which of these imports will increase the bundle size? (Tip: it’s not all of them!) ```ts // app/client/src/workers/Linting/utils.ts import { Position } from "codemirror"; import { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` It’s pretty hard, right? What about now? ```ts // app/client/src/workers/Linting/utils.ts import type { Position } from "codemirror"; import type { LintError as JSHintError, LintOptions } from "jshint"; import { get, isEmpty, isNumber, keys, last, set } from "lodash"; ``` Now, it’s clear that only `lodash` will be bundled. This helps developers to see which imports are problematic, but it _also_ helps with refactorings. Now, if you want to see where `codemirror` is bundled, you can just grep for `import \{.*\} from "codemirror"` – and you won’t get any type-only imports. This also helps (some) bundlers. Upon transpiling, TypeScript erases type-only imports completely. In some environment (not ours), this makes the bundle smaller, as the bundler doesn’t need to bundle type-only imports anymore. ## Type of change - Chore (housekeeping or task changes that don't impact user perception) ## How Has This Been Tested? This was tested to not break the build. ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] 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 - [x] 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 --------- Co-authored-by: Satish Gandham <hello@satishgandham.com> Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
2023-03-16 11:41:47 +00:00
return this.GetElement(selector).scrollTo(position).wait(2000);
}
public ScrollToXY(
selector: ElementType,
x: number | string,
y: number | string,
) {
return this.GetElement(selector).scrollTo(x, y).wait(2000);
}
public GetWidth(widgetSelector: string) {
this.GetElement(widgetSelector).then(($element) => {
cy.wrap(Number($element.width())).as("eleWidth");
});
test: Auto dimension scenarios (#23398) ## Description Adds Cypress tests for ensuring Auto layout's auto-dimension feature works properly #### PR fixes following issue(s) Fixes #23230 Fixes #22580 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-05-30 02:40:13 +00:00
}
public GetHeight(widgetSelector: string) {
this.GetElement(widgetSelector).then(($element) => {
cy.wrap(Number($element.height())).as("eleHeight");
});
test: Auto dimension scenarios (#23398) ## Description Adds Cypress tests for ensuring Auto layout's auto-dimension feature works properly #### PR fixes following issue(s) Fixes #23230 Fixes #22580 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-05-30 02:40:13 +00:00
}
public GetWidgetCSSHeight(widgetSelector: string, index = 0) {
return this.GetElement(widgetSelector).eq(index).invoke("css", "height");
}
public GetWidgetCSSFrAttribute(
widgetSelector: string,
attribute: string,
index = 0,
) {
return this.GetElement(widgetSelector).eq(index).invoke("css", attribute);
chore: Conversion and Copy Paste tests for Autolayout (#23702) ## Description Add Auto layout related test cases for Conversion algorithm and copy paste test cases #### PR fixes following issue(s) Fixes #23642 Fixes #23644 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### How Has This Been Tested? - [ ] Cypress #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-09 14:40:12 +00:00
}
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
public GetWidgetCSSValue(
widgetSelector: string,
attribute: string,
index = 0,
) {
return this.GetElement(widgetSelector)
.eq(index)
.then(($element) => {
cy.wrap($element.css(attribute)).as("cssAttributeValue");
});
}
test: Auto dimension scenarios (#23398) ## Description Adds Cypress tests for ensuring Auto layout's auto-dimension feature works properly #### PR fixes following issue(s) Fixes #23230 Fixes #22580 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## 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: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-05-30 02:40:13 +00:00
GetWidgetByName(widgetName: string) {
return this.GetElement(this.locator._widgetByName(widgetName));
}
fix: Improve CodeMirror rendering performance using idleCallback (#13676) * working editor wrapper * updated other property controls * fix tablefilter_spec unit test * autofocus on editor * update font styles * show lint errors * add syntax highlighting * fix import issue * fix input height * use lazy and suspense * wip * update code clean up * update input style * fix select widget issue * fix build issue * fix import issue and linting css * update lint error method * add polyfill for idle callback * fix undo aggregate helper changes * rename CodeEditor component * fix tests add delay before code mirror * undo name change * rename lazy editor * add comments and update aggregate helper * fix cypress helper * fix testJsonText command * update aggregate helper * add wait to allow time to load * fix filepicker issue * fix currency input test * fix unit tests * update aggregate helper * fix table property tests * fix test * fix command * update json text command * updated command ii * update iii * update iv * add force click * check for wrapper * fix for objects * fix test iv * fix test v * fix tests vi * fix tests vi * fix variable naming issue * fix tests vii * remove wait from wrapper click * fix tests viii * fix recheck wrapper availability * fix updateCodeInput command * fix undo while loop * fix ix * fix each loop * removed EnableAllCodeEditors * updated tests * Upated wait * updated some more tests * updated wait time * updated common method * updated all related common methods * update state name and add callback timeout * updated test * updated the test * fix use while loop and update count * update click func * fix use get instead of find * fix on click action command * remove comments * fix: update import statements * add force click to widget command * update wrapper ui * fix auto load code editor * update editor wrapper ui * fix lineheight adjustment * refactor editor wrapper * update style import * fix ascetic style import * fix font style * fix wrapper height * update color for code block * fix min height of content wrapper * remove error linting and editor wrapper * remove unused variable * remove unused imports * fix font color for objects * update styles for placeholders * remove console log * remove react syntax highlighter * cancel idlecallback on unmount * Delay input foucs Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: apple <nandan@thinkify.io> Co-authored-by: Satish Gandham <satish@appsmith.com>
2022-07-20 09:26:12 +00:00
public EnableAllEditors() {
this.Sleep(2000);
fix: Improve CodeMirror rendering performance using idleCallback (#13676) * working editor wrapper * updated other property controls * fix tablefilter_spec unit test * autofocus on editor * update font styles * show lint errors * add syntax highlighting * fix import issue * fix input height * use lazy and suspense * wip * update code clean up * update input style * fix select widget issue * fix build issue * fix import issue and linting css * update lint error method * add polyfill for idle callback * fix undo aggregate helper changes * rename CodeEditor component * fix tests add delay before code mirror * undo name change * rename lazy editor * add comments and update aggregate helper * fix cypress helper * fix testJsonText command * update aggregate helper * add wait to allow time to load * fix filepicker issue * fix currency input test * fix unit tests * update aggregate helper * fix table property tests * fix test * fix command * update json text command * updated command ii * update iii * update iv * add force click * check for wrapper * fix for objects * fix test iv * fix test v * fix tests vi * fix tests vi * fix variable naming issue * fix tests vii * remove wait from wrapper click * fix tests viii * fix recheck wrapper availability * fix updateCodeInput command * fix undo while loop * fix ix * fix each loop * removed EnableAllCodeEditors * updated tests * Upated wait * updated some more tests * updated wait time * updated common method * updated all related common methods * update state name and add callback timeout * updated test * updated the test * fix use while loop and update count * update click func * fix use get instead of find * fix on click action command * remove comments * fix: update import statements * add force click to widget command * update wrapper ui * fix auto load code editor * update editor wrapper ui * fix lineheight adjustment * refactor editor wrapper * update style import * fix ascetic style import * fix font style * fix wrapper height * update color for code block * fix min height of content wrapper * remove error linting and editor wrapper * remove unused variable * remove unused imports * fix font color for objects * update styles for placeholders * remove console log * remove react syntax highlighter * cancel idlecallback on unmount * Delay input foucs Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: apple <nandan@thinkify.io> Co-authored-by: Satish Gandham <satish@appsmith.com>
2022-07-20 09:26:12 +00:00
cy.get("body").then(($body: any) => {
if ($body.get(this.locator._codeEditorWrapper)?.length > 0) {
let count = $body.get(this.locator._codeEditorWrapper)?.length || 0;
while (count) {
$body
.get(this.locator._codeEditorWrapper)
?.eq(0)
.then(($el: any) => $el.click({ force: true }).wait(100));
count = $body.find(this.locator._codeEditorWrapper)?.length || 0;
}
}
});
this.Sleep();
fix: Improve CodeMirror rendering performance using idleCallback (#13676) * working editor wrapper * updated other property controls * fix tablefilter_spec unit test * autofocus on editor * update font styles * show lint errors * add syntax highlighting * fix import issue * fix input height * use lazy and suspense * wip * update code clean up * update input style * fix select widget issue * fix build issue * fix import issue and linting css * update lint error method * add polyfill for idle callback * fix undo aggregate helper changes * rename CodeEditor component * fix tests add delay before code mirror * undo name change * rename lazy editor * add comments and update aggregate helper * fix cypress helper * fix testJsonText command * update aggregate helper * add wait to allow time to load * fix filepicker issue * fix currency input test * fix unit tests * update aggregate helper * fix table property tests * fix test * fix command * update json text command * updated command ii * update iii * update iv * add force click * check for wrapper * fix for objects * fix test iv * fix test v * fix tests vi * fix tests vi * fix variable naming issue * fix tests vii * remove wait from wrapper click * fix tests viii * fix recheck wrapper availability * fix updateCodeInput command * fix undo while loop * fix ix * fix each loop * removed EnableAllCodeEditors * updated tests * Upated wait * updated some more tests * updated wait time * updated common method * updated all related common methods * update state name and add callback timeout * updated test * updated the test * fix use while loop and update count * update click func * fix use get instead of find * fix on click action command * remove comments * fix: update import statements * add force click to widget command * update wrapper ui * fix auto load code editor * update editor wrapper ui * fix lineheight adjustment * refactor editor wrapper * update style import * fix ascetic style import * fix font style * fix wrapper height * update color for code block * fix min height of content wrapper * remove error linting and editor wrapper * remove unused variable * remove unused imports * fix font color for objects * update styles for placeholders * remove console log * remove react syntax highlighter * cancel idlecallback on unmount * Delay input foucs Co-authored-by: Aishwarya UR <aishwarya@appsmith.com> Co-authored-by: apple <nandan@thinkify.io> Co-authored-by: Satish Gandham <satish@appsmith.com>
2022-07-20 09:26:12 +00:00
}
chore: cypress tests added (#19422) ## Description Cypress test cases for datasource autosave improvement https://github.com/appsmithorg/appsmith/issues/4381: Fixes #18518 Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - This change requires a documentation update ## How Has This Been Tested? - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] 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 Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2023-01-13 11:40:58 +00:00
public AssertElementEnabledDisabled(
selector: ElementType,
index = 0,
disabled = true,
) {
test: Cypress | (DI) S3 added validations (Cont.,) + CI Stabilize (#26486) ## Description **- This PR includes below:** - NavigateBacktoEditor() improved - Flaky fixed - ClientSide/EmbedSettings/EmbedSettings_spec.js- 1st test - ServerSide/QueryPane/S3_1_spec.js - 1st test - handling added error message - Sanity/Datasources/Arango_Basic_Spec.ts - 3rd test - schema pop-up handle - ClientSide/FormLogin/EnableFormLogin_spec.js - server restart fix - Moved AssertNetworkExecutionSuccess to AssertHelper - GetNAssertContains() simplified - Widgets/ListV2/DataIdentifierProperty_spec.ts - 7th case flaky fix - /Widgets/Checkbox/CheckboxGroup2_spec.js - flaky fix - BugTests/AllWidgets_Reset_Spec.ts - script improved - /Widgets/Radio/Radio_spec.js - script improved - AssertExistingCheckedState() improved to validate attribute & checked state - ClickButton() improved - AssertElementEnabledDisabled() improved - UpdateInput(), replaced with TypeText() **- New scripting for:** - S3 - Deploy mode validations added - S3 - Edit File validation added from Deploy page - S3 - Upon file upload, validating button changes - S3 - Verify max number of files upload - S3 - File name Prefix search & Delete improved - S3_2_spec from js to ts helpers - Tc # 2439 scripted #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing > #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed
2023-08-21 07:49:28 +00:00
return this.GetElement(selector)
.eq(index)
.should(disabled ? "have.attr" : "not.have.attr", "disabled");
chore: cypress tests added (#19422) ## Description Cypress test cases for datasource autosave improvement https://github.com/appsmithorg/appsmith/issues/4381: Fixes #18518 Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - This change requires a documentation update ## How Has This Been Tested? - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## Checklist: ### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] 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 Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2023-01-13 11:40:58 +00:00
}
// Waits until all LazyCodeEditor wrappers finished loading the actual code editor.
// Called “EnableAllCodeEditors” to match the command in the JS part of the Cypress codebase
// with the same name.
public EnableAllCodeEditors() {
cy.get(this.lazyCodeEditorFallback, { timeout: 60000 }).should("not.exist");
// Code editors might not always be present on the page, so we need to check for their existence first
// (https://docs.cypress.io/guides/core-concepts/conditional-testing#Element-existence)
cy.get("body").then(($body) => {
if ($body.find(this.lazyCodeEditorRendered).length === 0) return;
return cy.get(this.lazyCodeEditorRendered).each(($el) => {
cy.wrap($el).find(".CodeMirror").should("exist");
});
});
}
feat: Open doc links in a new tab (#22613) ## Description When user clicks on a docs link, open the docs in a new tab instead of the omnibar. Fixes #22409 Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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-04-26 16:03:13 +00:00
public AssertNewTabOpened(openTabFunc: () => void) {
cy.window().then((win) => {
cy.spy(win, "open").as("windowOpen");
openTabFunc();
cy.get("@windowOpen").should("be.called");
feat: Open doc links in a new tab (#22613) ## Description When user clicks on a docs link, open the docs in a new tab instead of the omnibar. Fixes #22409 Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce. > Please also list any relevant details for your test configuration. > Delete anything that is not important - Manual - Jest - Cypress ### Test Plan > Add Testsmith test cases links that relate to this PR ### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) ## 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-04-26 16:03:13 +00:00
});
}
test: Cypress | Helpers improved + Flaky fixes (#30735) ## Description - This PR fixes the RenameApplication flakyness in CI with added dynamic check - Also replacing js cy.renameApp to TS helper - Flaky fixes - cypress/e2e/Regression/ClientSide/Workspace/MemberRoles_Spec.ts (entire spec updates for EnableGAC, removed signout from 'it' blocks) - cypress/e2e/Regression/ClientSide/Workspace/ShareAppTests_Spec.ts (7th flaky fixed) - cypress/e2e/Regression/ClientSide/SetProperty/WidgetPropertySetters2_spec.ts (5th test) - cypress/e2e/Regression/ClientSide/Templates/Fork_Template_Existing_app_spec.js (2nd - added validation to match the test description, 1st & 3rd - removed static waits, Added multiple dynamic checks) - cypress/e2e/Regression/ClientSide/OtherUIFeatures/ApplicationURL_spec.js (3rd & 4th flaky tests) - homePage.AssertViewPageLoad() created - homePage.LaunchAppFromAppHover() improved - homePage.Signout() - added dynamic checks - Added more validation to homePage.Signup() method with Dynamic checks - homePage.LeaveWorkspace() removed redundant SelectWorkspace call - admingSettings.EnableGAC() - added dynamic checks - featureFlagIntercept - removed static sleep, reload check improved - agHelper.VisitNAssert() - removed static sleep - homePage.OpenMembersPageForWorkspace() - removed sleep, added dynamic checks #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after Cypress tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Refactor** - Enhanced Cypress test commands across multiple test suites for improved efficiency and readability. - Refactored conditional checks and method invocations for better test scenario handling. - **Tests** - Updated testing approaches for application deployment, workspace management, and error handling. - Introduced new assertions for UI visibility and functional behavior in automated tests. - **Chores** - Optimized GitHub Actions workflow by adjusting the matrix count for build processes. - Added new test specs for limited tests in the client-side regression suite. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-01 11:12:53 +00:00
public VisitNAssert(url: string, apiToValidate = "") {
test: Cypress | Text_With_Different_Size_spec.ts re-write + Flaky fixes (#30445) ## Description - This PR re-writes the entire Text_With_Different_Size_spec.ts spec to fix the master run flakyness and and improves the overall complexity of the test case format - cypress/e2e/Regression/ClientSide/Onboarding/StartFromScratch_spec.ts (agHelper.VisitNAssert improved) - Master runs pass at [Run1](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899183181), [Run2](https://github.com/appsmithorg/appsmith-ee/pull/3337#issuecomment-1899197871) - cypress/e2e/Regression/ClientSide/BugTests/AbortAction_Spec.ts (1st test - replace with TED url) - getConsolidatedDataApi() separated, created new agHelper.CypressReload() - Removed cy.log statements from few places - homePage.LogOutviaAPI() removed static wait - Replaced homePage.LogOutviaAPI(); with homePage.Signout(); in places where its flaky - Split /Onboarding/StartFromScratch_spec.ts to 3 specs to reduce flakyness - Split /ClientSide/PartialImportExport/PartialExport_Widgets_spec.ts with failing test to run the other tests in CI - /Templates/Fork_Template_To_App_spec.ts - Added dynamic check to fix CI flakiness - agHelper.AssertURL(), assertHelper.AssertDocumentReady() improved - jsEditor.NavigateToNewJSEditor() improved - cypress/e2e/Regression/ClientSide/ExplorerTests/JSEditorContextMenu_Spec.ts - jsEditor.ValidateDefaultJSObjProperties improved - cypress/e2e/Regression/ServerSide/OnLoadTests/OnLoadActions_Spec.ts - (3rd case - flaky fix) #### Type of change - Script fix (non-breaking change which fixes an issue) ## Testing #### How Has This Been Tested? - [X] Cypress CI runs ## Checklist: #### QA activity: - [X] Added `Test Plan Approved` label after changes were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **Tests** - Enhanced test flexibility by dynamically constructing API URLs. - Improved test setup and flow in onboarding and regression suites. - Added new test spec files for dynamic height, onboarding, bug tests, login failure, and starting from scratch scenarios. - **Refactor** - Updated function calls and parameters across various test files for consistency and efficiency. - Removed redundant code and streamlined test actions. - **Chores** - Updated intercepted HTTP methods and added new utility functions to support test operations. - **Bug Fixes** - Fixed issues related to element visibility assertions in test scripts. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-08 11:25:58 +00:00
cy.visit(url);
this.AssertURL(url);
if (Cypress.env("AIRGAPPED")) {
// Intentionally left blank: No actions needed in air-gapped environment
} else
apiToValidate && this.assertHelper.AssertNetworkStatus(apiToValidate);
}
public GetDropTargetId(widgetName: string) {
return this.GetWidgetByName(widgetName).invoke("attr", "id");
}
public GetModalDropTargetId() {
return this.GetElement(this.locator._modal).invoke("attr", "id");
}
public BrowserNavigation(direction: number) {
//passing 1 works as browser back
//passing -1 works as browser forward
cy.go(direction);
}
public AssertCursorInput($selector: string, cursor = { ch: 0, line: 0 }) {
this.EnableAllCodeEditors();
cy.get($selector)
.first()
.find(".CodeMirror")
.first()
.then((ins) => {
const input = (ins[0] as any).CodeMirror;
// The input gets focused with a slight delay so we need to wait for it
cy.waitUntil(() => input.hasFocus()).then(() => {
const editorCursor = input.getCursor();
expect(editorCursor.ch).to.equal(cursor.ch);
expect(editorCursor.line).to.equal(cursor.line);
});
});
}
public GetAttribute(selector: string, attribName: string, index = 0) {
return this.GetElement(selector).eq(index).invoke("attr", attribName);
}
fix: entity explorer issue with datasources is fixed (#26770) ## Description This PR fixes issue with datasource not getting highlighted in entity explorer: Suppose we have 3 datasources in our applications: Users, Movies, and one Postgres or MySQL datasource. Once we create these datasources, we can see them getting populated in entity explorer -> datasource section. So there were two issues here: - If I select Users, I am able to see the Users datasource info on the right pane but its not active in the entity explorer, Similarly If I switch to movies, right pane gets updated with movies info but in the entity explorer, we cannot see movies getting highlighted as thats the active selection - If I am on Users datasource review page, I reload the page, now I can see active selection of Users being highlighted in the entity explorer, but now if we switch to Movies, right pane gets updated but in entity explorer Users is highlighted, which is incorrect This issue occurred because we have used useMemo for `datasourceElements`, two dependency passed are appWideDS and pageId, whenever we switch between datasources, `activeDatasourceId` gets updated but since we have cached the whole datasource listing component without the dependency of `activeDatasourceId`, it does not recompute and shows the same state as before. To fix the issue, `activeDatasourceId` needs to be passed in the dependency array. After adding this new dependency, another issue occurred with respect to entity explorer, The order of suggested datasources would change in entity explorer, This PR addresses that issue as well. #### PR fixes following issue(s) Fixes #26716 > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change - Bug fix (non-breaking change which fixes an issue) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] JUnit - [x] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] 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: - [x] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2023-09-01 07:56:34 +00:00
public AssertClassExists(selector: string, className: string) {
this.GetElement(selector).should("have.class", className);
fix: entity explorer issue with datasources is fixed (#26770) ## Description This PR fixes issue with datasource not getting highlighted in entity explorer: Suppose we have 3 datasources in our applications: Users, Movies, and one Postgres or MySQL datasource. Once we create these datasources, we can see them getting populated in entity explorer -> datasource section. So there were two issues here: - If I select Users, I am able to see the Users datasource info on the right pane but its not active in the entity explorer, Similarly If I switch to movies, right pane gets updated with movies info but in the entity explorer, we cannot see movies getting highlighted as thats the active selection - If I am on Users datasource review page, I reload the page, now I can see active selection of Users being highlighted in the entity explorer, but now if we switch to Movies, right pane gets updated but in entity explorer Users is highlighted, which is incorrect This issue occurred because we have used useMemo for `datasourceElements`, two dependency passed are appWideDS and pageId, whenever we switch between datasources, `activeDatasourceId` gets updated but since we have cached the whole datasource listing component without the dependency of `activeDatasourceId`, it does not recompute and shows the same state as before. To fix the issue, `activeDatasourceId` needs to be passed in the dependency array. After adding this new dependency, another issue occurred with respect to entity explorer, The order of suggested datasources would change in entity explorer, This PR addresses that issue as well. #### PR fixes following issue(s) Fixes #26716 > if no issue exists, please create an issue and ask the maintainers about this first > > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change - Bug fix (non-breaking change which fixes an issue) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] JUnit - [x] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] 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: - [x] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [x] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2023-09-01 07:56:34 +00:00
}
public VerifySnapshot(selector: string, identifier: string) {
this.GetElement(selector).matchImageSnapshot(identifier);
}
//Not used:
// private xPathToCss(xpath: string) {
// return xpath
// .replace(/\[(\d+?)\]/g, function (s, m1) { return '[' + (m1 - 1) + ']'; })
// .replace(/\/{2}/g, '')
// .replace(/\/+/g, ' > ')
// .replace(/@/g, '')
// .replace(/\[(\d+)\]/g, ':eq($1)')
// .replace(/^\s+/, '');
// }
// Cypress.Commands.add("byXpath", (xpath) => {
// const iterator = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null)
// const items = [];
// let item = iterator.iterateNext();
// while (item) {
// items.push(item);
// item = iterator.iterateNext();
// }
// return items;
// }, { timeout: 5000 });
public GetChildrenNClick(
selector: string,
childSelector: string,
index = 0,
force = false,
waitTimeInterval = 500,
ctrlKey = false,
) {
return this.ScrollIntoView(selector, index)
.children(childSelector)
.click({ force: force, ctrlKey: ctrlKey })
.wait(waitTimeInterval);
}
public selectAndValidateWidgetNameAndProperty({
clickOptions = {},
hierarchy = [],
propFieldName,
toggleEle = null,
valueToValidate,
widgetName,
widgetType = EntityType.Widget,
}: SelectAndValidateParams) {
// Select the widget by name, type, and hierarchy with optional click options
EditorNavigator.SelectEntityByName(
widgetName,
widgetType,
clickOptions,
hierarchy,
);
// Assert that the Property Pane title matches the widget name
this.AssertText(
ObjectsRegistry.PropertyPane._paneTitle,
"text",
widgetName,
);
// If a toggle element is provided, toggle its JavaScript mode
if (toggleEle) {
ObjectsRegistry.PropertyPane.ToggleJSMode(toggleEle);
}
// Validate that the property field value matches the expected value
ObjectsRegistry.PropertyPane.ValidatePropertyFieldValue(
propFieldName,
valueToValidate,
);
}
test: new test cases framework functions and Action selector (#37566) ## Description E2E Test cases for framework function & Action selector. Fixes [Issue URL](https://app.zenhub.com/workspaces/stability-pod-6690c4814e31602e25cab7fd/issues/gh/appsmithorg/appsmith/37370) ## Automation /ok-to-test tags="@tag.All" ### :mag: 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/12343756587> > Commit: 56f7a2eb2acee62237f9dcd395b6a618956e38a2 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12343756587&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Mon, 16 Dec 2024 03:08:25 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced property pane with new button widget identification. - New selectors for action cards and toast notifications. - Improved modal interaction with new properties for buttons. - Added functionality for toggling JavaScript execution on page load. - New methods for character manipulation and console log management. - Comprehensive application configurations for interval management. - New applications and widgets for managing intervals and clipboard functionality. - New functionality for resetting widgets and handling navigation actions. - Introduction of new JSON configurations for various applications. - **Bug Fixes** - Improved error handling for various actions and functions. - **Tests** - Extensive test coverage for new and existing functionalities, including action selectors, interval functions, alert handling, and geolocation features. - New tests for clipboard functionality, download actions, and local storage operations. - Enhanced tests for Radio and CategorySlider widgets to improve validation of JavaScript context and error handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: yatinappsmith <yatin@appsmith.com>
2024-12-16 11:11:54 +00:00
public RemoveChars(selector: string, charCount = 0, index = 0) {
if (charCount > 0)
this.GetElement(selector)
.eq(index)
.focus()
.type("{backspace}".repeat(charCount), { timeout: 2, force: true })
.wait(50);
else {
if (charCount == -1) this.GetElement(selector).eq(index).clear();
}
}
public captureConsoleLogs(): void {
cy.window()
.its("console")
.then((console) => {
cy.spy(console, "log").as("log");
cy.spy(console, "error").as("error");
cy.spy(console, "warn").as("warn");
});
}
public verifyConsoleLogNotContainingError(): void {
cy.get("@error")
.invoke("getCalls")
.then((calls) => {
console.table(calls);
cy.wrap(calls).each((call) => {
(call as any).args.forEach((arg: any) => {
expect(arg).to.not.contain("error");
});
});
});
}
public verifyConsoleLogContainsExpectedMessage(message: string): void {
cy.get("@log")
.invoke("getCalls")
.then((calls) => {
console.table(calls);
cy.wrap(calls).each((call) => {
(call as any).args.forEach((arg: any) => {
expect(arg).to.contain(message);
});
});
});
}
public clearConsoleLogs(): void {
cy.window().then((win) => {
cy.spy(win.console, "log").as("log");
cy.spy(win.console, "error").as("error");
cy.spy(win.console, "warn").as("warn");
});
}
test: Admin setting new test cases with email (#38522) ## Description New cypress test case for admin setting Fixes # https://app.zenhub.com/workspaces/stability-pod-6690c4814e31602e25cab7fd/issues/gh/appsmithorg/appsmith/38459 ## Automation /ok-to-test tags="@tag.Email" ### :mag: 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/13051349222> > Commit: bf21450dc53423e7a001ae0591681c8b8b488b66 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13051349222&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Email` > Spec: > <hr>Thu, 30 Jan 2025 11:51:05 UTC <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Added comprehensive Cypress end-to-end tests for email settings functionality. - Implemented tests for: - Adding new admin users - SMTP configuration - Password reset email verification - Workspace invitation emails - **Locators** - Added new locators for SMTP settings and email-related UI elements. - Introduced password recovery link locator. - **Improvements** - Enhanced email verification method in test support utilities. - Updated request header handling for more dynamic configuration. - Introduced a new method to wait for specific emails based on subject and recipient. - Expanded tagging functionality to include a new email-related tag. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-01-30 11:55:07 +00:00
public waitForEmail({
pollInterval,
targetEmail,
targetSubject,
timeout,
}: {
pollInterval: number;
timeout: number;
targetSubject: string;
targetEmail?: string;
}): Cypress.Chainable<any> {
const endTime = Date.now() + timeout;
let latestEmail: any = null;
function parseDate(dateString: string): Date {
return new Date(dateString.replace(/ \([A-Za-z\s]*\)$/, ""));
}
function fetchEmail(): Cypress.Chainable<any> {
return cy
.request("http://localhost:5001/api/v1/maildev-emails")
.then((res) => {
if (res.status !== 200) {
cy.log(`Request failed with status ${res.status}`);
return cy.wrap(null);
}
const emails: Array<{
headers: {
subject: string;
date: string;
to: string;
from: string;
};
text: string;
}> = res.body;
const matchingEmails = emails.filter((email) => {
const subjectMatch = email.headers.subject
.trim()
.toLowerCase()
.includes(targetSubject.trim().toLowerCase());
if (targetEmail) {
const emailTo = email.headers.to.trim().toLowerCase();
return (
subjectMatch && emailTo === targetEmail.trim().toLowerCase()
);
}
return subjectMatch;
});
if (matchingEmails.length > 0) {
latestEmail = matchingEmails.reduce((latest, email) => {
const emailDate = parseDate(email.headers.date);
const latestDate = parseDate(
latest?.headers?.date || "1970-01-01",
);
return emailDate > latestDate ? email : latest;
}, null);
if (latestEmail) {
cy.log("===== Email Details =====");
cy.log(`From: ${latestEmail.headers.from}`);
cy.log(`To: ${latestEmail.headers.to}`);
cy.log(`Subject: ${latestEmail.headers.subject}`);
cy.log("=========================");
}
return cy.wrap(latestEmail);
}
if (Date.now() > endTime) {
cy.log("===== Info =====");
cy.log(
`No email with subject "${targetSubject}" found${
targetEmail ? ` for recipient "${targetEmail}"` : ""
} within the timeout period.`,
);
cy.log("================");
return cy.wrap(null);
}
return cy.wait(pollInterval).then(fetchEmail);
});
}
return fetchEmail();
}
public getCanvasWidgetStateByWidgetName(widgetName: string): any {
return cy
.window()
.its("store")
.invoke("getState")
.then((state) => {
const widgets = state.entities.canvasWidgets;
const widgetId = Object.keys(widgets).find((widgetId) => {
if (widgets[widgetId].widgetName === widgetName) {
return widgets[widgetId];
}
});
if (!widgetId) return null;
return widgets[widgetId];
});
}
public getDatasourceStateByName(datasourceName: string): any {
return cy
.window()
.its("store")
.invoke("getState")
.then((state) => {
const datasources = state.entities.datasources.list;
const datasource = datasources.find(
(datasource: any) => datasource.name === datasourceName,
);
if (!datasource) return null;
return datasource;
});
}
public getActionStateByName(actionName: string): any {
return cy
.window()
.its("store")
.invoke("getState")
.then((state) => {
const actions = state.entities.actions;
const action = actions.find(
(action: any) => action.config.name === actionName,
);
if (!action) return null;
return action;
});
}
}