ToolJet/cypress-tests/cypress/e2e/database/database.cy.js
Mekhla Asopa f0597c98b2
Added automation for database (#5589)
* Added data-cy for table header and subheader

* added data-cy for table operations

* added data-cy for table and text

* Added selectors and texts for database

* Added method for table edit and delete operation

* Added data-cy for delete icon and fields

* Added method for table operation

* Add workaround to handle re-rendering of filter

* Updated and removed duplicate data-cy

* fix toast failure

* deleted unused files

* Updated data-cy for filter section

* updated spec

* Fix failure

* resolved conflicts

---------

Co-authored-by: emidhun <[email protected]>
2023-03-20 18:48:10 +05:30

73 lines
3.1 KiB
JavaScript

import { filterSelectors, sortSelectors } from "Selectors/database";
import { filterText, sortText } from "Texts/database";
import { navigateToDatabase } from "Support/utils/common";
import {
verifyAllElementsOfPage, createTableAndVerifyToastMessage, editTableNameAndVerifyToastMessage,
deleteTableAndVerifyToastMessage,
createNewColumnAndVerify,
navigateToTable,
addNewRowAndVerify,
filterOperation,
sortOperation,
deleteCondition,
deleteRowAndVerify
} from "Support/utils/database";
import { fake } from "Fixtures/fake";
import { randomNumber } from "Support/utils/commonWidget";
import { randomString } from "Support/utils/textInput";
describe("Database Functionality", () => {
const data = {};
data.tableName = fake.tableName;
data.newTableName = fake.tableName;
data.editTableName = fake.tableName;
data.maximumLength = randomNumber(8, 10);
data.dataType = ["varchar", "int", "float", "boolean"];
const columnDetails = () => {
let column = {
name: fake.firstName,
defaultValueDoublePrecision: Math.floor(Math.random() * (1000 - 100) + 100) / 100,
defaultValueInt: randomNumber(10, 99),
defaultValueVarchar: randomString(data.maximumLength)
};
return column;
};
let column1 = columnDetails();
let column2 = columnDetails();
let column3 = columnDetails();
let column4 = columnDetails();
let rowData = {
varcharData: randomString(data.maximumLength),
doublePrecisionData: Math.floor(Math.random() * (1000 - 100) + 100) / 100,
intData: randomNumber(10, 99),
};
beforeEach(() => {
cy.appUILogin();
});
it("Verify that all elements of the table page", () => {
navigateToDatabase();
verifyAllElementsOfPage();
createTableAndVerifyToastMessage(data.tableName, false);
createTableAndVerifyToastMessage(data.newTableName, true, [column1.name, column2.name], [data.dataType[0], data.dataType[1]], true, [column1.defaultValueVarchar, column1.defaultValueInt]);
});
it("Verify all operations of table", () => {
navigateToDatabase();
navigateToTable(data.tableName);
editTableNameAndVerifyToastMessage(data.newTableName, data.editTableName);
deleteTableAndVerifyToastMessage(data.editTableName);
createNewColumnAndVerify(data.tableName, column1.name, data.dataType[0], true, column1.defaultValueVarchar);
addNewRowAndVerify(data.tableName, false)
addNewRowAndVerify(data.tableName, false, [column1.name], true, [rowData.varcharData])
createNewColumnAndVerify(data.tableName, column2.name, data.dataType[1], false);
addNewRowAndVerify(data.tableName, false, [column1.name, column2.name], [rowData.varcharData, rowData.intData]);
addNewRowAndVerify(data.tableName, true, [column1.name, column2.name], [rowData.varcharData, rowData.intData]);
filterOperation(data.tableName, ["id"], [filterText.operation.greaterThan], ["2"]);
deleteCondition(filterSelectors.filterButton, ["id"], filterSelectors.deleteIcon)
sortOperation(data.tableName, ["id"], [sortText.order.descending])
deleteCondition(sortSelectors.sortButton, ["id"], sortSelectors.deleteIcon)
deleteRowAndVerify(data.tableName, ["1", "2"]);
});
});