mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
* global store init * Moved query data to new component * Removed unwanted code * Removed data queries prop drilling * Moved query state out of editor * Added unsafe to componentWillReceiveProps * Selected first query when the version is changed * Fixed bug on renaming query * Fixed issue on dark theme * Fixed running query on page load in viewer * Query manager refactor init * Added global data source in store * Disabled devtools on production * Fixed bug on selecting query after deletion * Reset store when editor is loaded * Moved query manager to functional component * Fixed conflict issues * Fixed infinite loop on tooljetDB * Set the store name and updated devtools logic * Fixed issue on displaying draft query from data sources * Updated comments on the store * Fixed bug on changing data source and creating query from data source * Fixed bug on showing unsaved changes popup * Fixed issue on showing confirmation modal everytime without any changes * feat: autosave data query functionality * feat: show publish button only when the status in draft state * Fixed issues on query renaming * feat: removed discard popup for data query create/edit widget * stye: reduced autosave api call timeout and added draft tag * feat: added minor style changes * feat: fixed issues with restapi plugin, removed unused api calls * fix: fixed issue that breaks restapi creation * fix: reload selected query details after update query * perf: reduced debounce time for data query update apis * feat: removed full reloading of query list on query renaming * feat: duplicate data query feature added * Fixed issue on creating restAPI query * fix: fixed issue in transforming response from update queyr api * fix: refresh selected query details when the selected query is updated * fix: rename query on click enter * fix: full refresh of query list on update * fix: style changes * fix: subscribing to state to autsave * feat: updated the query manager styles to new design * feat: revamped the querypane header buttons * fix: fixed the padding for query panel maximize button * feat: updated search box style * refactor: moved function to render data source icon to its own component * fix: fixed querymanager widget breaking issue * merged with feat/query-manager-autosave * refactor: removed unused consoles * refactor: removed unused consoles * refactor: removed unused consoles * fix: removed commented code * fix: removed unused code * refactor: removed unused comments * fix: show change datasource select only if valid ds available * Update frontend/src/Editor/Inspector/EventManager.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * Update frontend/src/Editor/QueryManager/Components/DataSourceLister.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * Update frontend/src/Editor/QueryManager/Components/DataSourceLister.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * Update frontend/src/Editor/QueryManager/Components/QueryManagerBody.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * feat: modify behaviour of search icon in query panel * fix: fixed theme color mismatch in query manager * refactor: remove dead code * refactor: updated theme for data source listner * fix: theming in filter and sort popup * refactor: remove unused variables * fix: removed draftQuery logic from query manager * refactor: removed unused varibales * Update frontend/src/Editor/QueryManager/QueryEditors/Restapi/TabParams.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * Update frontend/src/Editor/QueryPanel/QueryCard.jsx Co-authored-by: Kavin Venkatachalam <[email protected]> * feat: diable preview for draft queries * fix: added tooltip for query panel button * fix: fixed issues in saving query manager events * fix: moved query save subscriber to QuerPanel component * feat: converted query run api to save and run * fix: made varibale an optional param in updateDataQuery dto * refactor: cleanup update dataquery status api response * refactor: moved query status to constants file * feat: prompt for queryname when creating new query * fix: store new queryname in state on create query pageload * fix: fixed alignment of Tooljet db component form * fix: correct translation and format file * refactor: removed consoles * merge: merge appbuilder-1.2 * style: updated rename input/button UX * style: revamped dataquery create widget styles * style: revamped data source selector styles * fix: removed code added for debugging * style: updated data query filter design * style: Add prop to control visibility of clear button in search box * style: implement new style for query filter * merge appbuilder-1.2 to feat/query-manager-sort-filter * refactor: remove unintended file change * fix: set default value for method in respapi * style: updated copilot info popup style * style: updated quer panel header icons * style: updated button styles * style: fixed query manager button styles * style: smoothened query preview modal view * fix: correct import for some funs * fix: fixed minor UX bugs * style: fixed styling of REST api GDS * style: fixed styleing of sort and filter popup * style: improved data queries sort filter UI/UX * fix: remove click listner when overlay is closed * fix: moved component declaration out of parent component * fix: set selected datasource for default sources * fix: filter DS based on saerch in create dropdown * fix: restrict draft query running to preview mode * fix: query renamed on input change in create screen * fix: set name to state as soon as user renames query * fix: make query notification message consistent * style: correct s3 bucket plugin layout config * fix: fixed issues with cloning of Static DS queries * fix: made change so that newly created query is reflected immediatly * style: updated spacing for query manager components * fix: hide rename input when no query selected * fix: check bothe selected query and DS before rendering query manager * fix: set isSaving to true only for api calls in querymanager * fix: added success message form in qm * fix: filter out draft queries from viewer on running * fix: fixed inconsistent gutter for runpy and runjs editors * fix: reload dataqueris on LDS deletion * fix: redesigned filter/sort popup * fix: fixed issue that resets filter on search * fix: fixed query manager breaking on plugin select * fix: diable json preview for text output * fix: reset to filter and sort main menu on close filter popup * refactor: rename varibales * stye: redesigned query create panel * feat: revert data query status column from backend * style: redesign query picker section * refactor: removed dead code * style: querypanel expand/collapse btn style * style: add query select and query filter popup style redesign * style: updated filter popup style * feat: removed draft query checks everywhere * style: empty dataqueries style changed * style: updated query selector popup and rest options styles * style: removed 100% height to query option remove btn * feat: added the query runnable status check * style: updated query manager footer style * feat: changed DS filter from kind to DS ID * style: minor ui tweaks in filter popup * style: disable DS filter if no DQs created * style: minor ui change * fix: rerender filter popup post DS api call. fixed rest api copy feature * fix: add local DS to filter popup * refactor: removed dead code/comments * add new row is crashing when no data is fed to table (#7102) * fix: fixed condition that blocked GDS run on load * fix: revert name back to og name if update fails in rename query * feat: added tooltip for show query btn * fix: added click interaction for pill btn as well * fix: minor UI tweaks to make UX better * style: fixed the styling of filter popup * style: minor UI tweaks in query filter popup * fix: fixed minor css issue in ds picker * style: wrap overflowing text in queryname * fix: update updated_at after query update api call success * fix: update remove the caller query from event query dropdown * style: minor ui spacing tweaks * fix: fix issue that cuased app crash when tjdb opened * fix: fixed update row styles * fix: fixed info popup dark theme bg * fix: fixed headers styling according to general QM styles * style: fixed stripe QM UI * fix: added tooltip for quernames * feat: add tooltip for select ds options * added consoles to debug debugger issue * fix: fixed :active style of ds select dropdown in QM * fix: fixed DS kind name in data source selector in QM * fix: fixed border color mismatch for ds select dd * fix: change tooltip msg for maximize/minize QM * Fix automation for query manager revamp. (#7223) * Add data-cy to support modified specs * Fix event handler * Fix RunPy and RunJS specs * Fix event handler label * Fix basic components spec * Fix basic components failure * Fix tabel spec failure. * Fix runjs and runpy actions * Fix table column options * Add data-cy * version: version updated to 2.13.0 * Version bump --------- Co-authored-by: Kavin Venkatachalam <[email protected]> Co-authored-by: Kavin Venkatachalam <[email protected]> Co-authored-by: Manish Kushare <[email protected]> Co-authored-by: Midhun Kumar E <[email protected]>
685 lines
18 KiB
JavaScript
685 lines
18 KiB
JavaScript
import { commonWidgetSelector, commonSelectors } from "Selectors/common";
|
|
import { fake } from "Fixtures/fake";
|
|
import { tableText } from "Texts/table";
|
|
import { tableSelector } from "Selectors/table";
|
|
import {
|
|
verifyComponent,
|
|
deleteComponentAndVerify,
|
|
verifyComponentWithOutLabel,
|
|
} from "Support/utils/basicComponents";
|
|
import {
|
|
openAccordion,
|
|
verifyAndModifyParameter,
|
|
openEditorSidebar,
|
|
verifyAndModifyToggleFx,
|
|
addDefaultEventHandler,
|
|
addAndVerifyTooltip,
|
|
editAndVerifyWidgetName,
|
|
verifyComponentValueFromInspector,
|
|
fillBoxShadowParams,
|
|
selectColourFromColourPicker,
|
|
addTextWidgetToVerifyValue,
|
|
verifyBoxShadowCss,
|
|
verifyTooltip,
|
|
verifyWidgetText,
|
|
closeAccordions,
|
|
} from "Support/utils/commonWidget";
|
|
import {
|
|
commonText,
|
|
commonWidgetText,
|
|
codeMirrorInputLabel,
|
|
} from "Texts/common";
|
|
import { resizeQueryPanel } from "Support/utils/dataSource";
|
|
|
|
describe("Basic components", () => {
|
|
const data = {};
|
|
beforeEach(() => {
|
|
data.appName = `${fake.companyName}-${fake.companyName}-App`;
|
|
cy.appUILogin();
|
|
cy.createApp();
|
|
cy.modifyCanvasSize(900, 900);
|
|
cy.renameApp(data.appName);
|
|
cy.intercept("GET", "/api/comments/*").as("loadComments");
|
|
});
|
|
|
|
it("Should verify Toggle switch", () => {
|
|
cy.dragAndDropWidget("Toggle Switch", 50, 50);
|
|
verifyComponent("toggleswitch1");
|
|
|
|
cy.resizeWidget("toggleswitch1", 650, 400);
|
|
|
|
openEditorSidebar("toggleswitch1");
|
|
editAndVerifyWidgetName("toggleswitch2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get(
|
|
'[data-cy="draggable-widget-toggleswitch2"] > .form-check-label'
|
|
).should("have.text", "label");
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("toggleswitch2");
|
|
cy.get(
|
|
'[data-cy="draggable-widget-toggleswitch2"] > .form-check-label'
|
|
).should("have.text", "label");
|
|
|
|
cy.go("back");
|
|
cy.waitForAppLoad();
|
|
deleteComponentAndVerify("toggleswitch2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Checkbox", () => {
|
|
cy.dragAndDropWidget("Checkbox", 50, 50);
|
|
// cy.resizeWidget("checkbox1", 50, 200);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("checkbox1");
|
|
|
|
cy.resizeWidget("checkbox1", 650, 400);
|
|
|
|
openEditorSidebar("checkbox1");
|
|
editAndVerifyWidgetName("checkbox2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.get('[data-cy="draggable-widget-checkbox2"] .form-check-label').should(
|
|
"have.text",
|
|
"label"
|
|
);
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("checkbox2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("checkbox2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Radio Button", () => {
|
|
cy.dragAndDropWidget("Radio Button", 50, 50);
|
|
// cy.resizeWidget("radiobutton1", 100, 200);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("radiobutton1");
|
|
|
|
cy.resizeWidget("radiobutton1", 650, 400);
|
|
|
|
openEditorSidebar("radiobutton1");
|
|
editAndVerifyWidgetName("radiobutton2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get('[data-cy="draggable-widget-radiobutton2"] > .col-auto').should(
|
|
"have.text",
|
|
"label"
|
|
);
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("radiobutton2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("radiobutton2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
it("Should verify Dropdown", () => {
|
|
cy.dragAndDropWidget("Dropdown", 50, 50);
|
|
// cy.resizeWidget("radiobutton1", 100, 200);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("dropdown1");
|
|
|
|
cy.resizeWidget("dropdown1", 650, 400);
|
|
|
|
openEditorSidebar("dropdown1");
|
|
editAndVerifyWidgetName("dropdown2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get('[data-cy="draggable-widget-dropdown2"] > .col-auto').should(
|
|
"have.text",
|
|
"label"
|
|
);
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("dropdown2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("dropdown2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
//pending
|
|
it.skip("Should verify Rating", () => {
|
|
cy.dragAndDropWidget("Rating", 200, 200);
|
|
cy.get('[data-cy="draggable-widget-starrating1"]').click({ force: true });
|
|
cy.resizeWidget("starrating1", 200, 500);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("starrating1");
|
|
|
|
cy.resizeWidget("starrating1", 650, 400);
|
|
|
|
openEditorSidebar("starrating1");
|
|
editAndVerifyWidgetName("starrating2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get('[data-cy="draggable-widget-starrating2"] > .col-auto').should(
|
|
"have.text",
|
|
"label"
|
|
);
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("starrating2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("starrating2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Button Group", () => {
|
|
cy.dragAndDropWidget("Button Group", 300, 300);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("buttongroup1");
|
|
|
|
cy.resizeWidget("buttongroup1", 650, 400);
|
|
|
|
openEditorSidebar("buttongroup1");
|
|
editAndVerifyWidgetName("buttongroup2");
|
|
|
|
verifyAndModifyParameter(commonWidgetText.parameterLabel, "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get(
|
|
'[data-cy="draggable-widget-buttongroup2"] > .widget-buttongroup-label'
|
|
).should("have.text", "label");
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("buttongroup2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("buttongroup2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Calendar", () => {
|
|
cy.dragAndDropWidget("Calendar", 50, 50);
|
|
cy.get('[data-cy="draggable-widget-calendar1"]').click({ force: true });
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("calendar1");
|
|
|
|
cy.resizeWidget("calendar1", 650, 400);
|
|
|
|
openEditorSidebar("calendar1");
|
|
editAndVerifyWidgetName("calendar2");
|
|
|
|
cy.waitForAutoSave();
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("calendar2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("calendar2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Chart", () => {
|
|
cy.dragAndDropWidget("Chart", 50, 50);
|
|
cy.get('[data-cy="draggable-widget-chart1"]').click({ force: true });
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("chart1");
|
|
|
|
cy.resizeWidget("chart1", 650, 400);
|
|
|
|
openEditorSidebar("chart1");
|
|
editAndVerifyWidgetName("chart2", ["Chart data", "Properties"]);
|
|
|
|
verifyAndModifyParameter("Title", "label");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
cy.get('[data-cy="draggable-widget-chart2"]').should(
|
|
"contain.text",
|
|
"label"
|
|
);
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("chart2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("chart2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Circular Progress Bar", () => {
|
|
cy.dragAndDropWidget("Circular Progressbar", 300, 300);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("circularprogressbar1");
|
|
|
|
cy.resizeWidget("circularprogressbar1", 650, 400);
|
|
|
|
openEditorSidebar("circularprogressbar1");
|
|
editAndVerifyWidgetName("circularprogressbar2");
|
|
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("circularprogressbar2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("circularprogressbar2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Code Editor", () => {
|
|
cy.dragAndDropWidget("Code Editor", 300, 300);
|
|
cy.get('[data-cy="draggable-widget-codeeditor1"]').click({ force: true });
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("codeeditor1");
|
|
|
|
cy.resizeWidget("codeeditor1", 650, 400);
|
|
|
|
openEditorSidebar("codeeditor1");
|
|
editAndVerifyWidgetName("codeeditor2");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("codeeditor2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("codeeditor2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Color Picker", () => {
|
|
cy.dragAndDropWidget("Color Picker", 300, 300);
|
|
cy.get('[data-cy="draggable-widget-colorpicker1"]').click({ force: true });
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("colorpicker1");
|
|
|
|
cy.resizeWidget("colorpicker1", 650, 400);
|
|
|
|
openEditorSidebar("colorpicker1");
|
|
editAndVerifyWidgetName("colorpicker2");
|
|
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("colorpicker2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("colorpicker2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
//needed fix
|
|
it.skip("Should verify Custom Component", () => {
|
|
cy.dragAndDropWidget("Custom Component", 50, 50);
|
|
cy.get('[data-cy="draggable-widget-customcomponent1"]').click({
|
|
force: true,
|
|
});
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("customcomponent1");
|
|
openEditorSidebar("customcomponent1");
|
|
|
|
// editAndVerifyWidgetName("customcomponent2", ["Code"]);
|
|
closeAccordions(["Code"]);
|
|
cy.get(commonWidgetSelector.WidgetNameInputField).type(
|
|
"{selectAll}{backspace}customcomponent2",
|
|
{ delay: 30 }
|
|
);
|
|
cy.forceClickOnCanvas();
|
|
|
|
cy.get(commonWidgetSelector.draggableWidget(name)).trigger("mouseover");
|
|
cy.get(commonWidgetSelector.widgetConfigHandle(name))
|
|
.click()
|
|
.should("have.text", name);
|
|
|
|
cy.resizeWidget("customcomponent1", 650, 400);
|
|
|
|
openEditorSidebar("customcomponent1");
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("customcomponent2", ["Code"]);
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("customcomponent2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Container", () => {
|
|
cy.dragAndDropWidget("Container", 50, 50);
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("container1");
|
|
|
|
cy.resizeWidget("container1", 650, 400);
|
|
|
|
openEditorSidebar("container1");
|
|
editAndVerifyWidgetName("container2", ["Layout"]);
|
|
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("container2", ["Layout"]);
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("container2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Date-Range Picker", () => {
|
|
cy.dragAndDropWidget("Range Picker", 300, 300);
|
|
|
|
cy.forceClickOnCanvas();
|
|
verifyComponent("daterangepicker1");
|
|
|
|
cy.resizeWidget("daterangepicker1", 650, 400);
|
|
|
|
openEditorSidebar("daterangepicker1");
|
|
editAndVerifyWidgetName("daterangepicker2");
|
|
|
|
cy.forceClickOnCanvas();
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("daterangepicker2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("daterangepicker2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
//visible issue
|
|
it.skip("Should verify Divider", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Divider",
|
|
"divider1",
|
|
"divider2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify File Picker", () => {
|
|
verifyComponentWithOutLabel(
|
|
"File Picker",
|
|
"filepicker1",
|
|
"filepicker2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Form", () => {
|
|
cy.dragAndDropWidget("Form", 50, 50);
|
|
verifyComponent("form1");
|
|
|
|
cy.resizeWidget("form1", 650, 400);
|
|
|
|
openEditorSidebar("form1");
|
|
editAndVerifyWidgetName("form2");
|
|
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("form2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("form2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify HTML", () => {
|
|
cy.dragAndDropWidget("HTML Viewe", 50, 50, "HTML Viewer"); // search logic WIP
|
|
verifyComponent("html1");
|
|
|
|
cy.resizeWidget("html1", 650, 400);
|
|
|
|
openEditorSidebar("html1");
|
|
editAndVerifyWidgetName("html2");
|
|
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("html2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("html2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Icon", () => {
|
|
verifyComponentWithOutLabel("Icon", "icon1", "icon2", data.appName);
|
|
});
|
|
|
|
it("Should verify Iframe", () => {
|
|
verifyComponentWithOutLabel("Iframe", "iframe1", "iframe2", data.appName);
|
|
});
|
|
|
|
it.skip("Should verify Kamban", () => {
|
|
verifyComponentWithOutLabel("Kanban", "kanban1", "kanban2", data.appName);
|
|
});
|
|
|
|
it("Should verify Link", () => {
|
|
verifyComponentWithOutLabel("Link", "link1", "link2", data.appName);
|
|
});
|
|
|
|
it("Should verify Map", () => {
|
|
cy.dragAndDropWidget("Map", 50, 50);
|
|
cy.get("body").then(($body) => {
|
|
if ($body.find(".dismissButton").length > 0) {
|
|
cy.get(".dismissButton").click();
|
|
}
|
|
});
|
|
|
|
verifyComponent("map1");
|
|
|
|
cy.resizeWidget("map1", 650, 400);
|
|
|
|
openEditorSidebar("map1");
|
|
editAndVerifyWidgetName("map2");
|
|
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("map2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("map2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Modal", () => {
|
|
verifyComponentWithOutLabel("Modal", "modal1", "modal2", data.appName);
|
|
});
|
|
|
|
it("Should verify PDF", () => {
|
|
cy.dragAndDropWidget("PDF", 50, 50);
|
|
verifyComponent("pdf1");
|
|
|
|
cy.resizeWidget("pdf1", 650, 400);
|
|
|
|
openEditorSidebar("pdf1");
|
|
editAndVerifyWidgetName("pdf2");
|
|
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("pdf2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("pdf2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Pagination", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Pagination",
|
|
"pagination1",
|
|
"pagination2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify QR Scanner", () => {
|
|
verifyComponentWithOutLabel(
|
|
"QR Scanner",
|
|
"qrscanner1",
|
|
"qrscanner2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it.skip("Should verify Range Slider", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Range Slider",
|
|
"rangeslider1",
|
|
"rangeslider2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Rich Text Editor", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Text Editor",
|
|
"richtexteditor1",
|
|
"richtexteditor2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Spinner", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Spinner",
|
|
"spinner1",
|
|
"spinner2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Statistics", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Statistics",
|
|
"statistics1",
|
|
"statistics2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Steps", () => {
|
|
verifyComponentWithOutLabel("Steps", "steps1", "steps2", data.appName);
|
|
});
|
|
|
|
it("Should verify SVG Image", () => {
|
|
verifyComponentWithOutLabel(
|
|
"SVG Image",
|
|
"svgimage1",
|
|
"svgimage2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Tabs", () => {
|
|
cy.viewport(1200, 1300);
|
|
resizeQueryPanel("0");
|
|
cy.dragAndDropWidget("Tabs", 100, 100);
|
|
verifyComponent("tabs1");
|
|
deleteComponentAndVerify("image1");
|
|
|
|
cy.resizeWidget("tabs1", 650, 400);
|
|
|
|
openEditorSidebar("tabs1");
|
|
editAndVerifyWidgetName("tabs2");
|
|
|
|
cy.waitForAutoSave();
|
|
|
|
cy.openInCurrentTab(commonWidgetSelector.previewButton);
|
|
verifyComponent("tabs2");
|
|
|
|
cy.go("back");
|
|
deleteComponentAndVerify("tabs2");
|
|
cy.get(commonSelectors.editorPageLogo).click();
|
|
|
|
cy.deleteApp(data.appName);
|
|
});
|
|
|
|
it("Should verify Tags", () => {
|
|
verifyComponentWithOutLabel("Tags", "tags1", "tags2", data.appName);
|
|
});
|
|
|
|
it("Should verify Textarea", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Textarea",
|
|
"textarea1",
|
|
"textarea2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Timeline", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Timeline",
|
|
"timeline1",
|
|
"timeline2",
|
|
data.appName
|
|
);
|
|
});
|
|
it("Should verify Timer", () => {
|
|
verifyComponentWithOutLabel("Timer", "timer1", "timer2", data.appName);
|
|
});
|
|
|
|
it("Should verify Tree Select", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Tree Select",
|
|
"treeselect1",
|
|
"treeselect2",
|
|
data.appName
|
|
);
|
|
});
|
|
|
|
it("Should verify Vertical Divider", () => {
|
|
verifyComponentWithOutLabel(
|
|
"Vertical Divider",
|
|
"verticaldivider1",
|
|
"verticaldivider2",
|
|
data.appName
|
|
);
|
|
});
|
|
});
|