## Description
- Merged Table.ts & TableV2.ts into single page Table.ts and refactored
scripts accordingly
Flaky fixes below:
- Listv2_Button_Widget_spec.ts
- CreateNewApp_spec.js
- GuidedTour_spec.js
## How Has This Been Tested?
- Cypress test runs
## Checklist:
### 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>
## Description
**Fixed below flaky tests**
- DeleteWorkspace_spec.js
- Guided Tour.js
- GraphQL_spec.ts
- CreateNewApp_spec.js
- PgAdmin spec
- DS - CreateQuery methods refactored
- Mock DB creation refactored
## Type of change
- Flaky test fix
## How Has This Been Tested?
- Cypress test runs
## Checklist:
### 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>
## Description
Add cypress tests for custom js library with git
## 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: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
## Description
Widget selection is driven by URL changes. This would fix browser
navigation for users as they can use browser back/forward buttons to
travel across older contexts on Appsmith.
> Fixing browser URL navigation for widgets
Fixes#19571
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.
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- Manual
- Jest
- Cypress
### Test Plan
> Add Testsmith [test
cases](https://github.com/appsmithorg/TestSmith/issues/2171) links that
relate to this PR
### Issues raised during DP testing
- [X] When a selected widget is below viewport and user refreshes the
page, then the widget property pane is open but the page does not
navigate to the selected widget
https://loom.com/share/09f1eda2f02d474981a0d48e4a6419ec
- [ ] Drop 2 widgets one at a time > Delete both the widgets > Now click
on back button of the browser > Observe the url it shows the widget id
in the URL but the canvas remains empty
https://loom.com/share/53cae28a5d224e67b783c8ccf53745f5
Dev Response: This issue is valid but not a major inconvenience. We will
try to track it and see if it needed to be addressed. Many other web
tools do not handle such cases
- [X] Canvas scrolls down when all widgets are selected.
https://loom.com/share/c8a68dadcdb040779abd3a73bde2b06c
- [X] Widget is not getting highlighted when added from the API editor
page. Please refer to the attached
video:-https://jiju8jbmwa.vmaker.com/record/IkwiAqFgafK9dVmu
## 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
- [x] 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>
## Description
Hover over appsmith properties in code to peek data.
<img width="380" alt="image"
src="https://user-images.githubusercontent.com/66776129/217707810-164924c0-36e8-4450-b087-18af333c7547.png">
This right now covers:
- Queries/JsObjects/Apis/Widgets and their properties.
- Note: For query or Api, this'll work only upto `Api.data`. (Not
`Api.data.users[0].id`)
- This is because of the way codemirror renders code and we'll need more
time to see how this is best handled.
Misc:
- added `react-append-to-body` to work with variable height for peek
overlay
- we needed a container that doesn't apply `position: absolute` to
itself
- Because, when a container's `height` is zero with `position: absolute`
(like in bp3-portal), child elements cannot be positioned using just the
`bottom` property
- with `react-append-to-body`, the container won't have `position:
absolute`, instead it is applied to the child element `<div>` directly,
hence we can position using `bottom` property.
Fixes#17507
Media
https://www.loom.com/share/0f17918fcd604805b023c215d57fce43
## 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/2173https://github.com/appsmithorg/TestSmith/issues/2178
### Issues raised during DP testing
https://github.com/appsmithorg/appsmith/pull/20053#issuecomment-1420545330https://github.com/appsmithorg/appsmith/pull/20053#issuecomment-1424427913
## 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:
- [x] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [x] 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
## Description
- This PR includes tests for migrating to Local GITEA for running
cypress tests so we dont run into timeout issues in Git tests
## Type of change
- New Script + Script fixes
## How Has This Been Tested?
- Cypress on CI
## Checklist:
### 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
## Description
Any platform function that accepts a callback were unable to access the
variables declared in its parent scopes. This was a implementation miss
when we originally designed platform functions and again when we turned
almost every platform function into a Promise. This PR fixes this
limitation along with some other edge cases.
- Access outer scope variables inside the callback of run, postMessage,
setInterval, getGeoLocation and watchGeolocation functions.
- Fixes certain edge cases where functions with callbacks when called
inside the then block doesn't get executed. Eg `showAlert.then(() => /*
Doesn't execute */ Api1.run(() => {}))`
- Changes the implementation of all the platform function in appsmith to
maintain the execution metadata (info on from where a function was
invoked, event associated with it etc)
#### Refactor changes
- Added a new folder **_fns_** that would now hold all the platform
functions.
- Introduced a new ExecutionMetadata singleton class that is now
responsible for hold all the meta data related to the current
evaluation.
- Remove TRIGGER_COLLECTOR array where all callback based platform
functions were batched and introduced an Event Emitter based
implementation to handle batched fn calls.
- All callback based functions now emits event when invoked. These
events have handlers attached to the TriggerEmitter object. These
handler does the job of batching these invocations and telling the main
thread. It also ensures that platform fn calls that gets triggered out
the the context of a request/response cycle work.
#### Architecture
<img width="751" alt="Screenshot 2023-02-07 at 10 04 26"
src="https://user-images.githubusercontent.com/32433245/217259200-5eac71bc-f0d3-4d3c-9b69-2a8dc81351bc.png">
Fixes#13156Fixes#20225
## Type of change
- Bug fix (non-breaking change which fixes an issue)
- Refactor
## How Has This Been Tested?
- Jest
- Cypress
- Manual
### Test Plan
- [ ] https://github.com/appsmithorg/TestSmith/issues/2181
- [ ] https://github.com/appsmithorg/TestSmith/issues/2182
- [ ] Post message -
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/post-msg-app/page1-635fcfba2987b442a739b938/edit
- [ ] Apps:
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/earworm-1/home-630c9d85b4658d0f257c4987/edit
- [ ]
https://appsmith-git-chore-outer-scope-variable-access-get-appsmith.vercel.app/app/automation-test-cases/page-1-630c6b90d4ecd573f6bb01e9/edit#0hmn8m90ei
### 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
- [x] 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 reviewing all Cypress test
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>
## Description
The following issues were caused because of the recent changes with
respect to auto height instant update.
In the recent change, we removed a few wrappers around containers which
seemed unnecessary. This led to the fact that in deploy mode, these
wrappers were not present. The issue with this was that, these wrappers
were responsible for the modal widget's background color styling. This
also led to an issue where the background color was not applied in edit
mode.
To fix this, we've added a wrapper in the component and removed all
styling logic from the widget. This is because, the component is
responsible for the actual rendering and what users see. The widgets
should act as an interface, and as a result, should not deal with
styling.
Fixes#20434Fixes#20405Fixes#20436
## Type of change
- Bug fix (non-breaking change which fixes an issue)
## Description
- This PR moves all specs from slim to fat container to run tests underneath it
- Fat has the actual libraries that are being shipping to customers, hence this PR
- Also includes moving Git tests from using GitHub to Gitea
## Type of change
- New run (non-breaking change which adds functionality)
## How Has This Been Tested?
- Cypress CI Fat runs
## Checklist:
### 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: yatinappsmith <84702014+yatinappsmith@users.noreply.github.com>
## Description
- Added checkForPageSaveError in assertAutoSave and assertPageSave
methods
- Fixed below flaky tests
- JSFunctionExecution_spec.ts
- Scrolling_Spec.ts
- Fork_Template_spec.js
- Fork_Template_To_App_spec.js
- GuidedTour_spec.js
- JSEditorComment_spec.js
- MemberRoles_Spec.ts
## Type of change
- Flaky test fix
## How Has This Been Tested?
- Cypress test runs
## Checklist:
### 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>
* feat: cypress test cases for the slider widget.
* fix: review changes completed.
* fix: cypress use data-cy selector.
* fix: remove range calculation from range slider stpSize validation.
* fix: added range validation back for stepSize.
* feat: Implement data type handling in MySQL (#16621)
With this implementation we can now achieve the following under prepared statement:
- Ability to distinguish between null object and "null" string
- Ability to distinguish values like {{"098765"}} and {{098765}}. The former is identified as a string and the latter is identified as an integer
* feat: Add unit test cases on data type handling in MySQL (#16621)
* chore: Move MySQL specific types to a separate class (#16621)
* chore: Remove import shortening (#16621)
* Fix testStructure test case to have loose coupling with the order of tables (#16621)
* Fix: Add missing client-side data types in params in a few test cases (#16621)
* Fix query in test case (#16621)
* Fix test cases and add small refactoring (#16621)
* Refactor assertion with a check on Optional (#16621)
* additional cypress test cases for mysql
* updated test case object
* update for failing test cases
* mysql failure point fix
* mysql false spec failure point fix
* fix flacy test cases
* flacky JSON test cases
Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* fix: updated skip functionality
* update: type of logs to add occurence count
* update: reducer function to merge the new logs
* update: added dependance on last log's occurence count
* add: UI to show the occurence badge
* fix: added null check for dependency array
* update: omit occurence from compare fn
* update: changed function call to store logs array directly
* update: moved from saving logs one by one to array
* fix: replaced forEach with reduce
* test: added functions for console log grouping
* feat: updated warning grouping color
* update: moved function to reducer file for jest tests
* test: mysql datatypes cypress test cases
* test: cypress added comments with cleaner code
* updates w.r.t review comments
* fix 10th cases failure
* fix for test failing on CI
* fix for test failing on CI another way
* fix: address review comments
* feat: capture console from across the app (#15676)
* create: console override file
- Adds methods to override the given console functionality to capture the console statements written by the user
* update: evaluate function to extract console op
- Added logs extraction for both sync and async functions
- Adding them to the return object of the evaluations
* update: timestamp field to log addition method
- Added optional argument to function definition for inputting the timestamp of the log
- This is done to maintain timings of the execution of the log
* update: interface for log objects
* update: post function execution logic
- Added logic to push the logs generated by the evaluation to the logs store
* update: added handling for sending nested fns
- While console logging functions or objects that had functions was causing an error
- Added a check for removing functions and replacing them with name of the functions instead
* chore: added types and comments
* fix: updated evaluation tests
* fix: added check for log in returned obj
* update: added the source data in the trigger logs
- Removed on js execute logs from showing up here since they are already handled. If they are not removed, they will show up on the first page load twice
* add: ellipsis function for log title string
- This is to keep big object contained in the first line only
* update: made logs reset function public
* update: resetting logs before new eval
- Logs object has to be cleared before next eval can happen to make sure there are no roll overs from last evals
* chore: added comments
* add: extracting logs after eval of functions
* add: storing logs to redux after eval
* refactor: updated types
* add: func to store logs w/ severity as arg
* refactor: updating func call for user logs
* chore: fixed elipsis logic
* chore: removed unused type
* chore: updated preview text logic
* add: type for transfer object post eval
* update: aded new userLogs obj to dataTreeEvaluator
* update: passing logs from object to saga
* update: parsing received userlogs
* refactor: used predefined fns
* refactor: moved resetlogs to common func
* chore: updated comments
* feat: update redux store and UI for system + user logs (#15936)
* update: updated types for the redux store
- Added category and data fields in the log object
* update: types of log redux store
* update: calls for the console log store function
* update: icon fetch func for log item UI
* update: syncing UI with the new designs (WIP)
* chore: fixed lint error
* update: filters for logs
* update: icon for clearing log filters
* update: filtering function
- Added checks against category and severity
* update: logitem UI
- updated type of the UI object
- added css based ellipsis
- added toggle for console logs
- added array of json views for objects/arrays
- css tweaks
* update: debugger cta
- Removed copy option
- Updated UI
* update: logic for expanding user logs
- Removed debugger CTA
- Fixed position for the expand/collapse icon
- Added joining char for when the log is expanded
* update: assets for new UI
- updated colors
- Added new icon
* hotfix: ternserver code
* add: search across the text of log
* update: icons for the app
* update: click to expand/collapse of logs
* fix: search keyword update on change within JSObjects
* fix: alignment of log items in both states
* update: jest tests for debugger errors and filter
* fix: drop down options color issue
- the icon used was not the standard one
- We have a lot of duplicates of the same icon
* fix: synced with ADS changes on release
* fix: remove dependency from old icon
* add: cypress selectors for automation testing
* fix: replaced static messages with variables
* fix: updated the dependency map for filter
* fix: height of the filter drop down
* fix: chaining logic for search filter
* fix: syncing the padding values to ADS
* fix: help icon visibility issue
* fix: width of filter dropdown
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
* add: e2e tests for console statements using IIFE
* test: added test for console logs in jsobjects
* fix: functionality of expanding context menu on msg click
* fix: added try catch and handling for numbers
* hotfix: handling unwanted toasts
* fix: alignment and clickable cursor
* fix: alignment of expanded span in console logs
* add: analytics event on new console log created
* fix: added handling for boolean and undefined
* fix: removed log reset from common func
- Whenever we are creating global DTO, the logs were being reset. This caused logs to reset whenever a promise was encountered in the logs.
* fix: combined JS log saving to widget process
* add: new analytics event on filter changed
* update: added handling for empty value
* update: removed comma between multiple logs
* update: synced test changes with release
* update: removed unused wait timings
* Logs spec script update
* update: ts methods in log spec e2e test
* logs spec update
* update: removed body clicks from test script
* Logs spec update
* update: removed ask from google option
* refactor: ui fixes
* fix: text selection of logs
* fix: updated dropdown width management
* update: made the flushlogs function async
* update: added handling for promises
* update: added test with promises fail and pass
* fix: added sync variant to work for sync objects
* refactor: commented out unused tests
* update: exceptions in the name of log entity
* fix: pagination of logs to handle dynamic data stream
* fix: removed unused async function
* fix: moved logs handling to separate saga
* fix: color for context menu text
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>