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

261 lines
9.2 KiB
TypeScript
Raw Normal View History

import { ObjectsRegistry } from "../Objects/Registry";
export class DeployMode {
private locator = ObjectsRegistry.CommonLocators;
private agHelper = ObjectsRegistry.AggregateHelper;
private assertHelper = ObjectsRegistry.AssertHelper;
_jsonFieldName = (fieldName: string) => `//p[text()='${fieldName}']`;
_jsonFormFieldByName = (fieldName: string, input = true) =>
this._jsonFieldName(fieldName) +
`/ancestor::div[@direction='column']//div[@data-testid='input-container']//${
input ? "input" : "textarea"
}`;
_jsonFormRadioFieldByName = (fieldName: string) =>
`//p[text()='${fieldName}']/ancestor::div[@direction='column']//div[@data-testid='radiogroup-container']//input`;
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
_jsonFormDatepickerFieldByName = (fieldName: string) =>
`//p[text()='${fieldName}']/ancestor::div[@direction='column']//div[@data-testid='datepicker-container']//input`;
_jsonFormNumberFieldByName = (
fieldName: string,
direction: "up" | "down" = "up",
) =>
`//p[text()='${fieldName}']/ancestor::div[@direction='column']//div[@data-testid='input-container']// ${
direction == "up" ? this.locator._chevronUp : this.locator._chevronDown
}`;
_jsonSelectDropdown = "button.select-button";
private _jsonFormMultiSelectByName = (fieldName: string) =>
`//p[text()='${fieldName}']/ancestor::div[@direction='column']//div[@data-testid='multiselect-container']//div[contains(@class, 'rc-select-show-arrow')]`;
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
_clearDropdown = "button.select-button span.cancel-icon";
private _jsonFormMultiSelectOptions = (option: string) =>
`//div[@title='${option}']//input[@type='checkbox']/ancestor::div[@title='${option}']`;
feat: App navigation - Logo upload (#22297) ## Description Allowing users to upload a logo to show in the navigation along with toggles to hide logo or application title. Fixes #20134 Fixes #21946 Fixes #22260 ## Media <video src="https://user-images.githubusercontent.com/22471214/235613131-129ac2ed-b994-4eab-8eba-7db297c2f7fd.mp4"><video> ## Type of change - New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - Manual ### Test Plan > https://github.com/appsmithorg/TestSmith/issues/2376 ### 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 - [ ] 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
2023-05-05 06:49:20 +00:00
private _backtoHome =
".t--app-viewer-navigation-header .t--app-viewer-back-to-apps-button";
private _homeAppsmithImage = "a.t--appsmith-logo";
test: Cypress | Added Dynamic checks for Flaky fix + Cypress upgrade (#30840) ## Description - This PR does below: - cypress/e2e/Regression/ClientSide/Templates/Fork_Template_To_App_spec.js (to .ts with flaky fix) - cypress/e2e/Sanity/Datasources/SMTPDatasource_spec.js (multiple runs, no fix was needed, removed from skipped list) - Cypress upgrade from 13.6.1 to 13.6.4 - cypress/e2e/Regression/ClientSide/EmbedSettings/EmbedSettings_spec.js (flaky fix) - cypress/e2e/Regression/ServerSide/QueryPane/S3_1_spec.js (6th test - flaky fix) - assertHelper.WaitForNetworkCall() - reduced wait timeout - deployHelper.DeployApp() added dynamic checks - cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js (removed redundant before hook to fix flakyness) - cypress/e2e/Regression/ClientSide/Git/GitImport/GitImport_spec.js (removed redundant before hook to fix flakyness) #### 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 - **New Features** - Introduced functionality for forking a template to the current app and adding selected pages from a template. - **Bug Fixes** - Enhanced test stability by replacing sleep calls with dynamic wait conditions. - Improved test reliability and performance by adjusting waiting conditions for network calls and element assertions. - **Tests** - Updated the list of Cypress tests to include new scenarios and remove outdated ones. - Added new end-to-end tests for template forking and embed settings validation. - **Chores** - Optimized test support files and functions for better code maintenance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-02 10:31:59 +00:00
public _deployPageWidgets =
".bp3-heading, section.canvas div.canvas:not(:empty)";
public _appViewPageName = `div.t--app-viewer-application-name`;
//refering PublishtheApp from command.js
public DeployApp(
eleToCheckInDeployPage?: string,
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
toCheckFailureToast = true,
toValidateSavedState = true,
feat: disabling the toast messages on view mode without debug flag (#23768) ## Description When the application is in published mode, this Pr offers the ability to disable the error toast. Only the toasts that the user initiated are displayed; all others are disabled and messages are logged in the console. When the view mode url has `debug=true` as one of the query params, then all the error toasts are visible. #### PR fixes following issue(s) Fixes #23605 Fixes #23603 #### 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 - [x] 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 - [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-06-09 13:58:45 +00:00
addDebugFlag = true,
) {
// Wait before publish
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.agHelper.Sleep(); //wait for elements settle!
toValidateSavedState && this.agHelper.AssertAutoSave();
// Stubbing window.open to open in the same tab
this.assertHelper.AssertDocumentReady();
this.StubbingDeployPage(addDebugFlag);
this.agHelper.ClickButton("Deploy");
this.agHelper.AssertElementAbsence(this.locator._btnSpinner, 10000); //to make sure we have started navigation from Edit page
//cy.get("@windowDeployStub").should("be.calledOnce");
this.assertHelper.AssertDocumentReady();
this.agHelper.WaitUntilEleAppear(
eleToCheckInDeployPage ?? this.locator._backToEditor,
);
localStorage.setItem("inDeployedMode", "true");
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
toCheckFailureToast &&
this.agHelper.AssertElementAbsence(
this.locator._specificToast("has failed"),
); //Validating bug - 14141 + 14252
test: Cypress | Added Dynamic checks for Flaky fix + Cypress upgrade (#30840) ## Description - This PR does below: - cypress/e2e/Regression/ClientSide/Templates/Fork_Template_To_App_spec.js (to .ts with flaky fix) - cypress/e2e/Sanity/Datasources/SMTPDatasource_spec.js (multiple runs, no fix was needed, removed from skipped list) - Cypress upgrade from 13.6.1 to 13.6.4 - cypress/e2e/Regression/ClientSide/EmbedSettings/EmbedSettings_spec.js (flaky fix) - cypress/e2e/Regression/ServerSide/QueryPane/S3_1_spec.js (6th test - flaky fix) - assertHelper.WaitForNetworkCall() - reduced wait timeout - deployHelper.DeployApp() added dynamic checks - cypress/e2e/Regression/ClientSide/Git/GitSync/SwitchBranches_spec.js (removed redundant before hook to fix flakyness) - cypress/e2e/Regression/ClientSide/Git/GitImport/GitImport_spec.js (removed redundant before hook to fix flakyness) #### 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 - **New Features** - Introduced functionality for forking a template to the current app and adding selected pages from a template. - **Bug Fixes** - Enhanced test stability by replacing sleep calls with dynamic wait conditions. - Improved test reliability and performance by adjusting waiting conditions for network calls and element assertions. - **Tests** - Updated the list of Cypress tests to include new scenarios and remove outdated ones. - Added new end-to-end tests for template forking and embed settings validation. - **Chores** - Optimized test support files and functions for better code maintenance and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-02 10:31:59 +00:00
this.agHelper.AssertElementExist(this._deployPageWidgets);
this.agHelper.AssertElementVisibility(this._deployPageWidgets);
this.agHelper.Sleep(2000); //for view page widgets to load
}
// Stubbing window.open to open in the same tab
public StubbingWindow(timeout = 60000) {
cy.window({ timeout }).then((window: any) => {
cy.stub(window, "open")
.as("windowStub")
.callsFake((url) => {
window.location.href = url;
window.location.target = "_self";
});
});
}
public StubbingDeployPage(addDebugFlag = true) {
// cy.window({ timeout: 60000 }).then((window) => {
// cy.stub(window, "open")
// .as("windowDeployStub")
// .callsFake((url) => {
// const updatedUrl = `${Cypress.config().baseUrl + url.substring(1)}`;
// window.location.href = `${updatedUrl}${
// addDebugFlag
// ? (updatedUrl.indexOf("?") > -1 ? "&" : "?") + "debug=true"
// : ""
// }`;
// });
// });
// //this.StubbingWindow();
let updatedUrl = "";
cy.window({ timeout: 60000 }).then((window) => {
const originalOpen = window.open; // Save a reference to the original window.open function
window.open = (url: any) => {
updatedUrl = `${Cypress.config().baseUrl + url.substring(1)}`;
originalOpen.call(
window,
`${updatedUrl}${
addDebugFlag
? (updatedUrl.indexOf("?") > -1 ? "&" : "?") + "debug=true"
: ""
}`,
"_self",
); // Call the original window.open function
//cy.wrap(originalOpen).as("windowDeployStub"); //this is not working! to check later
return null;
};
});
}
public StubWindowNAssert(
selector: string,
expectedUrl: string,
networkCall: string,
) {
this.StubbingWindow();
this.agHelper.GetNClick(selector, 0, false, 0);
// cy.window().then((win) => {
// win.location.reload();
// });
this.agHelper.Sleep(4000); //Waiting a bit for new url to settle loading
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
// cy.url().then((url) => {
// cy.window().then((window) => {
// window.location.href = url;
// }); //only reload page to get new url
// });
cy.get("@windowStub").should("be.calledOnce");
cy.url().should("contain", expectedUrl);
this.agHelper.Sleep(2000); //stay in the page a bit before navigating back
//this.assertHelper.AssertDocumentReady();
cy.window({ timeout: 60000 }).then((win) => {
win.history.back();
});
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.assertHelper.AssertNetworkResponseData("@" + networkCall);
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
public NavigateBacktoEditor(toastToCheck = "") {
this.assertHelper.AssertDocumentReady();
this.agHelper.GetNClick(this.locator._backToEditor, 0, 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
this.agHelper.Sleep();
localStorage.setItem("inDeployedMode", "false");
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
if (toastToCheck) {
this.agHelper.ValidateToastMessage(toastToCheck);
}
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
//Assert no error toast in Edit mode when navigating back from Deploy mode
this.agHelper.AssertElementAbsence(
this.locator._specificToast("There was an unexpected error"),
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.agHelper.AssertElementAbsence(
this.locator._specificToast(
"Internal server error while processing request",
),
);
this.agHelper.AssertElementAbsence(
this.locator._specificToast("Cannot read properties of undefined"),
);
this.assertHelper.AssertNetworkResponseData("@getConsolidatedData"); //for auth rest api
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.assertHelper.AssertNetworkStatus("@getWorkspace");
// cy.window().then((win) => {
// win.location.reload();
// });
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
// cy.url().then((url) => {//also not working consistently!
// cy.window().then((window) => {
// window.location.href = url;
// }); // //only reloading edit page to load elements
// });
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.assertHelper.AssertDocumentReady();
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.agHelper.Sleep(2000);
this.agHelper.AssertElementVisibility(this.locator._editPage); //Assert if canvas is visible after Navigating back!
}
public NavigateToHomeDirectly() {
this.agHelper.GetNClick(this._backtoHome);
this.agHelper.Sleep(2000);
this.agHelper.AssertElementVisibility(this._homeAppsmithImage);
}
public EnterJSONInputValue(
fieldName: string,
value: string,
index = 0,
clearField = false,
) {
if (clearField) this.ClearJSONFieldValue(fieldName, index);
cy.xpath(this._jsonFormFieldByName(fieldName))
.eq(index)
.click()
.type(value, { delay: 0 })
.wait(200);
}
public EnterJSONTextAreaValue(fieldName: string, value: string, index = 0) {
cy.xpath(this._jsonFormFieldByName(fieldName, false))
.eq(index)
.click()
.type(value, { delay: 0 })
.wait(200);
}
public ClearJSONFieldValue(fieldName: string, index = 0, isInput = true) {
cy.xpath(this._jsonFormFieldByName(fieldName, isInput))
.eq(index)
.clear()
.wait(300);
}
public SelectJsonFormDropDown(dropdownOption: string, 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
cy.get(this._jsonSelectDropdown).eq(index).scrollIntoView().click();
cy.get(this.locator._selectOptionValue(dropdownOption)).click({
force: true,
});
this.agHelper.Sleep(); //for selected value to reflect!
}
public SelectJsonFormMultiSelect(
name: string,
options: string[],
index = 0,
check = true,
) {
cy.xpath(this._jsonFormMultiSelectByName(name))
.eq(index)
.scrollIntoView()
.click();
this.agHelper.Sleep(500);
if (check) {
options.forEach(($each) => {
cy.get(this.locator._multiSelectOptions($each))
.check({ force: true })
.wait(800);
cy.xpath(this._jsonFormMultiSelectOptions($each)).should(
"have.class",
"rc-select-item-option-selected",
);
});
} else {
options.forEach(($each) => {
cy.get(this.locator._multiSelectOptions($each))
.uncheck({ force: true })
.wait(800);
cy.xpath(this._jsonFormMultiSelectOptions($each)).should(
"not.have.class",
"rc-select-item-option-selected",
);
});
}
// //closing multiselect dropdown
cy.get("body").type("{esc}");
}
}