From a429f71e087ffca06e33a643ba52e188e77431fb Mon Sep 17 00:00:00 2001 From: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> Date: Tue, 9 May 2023 16:14:28 +0530 Subject: [PATCH 01/11] Added hash to the filenames (#6227) --- frontend/webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/webpack.config.js b/frontend/webpack.config.js index face1ca0e0..dd4875b0fc 100644 --- a/frontend/webpack.config.js +++ b/frontend/webpack.config.js @@ -140,6 +140,7 @@ module.exports = { new HtmlWebpackPlugin({ template: './src/index.ejs', favicon: './assets/images/logo.svg', + hash: environment === 'production', }), new CompressionPlugin({ test: /\.js(\?.*)?$/i, From 7062406be7f0a8eec9fdde41e58bdfb40a19c025 Mon Sep 17 00:00:00 2001 From: Midhun G S Date: Wed, 10 May 2023 11:23:35 +0530 Subject: [PATCH 02/11] Fix for REST API plugin: Convert to Base64 if response type image (#6277) * Fix for REST API plugin response type image * getting data from rowBody instead of body --- plugins/packages/restapi/lib/index.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/packages/restapi/lib/index.ts b/plugins/packages/restapi/lib/index.ts index bbd6bbd894..30bfbaa961 100644 --- a/plugins/packages/restapi/lib/index.ts +++ b/plugins/packages/restapi/lib/index.ts @@ -179,7 +179,7 @@ export default class RestapiQueryService implements QueryService { try { const response = await got(url, requestOptions); - result = this.isJson(response.body) ? JSON.parse(response.body) : response.body; + result = this.getResponse(response); requestObject = { requestUrl: response.request.requestUrl, method: response.request.options.method, @@ -242,6 +242,20 @@ export default class RestapiQueryService implements QueryService { }; } + private getResponse(response) { + try { + if (this.isJson(response.body)) { + return JSON.parse(response.body); + } + if (response.rawBody && response.headers?.['content-type']?.startsWith('image/')) { + return Buffer.from(response.rawBody, 'binary').toString('base64'); + } + } catch (error) { + console.error('Error while parsing response', error); + } + return response.body; + } + checkIfContentTypeIsURLenc(headers: [] = []) { const objectHeaders = Object.fromEntries(headers); const contentType = objectHeaders['content-type'] ?? objectHeaders['Content-Type']; From 1ae2bfd3d2533f7d0cf558934552e0e21b244de7 Mon Sep 17 00:00:00 2001 From: Kiran Ashok Date: Wed, 10 May 2023 11:31:18 +0530 Subject: [PATCH 03/11] Hotfix :: App breaking during version switch (#6262) * fix :: app crash during version switch * fix :: queryname not updating for gds --- frontend/src/Editor/QueryManager/QueryManager.jsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/frontend/src/Editor/QueryManager/QueryManager.jsx b/frontend/src/Editor/QueryManager/QueryManager.jsx index bf39b5ab60..01401741f1 100644 --- a/frontend/src/Editor/QueryManager/QueryManager.jsx +++ b/frontend/src/Editor/QueryManager/QueryManager.jsx @@ -166,12 +166,13 @@ class QueryManagerComponent extends React.Component { } ); }; - componentDidUpdate(prevState) { - if (prevState?.selectedQuery?.name !== this.state?.selectedQuery?.name) { - this.setState({ - queryName: this.state.selectedQuery?.name, - }); + if (this.state?.selectedQuery?.id == prevState?.selectedQuery?.id) { + if (prevState?.selectedQuery?.name !== this.state?.selectedQuery?.name) { + this.setState({ + queryName: this.state.selectedQuery?.name, + }); + } } } From 4759e282b4b86b5a8d5991e6b97a5a4f974395e2 Mon Sep 17 00:00:00 2001 From: Kiran Ashok Date: Wed, 10 May 2023 11:31:32 +0530 Subject: [PATCH 04/11] fix :: removing ellipsis in legend labels in chart hover (#6231) --- frontend/src/Editor/Components/Chart.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/Editor/Components/Chart.jsx b/frontend/src/Editor/Components/Chart.jsx index 359ce29001..50713b4588 100644 --- a/frontend/src/Editor/Components/Chart.jsx +++ b/frontend/src/Editor/Components/Chart.jsx @@ -77,6 +77,7 @@ export const Chart = function Chart({ width, height, darkMode, properties, style b: padding, t: padding, }, + hoverlabel: { namelength: -1 }, }; const computeChartData = (data, dataString) => { From e21de087945cb6ccc7aeccefc3c6b42e4433057b Mon Sep 17 00:00:00 2001 From: Midhun Kumar E Date: Wed, 17 May 2023 12:14:03 +0530 Subject: [PATCH 05/11] Fixed cypress for v2.6.0 (#6430) * Add data-cy for the event handler input fields (#6382) * Added automation for inspector. (#6380) * Add utils for inspector node verification * Add inspector verification spec * Add verification for inspector buttons * Fix cypress failure * update toast message * Modify Config --------- Co-authored-by: Mekhla Asopa --- cypress-tests/cypress-run.config.js | 14 +- .../cypress/constants/texts/database.js | 44 ++--- .../cypress/constants/texts/version.js | 43 +++-- .../e2e/editor/app-version/version.cy.js | 155 ++++++++++-------- .../e2e/editor/inspectorHappypath.cy.js | 135 +++++++++++++++ .../cypress/support/utils/database.js | 8 +- .../cypress/support/utils/inspector.js | 31 ++++ .../cypress/support/utils/version.js | 15 +- .../ActionConfigurationPanels/SwitchPage.jsx | 10 +- .../src/Editor/Inspector/EventManager.jsx | 5 + 10 files changed, 328 insertions(+), 132 deletions(-) create mode 100644 cypress-tests/cypress/e2e/editor/inspectorHappypath.cy.js create mode 100644 cypress-tests/cypress/support/utils/inspector.js diff --git a/cypress-tests/cypress-run.config.js b/cypress-tests/cypress-run.config.js index 7f6e6648e1..b9f4e46b49 100644 --- a/cypress-tests/cypress-run.config.js +++ b/cypress-tests/cypress-run.config.js @@ -79,13 +79,13 @@ module.exports = defineConfig({ // "cypress/e2e/selfHost/*.cy.js", // "cypress/e2e/authentication/*.cy.js", // "cypress/e2e/workspace/*.cy.js", - "cypress/e2e/editor/data-source/*.cy.js", - // "cypress/e2e/editor/app-version/version.cy.js", - // "cypress/e2e/exportImport/export.cy.js", - // "cypress/e2e/exportImport/import.cy.js", - // "cypress/e2e/database/database.cy.js", - // "cypress/e2e/editor/widget/*.cy.js", - // "cypress/e2e/editor/multipage/*.cy.js", + // "cypress/e2e/editor/data-source/*.cy.js", + "cypress/e2e/editor/app-version/version.cy.js", + "cypress/e2e/exportImport/export.cy.js", + "cypress/e2e/exportImport/import.cy.js", + "cypress/e2e/database/database.cy.js", + "cypress/e2e/editor/widget/*.cy.js", + "cypress/e2e/editor/multipage/*.cy.js", ], numTestsKeptInMemory: 1, redirectionLimit: 10, diff --git a/cypress-tests/cypress/constants/texts/database.js b/cypress-tests/cypress/constants/texts/database.js index e883901a2b..5e8f64b93d 100644 --- a/cypress-tests/cypress/constants/texts/database.js +++ b/cypress-tests/cypress/constants/texts/database.js @@ -22,7 +22,7 @@ export const databaseText = { return `${tableName} created successfully`; }, tableDeletedSuccessfullyToast: (tableName) => { - return `Table "${tableName}" deleted successfully` + return `Table "${tableName}" deleted successfully`; }, tableEditedSuccessfullyToast: (tableName) => { return `${tableName} edited successfully`; @@ -31,30 +31,29 @@ export const databaseText = { return `Table name already exists: ${tableName}`; }, deleteRowToast: (tableName, rowNumber) => { - return `Deleted ${rowNumber} rows from table "${tableName}"` + return `Deleted ${rowNumber} rows from table "${tableName}"`; }, invalidErrorText: (value) => { - return `invalid input syntax for type integer: "${value}"` - } + return `invalid input syntax for type integer: "${value}"`; + }, }; export const createNewColumnText = { createNewColumnHeader: "Create a new column", - columnNameLabel: 'Column name', - dataTypeLabel: 'Data type', - defaultValueLabel: 'Default value', - columnCreatedSuccessfullyToast: 'Column created successfully', - -} + columnNameLabel: "Column name", + dataTypeLabel: "Data type", + defaultValueLabel: "Default value", + columnCreatedSuccessfullyToast: "Column created successfully", +}; export const createNewRowText = { - createNewRowHeader: 'Create a new row', - serialDataTypeLabel: 'SERIAL', - rowCreatedSuccessfullyToast: 'Row created successfully', -} + createNewRowHeader: "Create a new row", + serialDataTypeLabel: "SERIAL", + rowCreatedSuccessfullyToast: "Row created successfully", +}; export const filterText = { - filterText: ' Filter', + filterText: " Filter", operation: { equals: "equals", greaterThan: "greater than", @@ -68,16 +67,17 @@ export const filterText = { imatch: "imatch", in: "in", }, -} +}; export const sortText = { - sortByText: 'Sort by', + sortByText: "Sort by", order: { ascending: "Ascending", - descending: "Descending" - } -} + descending: "Descending", + }, +}; export const editRowText = { editRowHeader: "Edit a row", - selectRowToEditText: "Select a row to edit" -} + selectRowToEditText: "Select a row to edit", + rowEditedSuccessfullyToast: "Row edited successfully", +}; diff --git a/cypress-tests/cypress/constants/texts/version.js b/cypress-tests/cypress/constants/texts/version.js index 8747eb25d1..0063bd4b10 100644 --- a/cypress-tests/cypress/constants/texts/version.js +++ b/cypress-tests/cypress/constants/texts/version.js @@ -1,25 +1,32 @@ import { cyParamName } from "Selectors/common"; export const editVersionText = { - editVersionTitle: 'Edit Version', - saveButton: 'Save', - VersionNameUpdatedToastMessage: 'Version name updated' -} + editVersionTitle: "Edit Version", + saveButton: "Save", + VersionNameUpdatedToastMessage: "Version name updated", +}; export const deleteVersionText = { - deleteModalText: (text) => { - return `Are you sure you want to delete this version - ${cyParamName(text)}`; - }, - deleteToastMessage: (version) => { - return `Version - ${cyParamName(version)} Deleted` - } -} + deleteModalText: (text) => { + return `Are you sure you want to delete this version - ${cyParamName( + text + )}`; + }, + deleteToastMessage: (version) => { + return `Version - ${cyParamName(version)} Deleted`; + }, +}; export const releasedVersionText = { - cannotUpdateReleasedVersionToastMessage: "You cannot update a released version", - releasedToastMessage: (version) => { - return `Version ${cyParamName(version)} released` - }, - releasedModalText: "You cannot make changes to a version that has already been released. Create a new version or switch to a different version if you want to make changes.", - cannotDeleteReleasedVersionToastMessage: "You cannot delete a released version" -} \ No newline at end of file + cannotUpdateReleasedVersionToastMessage: + "You cannot update a released version", + releasedToastMessage: (version) => { + return `Version ${cyParamName(version)} released`; + }, + releasedModalText: + "You cannot make changes to a version that has already been released. Create a new version or switch to a different version if you want to make changes.", + cannotDeleteReleasedVersionToastMessage: + "You cannot delete a released version", + releasedAppText: + "This is a released app. Create a new version to make changes.", +}; diff --git a/cypress-tests/cypress/e2e/editor/app-version/version.cy.js b/cypress-tests/cypress/e2e/editor/app-version/version.cy.js index 0d48eda0ac..760bb7bc32 100644 --- a/cypress-tests/cypress/e2e/editor/app-version/version.cy.js +++ b/cypress-tests/cypress/e2e/editor/app-version/version.cy.js @@ -1,88 +1,109 @@ import { appVersionSelectors } from "Selectors/exportImport"; import { editVersionSelectors } from "Selectors/version"; -import { editVersionText, releasedVersionText, deleteVersionText } from "Texts/version"; +import { + editVersionText, + releasedVersionText, + deleteVersionText, +} from "Texts/version"; import { createNewVersion } from "Support/utils/exportImport"; -import { navigateToCreateNewVersionModal, verifyElementsOfCreateNewVersionModal, navigateToEditVersionModal, editVersionAndVerify, deleteVersionAndVerify, releasedVersionAndVerify, verifyDuplicateVersion, verifyVersionAfterPreview } from "Support/utils/version"; +import { + navigateToCreateNewVersionModal, + verifyElementsOfCreateNewVersionModal, + navigateToEditVersionModal, + editVersionAndVerify, + deleteVersionAndVerify, + releasedVersionAndVerify, + verifyDuplicateVersion, + verifyVersionAfterPreview, +} from "Support/utils/version"; import { fake } from "Fixtures/fake"; import { commonSelectors } from "Selectors/common"; import { commonText } from "Texts/common"; -import { verifyModal, closeModal, navigateToAppEditor } from "Support/utils/common"; +import { + verifyModal, + closeModal, + navigateToAppEditor, +} from "Support/utils/common"; import { buttonText } from "Texts/button"; -import { verifyComponent, deleteComponentAndVerify } from "Support/utils/basicComponents"; +import { + verifyComponent, + deleteComponentAndVerify, +} from "Support/utils/basicComponents"; describe("App Version Functionality", () => { - var data = {}; - data.appName = `${fake.companyName}-App`; - let currentVersion = ""; - let newVersion = []; - let versionFrom = ""; - beforeEach(() => { - cy.appUILogin(); - }); + var data = {}; + data.appName = `${fake.companyName}-App`; + let currentVersion = ""; + let newVersion = []; + let versionFrom = ""; + beforeEach(() => { + cy.appUILogin(); + }); - it("Verify the elements of the version module", () => { - cy.createApp(); - cy.get(appVersionSelectors.appVersionLabel).should("be.visible"); - cy.renameApp(data.appName); - cy.get(commonSelectors.appNameInput).verifyVisibleElement( - "have.value", - data.appName - ); - cy.waitForAutoSave(); - navigateToCreateNewVersionModal(currentVersion = "v1"); - verifyElementsOfCreateNewVersionModal(currentVersion = ["v1"]); + it("Verify the elements of the version module", () => { + cy.createApp(); + cy.get(appVersionSelectors.appVersionLabel).should("be.visible"); + cy.renameApp(data.appName); + cy.get(commonSelectors.appNameInput).verifyVisibleElement( + "have.value", + data.appName + ); + cy.waitForAutoSave(); + navigateToCreateNewVersionModal((currentVersion = "v1")); + verifyElementsOfCreateNewVersionModal((currentVersion = ["v1"])); - navigateToEditVersionModal(currentVersion = "v1") - verifyModal( - editVersionText.editVersionTitle, - editVersionText.saveButton, - editVersionSelectors.versionNameInputField - ); - closeModal(commonText.closeButton); - }); + navigateToEditVersionModal((currentVersion = "v1")); + verifyModal( + editVersionText.editVersionTitle, + editVersionText.saveButton, + editVersionSelectors.versionNameInputField + ); + closeModal(commonText.closeButton); + }); - it("Verify all functionality for the app version", () => { - navigateToAppEditor(data.appName); - cy.get('[data-cy="widget-list-box-table"]').should("be.visible"); - cy.get(".driver-close-btn").click(); + it("Verify all functionality for the app version", () => { + navigateToAppEditor(data.appName); + cy.get('[data-cy="widget-list-box-table"]').should("be.visible"); + cy.get(".driver-close-btn").click(); - cy.dragAndDropWidget("Toggle Switch", 50, 50); - verifyComponent("toggleswitch1"); + cy.dragAndDropWidget("Toggle Switch", 50, 50); + verifyComponent("toggleswitch1"); - navigateToCreateNewVersionModal(currentVersion = "v1"); - createNewVersion((newVersion = ["v2"]), versionFrom = "v1"); - verifyComponent("toggleswitch1"); - deleteComponentAndVerify("toggleswitch1"); + navigateToCreateNewVersionModal((currentVersion = "v1")); + createNewVersion((newVersion = ["v2"]), (versionFrom = "v1")); + verifyComponent("toggleswitch1"); + deleteComponentAndVerify("toggleswitch1"); + cy.dragAndDropWidget(buttonText.defaultWidgetText); + verifyComponent("button1"); + navigateToCreateNewVersionModal((currentVersion = "v2")); + createNewVersion((newVersion = ["v3"]), (versionFrom = "v2")); + verifyComponent("button1"); - cy.dragAndDropWidget(buttonText.defaultWidgetText); - verifyComponent("button1"); - navigateToCreateNewVersionModal(currentVersion = "v2"); - createNewVersion((newVersion = ["v3"]), versionFrom = "v2"); - verifyComponent("button1"); + navigateToCreateNewVersionModal((currentVersion = "v3")); + createNewVersion((newVersion = ["v4"]), (versionFrom = "v1")); + verifyComponent("toggleswitch1"); - navigateToCreateNewVersionModal(currentVersion = "v3"); - createNewVersion((newVersion = ["v4"]), versionFrom = "v1"); - verifyComponent("toggleswitch1"); + editVersionAndVerify( + (currentVersion = "v4"), + (newVersion = ["v5"]), + editVersionText.VersionNameUpdatedToastMessage + ); + navigateToCreateNewVersionModal((currentVersion = "v5")); + verifyDuplicateVersion((newVersion = ["v5"]), (versionFrom = "v5")); + closeModal(commonText.closeButton); + deleteVersionAndVerify( + (currentVersion = "v5"), + deleteVersionText.deleteToastMessage((currentVersion = "v5")) + ); - editVersionAndVerify(currentVersion = "v4", newVersion = ["v5"], editVersionText.VersionNameUpdatedToastMessage) - navigateToCreateNewVersionModal(currentVersion = "v5"); - verifyDuplicateVersion((newVersion = ["v5"]), versionFrom = "v5") - closeModal(commonText.closeButton); - deleteVersionAndVerify(currentVersion = "v5", deleteVersionText.deleteToastMessage(currentVersion = "v5")); + cy.reload(); + releasedVersionAndVerify((currentVersion = "v3")); + navigateToCreateNewVersionModal((currentVersion = "v3")); + createNewVersion((newVersion = ["v6"]), (versionFrom = "v3")); - cy.reload(); - releasedVersionAndVerify(currentVersion = "v3"); - editVersionAndVerify(currentVersion = "v3", newVersion = ["v5"], releasedVersionText.cannotUpdateReleasedVersionToastMessage); - closeModal(commonText.closeButton); - - deleteVersionAndVerify(currentVersion = "v3", releasedVersionText.cannotDeleteReleasedVersionToastMessage) - - navigateToCreateNewVersionModal(currentVersion = "v3"); - createNewVersion((newVersion = ["v6"]), versionFrom = "v3"); - - verifyVersionAfterPreview(currentVersion = "v6") - cy.go('back'); - }) + verifyVersionAfterPreview((currentVersion = "v6")); + cy.go("back"); + }); }); diff --git a/cypress-tests/cypress/e2e/editor/inspectorHappypath.cy.js b/cypress-tests/cypress/e2e/editor/inspectorHappypath.cy.js new file mode 100644 index 0000000000..a914ff2883 --- /dev/null +++ b/cypress-tests/cypress/e2e/editor/inspectorHappypath.cy.js @@ -0,0 +1,135 @@ +import { + verifyMultipleComponentValuesFromInspector, + verifyComponentValueFromInspector, +} from "Support/utils/commonWidget"; +import { verifyNodeData, openNode, verifyValue } from "Support/utils/inspector"; +import { commonSelectors, commonWidgetSelector } from "Selectors/common"; +import { addNewPage } from "Support/utils/multipage"; +import { + selectCSA, + selectEvent, + addSupportCSAData, +} from "Support/utils/events"; +import { multipageSelector } from "Selectors/multipage"; + +describe("Editor- Inspector", () => { + beforeEach(() => { + cy.appUILogin(); + cy.createApp(); + }); + + it("should verify the values of inspector", () => { + cy.get(commonWidgetSelector.sidebarinspector).click(); + cy.get(".tooltip-inner").invoke("hide"); + verifyNodeData("queries", "Object", "0 entry "); + verifyNodeData("components", "Object", "0 entry "); + verifyNodeData("globals", "Object", "3 entries "); + verifyNodeData("variables", "Object", "0 entry "); + verifyNodeData("page", "Object", "4 entries "); + + openNode("globals"); + verifyNodeData("theme", "Object", "1 entry "); + verifyNodeData("urlparams", "Object", "0 entry "); + verifyNodeData("currentUser", "Object", "4 entries "); + + openNode("theme"); + verifyValue("name", "String", `"light"`); + + openNode("currentUser"); + verifyValue("email", "String", `"dev@tooljet.io"`); + verifyValue("firstName", "String", `"The"`); + verifyValue("lastName", "String", `"Developer"`); + verifyNodeData("groups", "Array", "2 items "); + + openNode("groups"); + verifyValue("0", "String", `"all_users"`); + verifyValue("1", "String", `"admin"`); + + openNode("globals"); + openNode("page"); + verifyValue("handle", "String", `"home"`); + verifyValue("name", "String", `"Home"`); + + cy.get(multipageSelector.sidebarPageButton).click(); + addNewPage("test_page"); + + cy.dragAndDropWidget("Button", 100, 200); + selectEvent("On click", "Switch page"); + cy.get('[data-cy="switch-page-label-and-input"] > .select-search') + .click() + .type("home{enter}"); + cy.get('[data-cy="button-add-query-param"]').click(); + addSupportCSAData("query-param-key", "key"); + addSupportCSAData("query-param-value", "value"); + + cy.get('[data-cy="real-canvas"]').click("topRight", { force: true }); + cy.dragAndDropWidget("Button", 100, 300); + selectEvent("On click", "Set variable"); + addSupportCSAData("key", "globalVar"); + addSupportCSAData("variable", "globalVar"); + cy.get(commonWidgetSelector.draggableWidget("button2")).click(); + + cy.get('[data-cy="real-canvas"]').click("topRight", { force: true }); + cy.dragAndDropWidget("Button", 100, 400); + selectEvent("On click", "Set page variable"); + addSupportCSAData("key", "pageVar"); + addSupportCSAData("variable", "pageVar"); + cy.get(commonWidgetSelector.draggableWidget("button3")).click(); + + cy.get(commonWidgetSelector.sidebarinspector).click(); + openNode("variables"); + verifyValue("globalVar", "String", `"globalVar"`); + + openNode("page"); + openNode("variables", 1); + verifyValue("pageVar", "String", `"pageVar"`); + verifyValue("handle", "String", `"test-page"`); + verifyValue("name", "String", `"test_page"`); + + openNode("components"); + verifyNodeData("button1", "Object", "6 entries "); + verifyNodeData("button2", "Object", "6 entries "); + verifyNodeData("button3", "Object", "6 entries "); + + cy.get('[data-cy="real-canvas"]').click("topRight", { force: true }); + cy.get(commonWidgetSelector.draggableWidget("button1")).click(); + cy.get(commonWidgetSelector.sidebarinspector).click(); + + openNode("page"); + verifyValue("handle", "String", `"home"`); + verifyValue("name", "String", `"Home"`); + + openNode("globals"); + verifyNodeData("urlparams", "Object", "1 entry "); + + openNode("urlparams"); + verifyValue("key", "String", `"value"`); + + cy.get(`[data-cy="inspector-node-key"] > .mx-1`).realHover(); + cy.get(".mx-1 > img").realClick(); + cy.realPress("Escape"); + + cy.window().then((win) => { + win.navigator.clipboard.readText().then((text) => { + expect(text).to.eq("{{globals.urlparams.key}}"); + }); + }); + + cy.get(".action-icons-group > .d-flex > :nth-child(2)").click(); + cy.get(".list-group-item").click(); + cy.realPress("Escape"); + + cy.window().then((win) => { + win.navigator.clipboard.readText().then((text) => { + expect(text).to.eq(`"value"`); + }); + }); + + cy.dragAndDropWidget("Button", 100, 300); + cy.get(commonWidgetSelector.sidebarinspector).click(); + openNode("components"); + cy.get(`[data-cy="inspector-node-button1"] > .mx-1`).realHover(); + cy.get('[style="height: 13px; width: 13px;"] > img').click(); + cy.notVisible(commonWidgetSelector.draggableWidget("button1")); + }); +}); diff --git a/cypress-tests/cypress/support/utils/database.js b/cypress-tests/cypress/support/utils/database.js index 60cab3fa30..3506adf316 100644 --- a/cypress-tests/cypress/support/utils/database.js +++ b/cypress-tests/cypress/support/utils/database.js @@ -185,10 +185,10 @@ export const createNewColumnAndVerify = ( createNewColumnText.defaultValueLabel ); cy.clearAndType(createNewColumnSelectors.columnNameInputField, columnName); - cy.get(createNewColumnSelectors.dataTypeDropdown) .within(() => { + cy.get(createNewColumnSelectors.dataTypeDropdown).within(() => { cy.contains(`Select data type`).click(); - cy.contains(`[id*="react-select-"]`, columnDataType).click(); - }) + cy.contains(`[id*="react-select-"]`, columnDataType).click(); + }); if (defaultValue) { cy.clearAndType( createNewColumnSelectors.defaultValueInputField, @@ -481,7 +481,7 @@ export const editRowAndVerify = ( .realClick(); cy.verifyToastMessage( commonSelectors.toastMessage, - createNewRowText.rowCreatedSuccessfullyToast + editRowText.rowEditedSuccessfullyToast ); verifyRowData(rowNumber, columnName, rowFieldData); }; diff --git a/cypress-tests/cypress/support/utils/inspector.js b/cypress-tests/cypress/support/utils/inspector.js new file mode 100644 index 0000000000..a96f0c22ab --- /dev/null +++ b/cypress-tests/cypress/support/utils/inspector.js @@ -0,0 +1,31 @@ +export const verifyNodeData = (node, type, children) => { + cy.get( + `[data-cy="inspector-node-${node.toLowerCase()}"] > .node-length-color` + ) + .realHover() + .verifyVisibleElement("have.text", `${children}`); + cy.get( + `[data-cy="inspector-node-${node.toLowerCase()}"] > .node-key` + ).verifyVisibleElement("have.text", node); + cy.get( + `[data-cy="inspector-node-${node.toLowerCase()}"] > .node-type` + ).verifyVisibleElement("have.text", type); +}; + +export const openNode = (node, index = 0) => { + cy.get(`[data-cy="inspector-node-${node.toLowerCase()}"] > .node-key`) + .eq(index) + .click(); +}; + +export const verifyValue = (node, type, children) => { + cy.get(`[data-cy="inspector-node-${node.toLowerCase()}"] > .mx-2`) + .realHover() + .verifyVisibleElement("have.text", `${children}`); + cy.get( + `[data-cy="inspector-node-${node.toLowerCase()}"] > .node-key` + ).verifyVisibleElement("have.text", node); + cy.get( + `[data-cy="inspector-node-${node.toLowerCase()}"] > .mx-1` + ).verifyVisibleElement("have.text", type); +}; diff --git a/cypress-tests/cypress/support/utils/version.js b/cypress-tests/cypress/support/utils/version.js index c1bfdb580c..a6bdc666f9 100644 --- a/cypress-tests/cypress/support/utils/version.js +++ b/cypress-tests/cypress/support/utils/version.js @@ -131,18 +131,9 @@ export const releasedVersionAndVerify = (currentVersion) => { releasedVersionText.releasedToastMessage(currentVersion) ); cy.forceClickOnCanvas(); - cy.wait(2000); - verifyModal( - appVersionText.createNewVersion, - appVersionText.createNewVersion, - appVersionSelectors.versionNameInputField - ); - cy.contains(releasedVersionText.releasedModalText).should("be.visible"); - cy.wait(500); - closeModal(commonText.closeButton); - cy.get(appVersionSelectors.currentVersionField(currentVersion)).should( - "have.class", - "color-light-green" + cy.get(".released-version-popup-cover").verifyVisibleElement( + "have.text", + releasedVersionText.releasedAppText ); }; diff --git a/frontend/src/Editor/Inspector/ActionConfigurationPanels/SwitchPage.jsx b/frontend/src/Editor/Inspector/ActionConfigurationPanels/SwitchPage.jsx index f624ade3fb..a67e443e52 100644 --- a/frontend/src/Editor/Inspector/ActionConfigurationPanels/SwitchPage.jsx +++ b/frontend/src/Editor/Inspector/ActionConfigurationPanels/SwitchPage.jsx @@ -46,7 +46,7 @@ export function SwitchPage({ getPages, currentState, event, handlerChanged, even }; return ( -
+