PromucFlow_constructor/app/client/cypress/locators/WidgetLocators.ts
Keyur Paralkar f47b1c896d
fix: change to lodash wrapper (#24610)
## Description
This issue is happening because we are getting lodash library as
`undefined` when we pass it to` derived.value` function here. This is
happening because of the following reason:
* [Bundle optimisation
PR](https://github.com/appsmithorg/appsmith/pull/21667) introduces a new
plugin called: `babel-plugin-lodash`. It helps in transforming the
imports.
* But this plugin doesn't work on the following pattern: `import _ from
"lodash"`. Here it replaces `_` with `undefined`
[ This
file](3bc50d9632/app/client/src/workers/common/JSLibrary/lodash-wrapper.js (L1))
explains the exact scenario that we are facing.
There is also [an open
bug](https://github.com/lodash/babel-plugin-lodash/issues/235) for this
issue on the `babel-plugin-lodash` repository.

This PR imports lodash from the lodash-wrapper instead of directly
importing as follows: `import _ from "lodash"`
>
#### PR fixes following issue(s)
Fixes #23671

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

## Testing
>
#### How Has This Been Tested?

- [x] Manual
- [ ] Jest
- [x] Cypress
- should check that value entered in currency field appears in the
actual field
>
>
#### 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
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


#### QA activity:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
2023-06-19 22:35:32 +05:30

65 lines
2.1 KiB
TypeScript

export const WIDGET = {
INPUT_V2: "inputwidgetv2",
TEXT: "textwidget",
TEXTNAME: (index: string) => `Text${index}`,
PHONE_INPUT: "phoneinputwidget",
CURRENCY_INPUT: "currencyinputwidget",
BUTTON: "buttonwidget",
BUTTONNAME: (index: string) => `Button${index}`,
CONTAINER: "containerwidget",
MULTISELECT: "multiselectwidgetv2",
BUTTON_GROUP: "buttongroupwidget",
TREESELECT: "singleselecttreewidget",
TAB: "tabswidget",
TABLE: "tablewidgetv2",
SWITCHGROUP: "switchgroupwidget",
SWITCH: "switchwidget",
SELECT: "selectwidget",
MULTITREESELECT: "multiselecttreewidget",
RADIO_GROUP: "radiogroupwidget",
LIST: "listwidget",
LIST_V2: "listwidgetv2",
RATING: "ratewidget",
CHECKBOXGROUP: "checkboxgroupwidget",
CHECKBOX: "checkboxwidget",
CHART: "chartwidget",
AUDIO: "audiowidget",
AUDIORECORDER: "audiorecorderwidget",
PHONEINPUT: "phoneinputwidget",
CAMERA: "camerawidget",
FILEPICKER: "filepickerwidgetv2",
DOCUMENT_VIEWER: "documentviewerwidget",
VIDEO: "videowidget",
CATEGORY_SLIDER: "categorysliderwidget",
NUMBER_SLIDER: "numbersliderwidget",
RANGE_SLIDER: "rangesliderwidget",
IFRAME: "iframewidget",
DIVIDER: "dividerwidget",
MODAL: "modalwidget",
FORM: "formwidget",
ICONBUTTON: "iconbuttonwidget",
IMAGE: "imagewidget",
STATBOX: "statboxwidget",
JSONFORM: "jsonformwidget"
} as const;
// property pane element selector are maintained here
export const PROPERTY_SELECTOR = {
// input
onClick: ".t--property-control-onclick",
onSubmit: ".t--property-control-onsubmit",
text: ".t--property-control-text",
defaultValue: ".t--property-control-defaultselectedvalues",
propertyName: ".t--property-control-propertyname",
onClickFieldName: "onClick",
TextFieldName: "Text",
tableData: ".t--property-control-tabledata",
tableColumnNames: '[data-rbd-draggable-id] input[type="text"]',
};
type ValueOf<T> = T[keyof T];
export const getWidgetSelector = (widget: ValueOf<typeof WIDGET>) =>
`.t--widget-${widget}`;
export const getWidgetInputSelector = (widget: ValueOf<typeof WIDGET>) =>
`.t--widget-${widget} input`;