Commit Graph

90 Commits

Author SHA1 Message Date
Sangeeth Sivan
bc5a23e8cd
feat: ci changes & cypress tests with cypress tags (#22989)
## Description

This includes

> Building a new image for airgapped instances
> Running ci-tests on airgapped image
> Running cypress tests selectively ignoring non supported features for
airgap like Templates, Custom JS lib and also alternating test
behaviours for some tests like tests using mock db, since it doesn't
work on airgap we have to create a ds. So this selective testing was
done using cypress-tags
> Having a new client build for airgapped images which bundles all the
assets.
> And changes in the workflow files to account for all the above. 

With airgap, we can ignore certain tests and also need to account for
tests using mock datasources and such by creating new datasources
instead of mock datasources. Since those are blocked. So to perform a
selective testing we are using a plugin called `cypress-tags` and to
perform conditional testing when required we use the `AIRGAPPED` cypress
env. This PR introduces both and also modified the codebase to support
this new way of running cypress.

Since we can't trigger `/ok-to-test` on this because ci-test needs the
CYPRESS_EXCLUDE_TAGS and slash command doesn't dispatch from current
branch,

I manually triggered the `TBP` workflow to run ci-test on this branch. 
And the new `TBP airgap` workflow to run ci-test on airgapped docker
image on this branch.

Here is the link to the run 
https://github.com/appsmithorg/appsmith/actions/runs/4882041416

Fixes #22007 
Fixes #22814 


## Type of change

> Please delete options that are not relevant.

- New feature (non-breaking change which adds functionality)
- Chore (housekeeping or task changes that don't impact user perception)


## How Has This Been Tested?

- 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
- [ ] 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
2023-05-12 00:15:06 +05:30
Anand Srinivasan
bd2cc8d612
fix: display picture - prevent invalid files (#22900)
## Description

When selecting a display picture, show alert on selecting invalid file
type.
e.g. when you rename a pdf file to png and try to upload it

Design system changes:
https://github.com/appsmithorg/design-system/pull/466

Fixes #22592

Media
https://www.loom.com/share/f8971769aaad422fb86c6b02306102ce


## Type of change
- Bug fix (non-breaking change which fixes an issue)


## How Has This Been Tested?
- Cypress
- Manual

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] 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-04 11:26:17 +05:30
akash-codemonk
bdab68c2ff
feat: signposting stickiness (#22088) 2023-05-02 15:22:05 +05:30
ChandanBalajiBP
24a1ff88cb
fix: Error navigation blockers (#22291)
## Description

> Remove debugger from preview mode
> Remove debugger in welcome tour
> Don't open debugger on `onpageload` action.


Fixes #22283 
#22281 
#22275 

## Type of change

> Please delete options that are not relevant.

- Bug fix (non-breaking change which fixes an issue)


## How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Provide
instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.
> Delete anything that is not important

- Manual
- Cypress

## 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
2023-04-12 22:38:55 +05:30
Favour Ohanekwu
b80b0ca3fa
feat: show lint errors in async functions bound to sync fields (#21187)
## Description

This PR improves the error resolution journey for users. Lint warnings
are added to async JS functions which are bound to data fields (sync
fields).

- JSObjects are "linted" by individual properties (as opposed to being
"linted" as a whole)
- Only edited jsobject properties get "linted", improving jsObject
linting by ~35%.(This largely depends on the size of the JSObject)
<img width="500" alt="Screenshot 2023-04-03 at 11 17 45"
src="https://user-images.githubusercontent.com/46670083/229482424-233f3950-ffec-46f5-8c42-680dff6a412f.png">
<img width="500" alt="Screenshot 2023-03-14 at 11 26 00"
src="https://user-images.githubusercontent.com/46670083/224975572-b2d8d404-aac6-43fb-be14-20edf7c56117.png">
<img width="500" alt="Screenshot 2023-03-14 at 11 41 11"
src="https://user-images.githubusercontent.com/46670083/224975952-c40848b1-69d8-489d-9b62-24127ea1a2f1.png">

Fixes #20289
Fixes #20008


## Type of change

- Bug fix (non-breaking change which fixes an issue)


## How Has This Been Tested?

- CYPRESS
- JEST

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [x] 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
2023-04-03 16:11:15 +05:30
akash-codemonk
adb6938e88
fix: keep sidebar open when any context menu is open (#21777) 2023-03-31 20:01:08 +05:30
Vijetha-Kaja
a6df101f45
test: Cypress - Added AdminSettings Helper (#21741)
## Description

- Supporting PR for the
[bug](https://github.com/appsmithorg/appsmith/issues/21046) automation
[script](https://github.com/appsmithorg/appsmith-ee/pull/1219) in EE
repo - Can be used for other admin settings scripts

## Type of change

- Admin settings helpers for automation scripts

## 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
2023-03-27 15:06:03 +05:30
Ivan Akulov
424d2f6965
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
7cbb12af88,
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 17:11:47 +05:30
Vijetha-Kaja
0fd5192296
test: Merge table.ts & tableV2.ts pages (#21094)
## 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>
2023-03-08 03:29:34 +05:30
Vijetha-Kaja
d8e06778e4
test: Flaky test fix (#21120)
## 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>
2023-03-05 08:52:42 +05:30
Parthvi
821d8384be
test: Add tests for custom JS library with Git (#20978)
## 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>
2023-02-28 23:46:56 +05:30
Hetu Nandu
721767d742
feat: URL Navigation for Widgets (#20202)
## 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>
2023-02-21 19:08:16 +05:30
Anand Srinivasan
73ba3a39c5
feat: peek overlay (#20053)
## 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/2173
https://github.com/appsmithorg/TestSmith/issues/2178

### Issues raised during DP testing

https://github.com/appsmithorg/appsmith/pull/20053#issuecomment-1420545330

https://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
2023-02-17 21:33:34 +05:30
Aishwarya-U-R
970e4b16a4
test: Cypress migration to TED GITEA (#18799)
## 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
2023-02-15 01:12:45 +05:30
arunvjn
1d9d5bb197
fix: access outer scope variables inside callbacks (#20168)
## 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 #13156
Fixes #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
2023-02-12 00:03:20 +05:30
akash-codemonk
fd678a367a
fix: fork template button not visible on page refresh (#20388) 2023-02-10 11:41:35 +05:30
Ayangade Adeoluwa
1e61876f72
feat: Feature/evaluated value window (#19972)
Evaluated value window improvements:

1. Evaluated value window will not show up unless there is a dynamic
binding within the input field or when there's a validation error on the
input field (this edge case happens when user types an incorrect string
in the field for example typing a wrong date format inside the Default
Date field in the DatePickerWidget).
2. Evaluated value window will be draggable anywhere on the DOM. The new
position would also be remembered the next time the user returns to the
input.
3. The UI of the evaluated value window has been changed: Since the
popup will become draggable, it will have the name of the input it is
attached to. The styling of the evaluated value window fields has been
changed as well.

Design Documentation:
https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc

> Add a TL;DR when description is extra long (helps content team)

Fixes #4458 

- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- This change requires a documentation update

> Tests

- Manual
- Cypress

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)


## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test

---------

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2023-02-09 16:39:54 +05:30
Abhinav Jha
8c2825e862
fix: Modal widget background issues (#20446)
## 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 #20434 
Fixes #20405 
Fixes #20436 


## Type of change
- Bug fix (non-breaking change which fixes an issue)
2023-02-08 13:31:26 +05:30
akash-codemonk
4db9f6d13f
chore: Revert "feat: move the widget creation CTA off the Entity explorer (#… (#20335)
…19844)"

This reverts commit 280000834c.


## Description
https://theappsmith.slack.com/archives/C02JT9CSE6L/p1675380583041469
2023-02-03 14:47:01 +06:00
akash-codemonk
280000834c
feat: move the widget creation CTA off the Entity explorer (#19844) 2023-02-01 17:03:15 +05:30
Aishwarya-U-R
0b28b754b0
test: Moving specs to run on FatContainer + Gitea migration (#18920)
## 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>
2023-01-25 11:09:02 +05:30
Vijetha-Kaja
685b11ea5d
test: Flaky test fix-3 (#19748)
## 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>
2023-01-18 14:54:15 +05:30
akash-codemonk
2b2372c6aa
feat: editor header UI update (#19414) 2023-01-09 19:52:23 +05:30
Nidhi
02c5c45972
fix: Added handling for empty evaluated values (#19438) 2023-01-04 02:17:57 +05:30
akash-codemonk
553a15ced9
feat: in-app embed settings (#19023)
## Description

Get code snippet for embedding
2022-12-26 10:41:33 +05:30
ChandanBalajiBP
cee50a4d3d
test: Cypress tests for AST-based entity refactor(WIP) (#18988) 2022-12-23 09:35:54 +05:30
arunvjn
2dc7dc90e3
feat: Import javascript libraries (#17895) 2022-12-21 22:44:47 +05:30
Anand Srinivasan
284571803b
fix: update settings pane validations (#18739)
* init fix

* button style update

* decode url in preview

* bring back custom slug validation

* custom slug validation on type

* remove imports

* handle special characters in url preview

* change label

* code clean up

* remove pageId from action name selector

* messages clean up

* tests for validations

* cypress cases update

* Renamed helper methods

* add index for test cases

* AppSettings specs script ts updates

* Added Bud id in title #18698

* GIt Import spec fix

* GItImport spec fix

* Git import unskip

* Skipping Git import

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-12 10:21:14 +05:30
Aishwarya-U-R
70f6cd1ab8
test: Automated tests for Bug18376 + few flaky fixes (#18769)
* ApiOnload spec fix

* Bug 18376 script added

* Bug 18376 script fix

* ValidateURL() added

* OnLoadTests/APIOnLoad_Spec.ts fix

* Moved Bug 16248 script

* JSOnload trial fix

* JsonLoad fix -disbaling not working hnce commented

* Skipping GitImport (merge issue-open bug 18776)

* Git imPort trial fix

* PassingParams spec update

* APIPage.ts wrong update corrected

* Removed added comments

* ApiPage.ts mistake corrected!
2022-12-09 10:36:52 +05:30
akash-codemonk
3eab587368
feat: [Context Switching] Maintain datasource collapse state (#17616) 2022-12-05 11:28:17 +05:30
Anand Srinivasan
c01ed28189
feat: New settings pane (#16361) 2022-12-02 11:19:51 +05:30
sneha122
b5902bf035
feat: Datasource autosave improvements (#17649)
* Datasource autosave improvements WIP

* authenticated API and ds name updates

* popup updates, api to datasource updates

* issue fixes for new ds in new workspace

* formatter issue fixed

* console warning issue fixed

* refresh edge case handled for temp ds

* DS creation cypress update

* datasource improvements issue fixes

* CreateDS flow change cypress update

* reconnect issue fixed

* added space

* Create Ds related script updates

* SaveDs changes updated

* DatasourceForm_spec.js fix

* GoogleSheetsQuery_spec.js - still spec will fail

* GoogleSheetsStub_spec.ts fix

* MongoDatasource_spec.js fix

* ElasticSearchDatasource_spec.js fix

* AuthenticatedApiDatasource_spec.js

* RestApiDatasource_spec.js - will stil fail

* RedshiftDataSourceStub_spec.js fix

* issue fixes for datasource autosave

* save as datasource issue fixed

* SKipped - Bug 18035

* MySQL spec fix

* PostgresDatasource_spec.js fix

* MySQLDataSourceStub_spec.js fix

* MsSQLDataSourceStub_spec.js fix

* Bug16702_Spec.ts fix

* SwitchDatasource_spec.js fix

* ArangoDataSourceStub_spec.js fix

* code review changes, save and authorise issue fixed

* cypress test issue and cypress tests fixed

* client build failure issue fixed

* test failure fixes

* ReconnectDatasource_spec.js fix

* Entity_Explorer_CopyQuery_RenameDatasource_spec.js fix

* GitImport_spec.js fix

* Index add

* undo redo test issue fixed

* fixed cypress tests of rest api ds

* globalsearch_spec.js fixed

* code review changes

* code review comments addressed

* ds schema cypress issue fixed

* cypress test updates

* fix updateDatasource path

* rest api cypress test fixed

* cypress code review changes

* Removing few random .only's

* replay editor fix

* indexed

* adding .skip

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-11-30 11:29:45 +05:30
akash-codemonk
f669954873
chore: update omnibar to work with docusaurus site (#18146)
Fixes #17501 

New index will be used once the algolia keys are updated https://github.com/appsmithorg/keys/pull/10

## Description

- Update algolia index name and keys. 
- Removed [app/client/gitbook-algolia-lambda.js](https://github.com/appsmithorg/appsmith/pull/18146/files#diff-cd4ea8ae515ff25aaad99dc86059b65cc9b67edcde4eb261e1e456497b6957d3). It is being replaced by [website/omnibar-algolia-index.js](https://github.com/appsmithorg/appsmith-docs/pull/564/files#diff-a3f32686fd88fe5556e1dec268d0fa72ddd30a7ca05af48e2d55f1a811acd2c0). 
- Fixes video and list styles of content shown in the omnibar. 
- Videos on docs.appsmith.com are wrapped in a `videoembed` tag so have updated the regex for the same. 
- Image urls also sometimes include algolia highlight tags which makes the url invalid have removed the same 
https://github.com/appsmithorg/appsmith/pull/18146/files#diff-0e7cdbf77157af62f50ece962a8d4e381b2c070c2453123e8a713298f9640e25R126.
- Docusaurus https://docusaurus.io/docs/markdown-features/admonitions have a different syntax have updated the regex to parse the same. https://github.com/appsmithorg/appsmith/pull/18146/files#diff-0e7cdbf77157af62f50ece962a8d4e381b2c070c2453123e8a713298f9640e25R154

TLDR
Make omnibar work with the new docs site.

## How Has This Been Tested?

- Manual

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing
https://github.com/appsmithorg/appsmith/issues/17501#issuecomment-1307043824

## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] 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
2022-11-21 08:25:33 +00:00
akash-codemonk
01805a27f4
fix: show empty canvas CTA's only on the first page while creating an app (#17869) 2022-11-02 14:39:59 +05:30
akash-codemonk
958a38bd63
fix: video widget not visible in widget pane when explorer is pinned (#17318) 2022-10-29 11:31:25 +05:30
Arsalan Yaldram
944ad01686
feat: slider widgets cypress test cases (#17467)
* 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.
2022-10-21 15:55:41 +05:30
Anand Srinivasan
d62e1961d8
fix: Add collapse icon for bottom bar (#16939)
* add containerRef and explandedHeight to enable collapse icon

* change icon

* sizing

* alignment fixes

* consistent height

* remove unwanted padding

* debugger panel height

* remove extra divider line

* open panel on header click

* rename method

* cypress tests init

* jsobject navigate instead of create

* clean up

* remove variable

* undo changes

* final clean up

* logs spec clean up

* debugger locators clean up

* rename locator

* mock db spec fix

* logs spec fix

* clean up records count locator

* Rename dubugger locators and methods

* spec file change

* move methods

* rename debugger helper class

* build fix

* handle selectors

* merge clean up

* fix failing tests

* use single variable to set height

* undo cypress env changes
2022-10-20 17:38:48 +05:30
Hetu Nandu
3aff53187c
feat: Maintain Focus and Context Phase 1 (#16317) 2022-10-17 20:46:38 +05:30
Aishwarya-U-R
a255486087
test: Script updates for flaky tests to unblock CI (#17469) 2022-10-13 12:54:09 +05:30
Aman Agarwal
78c89894f8
fix: updated settings page design (#16990)
fix: updated settings page design
2022-10-06 16:36:29 +05:30
subratadeypappu
d2de8f7cec
feat: Implement data type handling in MySQL (#16621) (#17017)
* 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>
2022-10-04 10:45:10 +00:00
Aishwarya-U-R
7596dfc35a
test: Script updates for flaky tests to unblock CI (#17264) 2022-10-03 15:25:11 +05:30
Ayush Pahwa
e3f90db341
feat: grouping in console logs (#16698)
* 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
2022-09-19 06:29:04 +00:00
ChandanBalajiBP
2b70914f31
test: mysql datatypes cypress test cases (#16696)
* 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
2022-09-16 11:51:25 +05:30
Ayangade Adeoluwa
342c5cc673
fix: Fix Api url path issue (#16628)
* Fix Api url path issue

* Modify test cases
2022-09-13 05:02:59 +00:00
Aishwarya-U-R
bdadb827e3
test: Script updates for flaky tests (#16631)
* CreateNewApp spec flaky fix

* fix

* Moved RepoLimit to commented files

* Inline spec failure fix - case 19

* Table FIlter specs V1/V2 split

* Binding/Table_Property_ToggleJs spec - V1/V2 fix

* Spec name update

* Wait increase

* DS - duplicate error capture fix

* revert

* Recaptcha spec fix

* Jsfun exe flaky fix - unskipped case

* jsfunc exec spec fix

* jsfunex spec fix

* Api bugs spec fix

* Api bugs spec fix

* Chartdata point spec flaky fix

* Theme_multiselect brown type fix

* Jsfunc exe spec fix

* Inline spec fix

* Inline spec fix

* Inline spec fix

* Theme multiselect spec fix

* Promises spec fix

* JSFun Exe spec fix

* Api_all verb methods update

* List1 spec 4th case fix

* Jsfun exe skipping 10th case

* jsunf exe 10th case trial fix

* firestore stub error capture

* jsonload failng spec skip

* JSonload spec fix

* json load spec fix

* Git repo moved back
2022-09-12 09:48:44 +05:30
Aishwarya-U-R
bf232dbb7e
test: Script updates for flaky tests (#16558) 2022-09-07 23:55:55 +05:30
Ayush Pahwa
7d621de978
feat: console log implementation in appsmith (#16286)
* 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>
2022-09-04 17:28:05 +05:30
Aishwarya-U-R
4bf0827763
test: Script updates for flaky tests (#16355) 2022-09-02 06:35:45 +05:30
Ayangade Adeoluwa
80fa2c2713
fix: Blocks shortcut action execution when git modal is open (#16248) 2022-09-01 22:55:22 +02:00