ToolJet/cypress-tests/cypress/support/utils/postgreSql.js

135 lines
4.6 KiB
JavaScript
Raw Normal View History

import {
commonSelectors,
cyParamName,
commonWidgetSelector,
} from "Selectors/common";
import { commonWidgetText } from "Texts/common";
import { openAccordion, openEditorSidebar } from "Support/utils/commonWidget";
import { postgreSqlSelector } from "Selectors/postgreSql";
import { postgreSqlText } from "Texts/postgreSql";
import { closeDSModal } from "Support/utils/dataSource";
export const addQuery = (queryName, query, dbName) => {
cy.get(postgreSqlSelector.buttonAddNewQueries).click();
cy.get(`[data-cy="${dbName}-add-query-card"]`)
.should("contain", dbName)
.click();
// selectQueryMode(postgreSqlText.queryModeSql, "3");
cy.get('[data-cy="query-name-label"]').realHover().then(() => {
cy.get('[class*="breadcrum-rename-query-icon"]').click();
});
cy.get(postgreSqlSelector.queryLabelInputField).clear().type(queryName);
cy.get(postgreSqlSelector.queryInputField).realMouseDown({ position: "center" }).realType(' ');
cy.get(postgreSqlSelector.queryInputField).clearAndTypeOnCodeMirror(query)
cy.get(postgreSqlSelector.queryCreateAndRunButton).click();
};
export const addQueryOnGui = (queryName, query) => {
cy.get(postgreSqlSelector.buttonAddNewQueries).click();
cy.get('[data-cy="cypress-postgresql"]')
.should("contain", dbName)
.click();
cy.get(postgreSqlSelector.queryLabelInputField).clear().type(queryName);
cy.get(postgreSqlSelector.queryInputField)
.should("be.visible")
.clearAndTypeOnCodeMirror(query);
cy.get(postgreSqlSelector.queryCreateAndRunButton).click();
cy.verifyToastMessage(
commonSelectors.toastMessage,
`Query (${queryName}) completed.`
);
};
export const selectDataSource = (dataSource) => {
cy.get(commonSelectors.globalDataSourceIcon).click();
closeDSModal()
cy.wait(500);
cy.get(commonSelectors.addNewDataSourceButton).click();
cy.get(postgreSqlSelector.dataSourceSearchInputField).type(dataSource);
cy.get(`[data-cy='data-source-${dataSource.toLowerCase()}']`).click();
};
export const fillConnectionForm = (data, toggle = "") => {
for (const property in data) {
cy.clearAndType(
`[data-cy="${cyParamName(property)}-text-field"]`,
`${data[property]}`
);
}
if (toggle != "") {
cy.get(toggle).click();
}
cy.get(postgreSqlSelector.buttonTestConnection).click();
cy.get(postgreSqlSelector.textConnectionVerified, {
timeout: 7000,
}).should("have.text", "connection verified");
cy.get(postgreSqlSelector.buttonSave).click();
};
export const fillDataSourceTextField = (
fieldName,
placeholder,
input,
assertionType = "have",
args
) => {
cy.get(`[data-cy="label-${cyParamName(fieldName)}"]`).should(
`${assertionType}.text`,
fieldName
);
cy.get(`[data-cy="${cyParamName(fieldName)}-text-field"]`)
.invoke("attr", "placeholder")
.should("eq", placeholder.replace(/\u00a0/g, " "));
cy.get(`[data-cy="${cyParamName(fieldName)}-text-field"]`)
.clear()
.type(input, args);
};
export const openQueryEditor = (dataSourceName) => {
cy.reload();
cy.wait(2000);
cy.get(postgreSqlSelector.buttonAddNewQueries).click();
cy.get(`[data-cy="${cyParamName(dataSourceName)}-add-query-card"]`)
.should("contain", dataSourceName)
.click();
};
export const selectQueryMode = (mode, index = 2) => {
cy.get(`${postgreSqlSelector.querySelectDropdown}:eq(0)`)
.scrollIntoView()
.should("be.visible")
.click();
cy.contains("[id*=react-select-]", mode).click();
};
export const addGuiQuery = (tableName, primaryKey) => {
cy.get(`${postgreSqlSelector.querySelectDropdown}:eq(1)`).click();
cy.get("#react-select-5-option-0").click();
cy.get(postgreSqlSelector.tableNameInputField).type(tableName);
cy.get(postgreSqlSelector.primaryKeyColoumnInputField).type(primaryKey);
cy.get(postgreSqlSelector.recordsInputField)
.type(`[{{}name:'midhun',email:'[email protected]'}]}}`)
.type("{home}{{");
};
export const addEventHandlerToRunQuery = (query) => {
cy.get(commonWidgetSelector.addEventHandlerLink).click();
cy.get(commonWidgetSelector.eventHandlerCard).click();
cy.get(commonWidgetSelector.actionSelection).type("Run Query{enter}");
cy.get(postgreSqlSelector.eventQuerySelectionField).type(`${query}{enter}`);
cy.forceClickOnCanvas();
};
export const addWidgetsToAddUser = () => {
cy.dragAndDropWidget("Text Input", 200, 160);
cy.dragAndDropWidget("Text Input", 400, 160);
cy.dragAndDropWidget("Button", 600, 160);
openEditorSidebar("button1");
openAccordion(commonWidgetText.accordionEvents);
addEventHandlerToRunQuery("add_data_using_widgets");
};
export const addListviewToVerifyData = () => { };