Browse Source

test: use class names for accessing active expand-drawer

Signed-off-by: Raju Udava <86527202+dstala@users.noreply.github.com>
pull/3655/head
Raju Udava 2 years ago
parent
commit
a4b1218e0b
  1. 10
      scripts/cypress/integration/common/1b_table_column_operations.js
  2. 54
      scripts/cypress/integration/common/2b_table_with_m2m_column.js
  3. 49
      scripts/cypress/integration/common/3a_filter_sort_fields_operations.js
  4. 85
      scripts/cypress/integration/common/3e_duration_column.js
  5. 151
      scripts/cypress/integration/common/3f_link_to_another_record.js
  6. 12
      scripts/cypress/integration/common/4f_grid_view_share.js
  7. 3
      scripts/cypress/integration/common/8a_webhook.js
  8. 168
      scripts/cypress/integration/spec/roleValidation.spec.js
  9. 1
      scripts/cypress/integration/test/restTableOps.js

10
scripts/cypress/integration/common/1b_table_column_operations.js

@ -18,10 +18,11 @@ export const genTest = (apiType, dbType) => {
.clear()
.type(cellValue);
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.click({ force: true });
.should("exist")
.click();
cy.toastWait("updated successfully");
cy.get("body").type("{esc}");
@ -148,10 +149,11 @@ export const genTest = (apiType, dbType) => {
.clear()
.type(updatedRandVal);
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.click({ force: true });
.should("exist")
.click();
// partial toast message
cy.toastWait("updated successfully");

54
scripts/cypress/integration/common/2b_table_with_m2m_column.js

@ -11,11 +11,11 @@ export const genTest = (apiType, dbType) => {
beforeEach(() => {
cy.restoreLocalStorage();
})
});
afterEach(() => {
cy.saveLocalStorage();
})
});
// after(() => {
// cy.closeTableTab("Actor");
@ -31,20 +31,26 @@ export const genTest = (apiType, dbType) => {
it("M2m chip content validation on grid", () => {
// grid m2m content validation
mainPage.getCell("Film List", 1)
.find('.nc-virtual-cell > .chips-wrapper > .chips > .group > .name')
mainPage
.getCell("Film List", 1)
.find(".nc-virtual-cell > .chips-wrapper > .chips > .group > .name")
.contains("ACADEMY DINOSAUR")
.should('exist');
mainPage.getCell("Film List", 1)
.find('.nc-virtual-cell > .chips-wrapper > .chips > .group > .name')
.should("exist");
mainPage
.getCell("Film List", 1)
.find(".nc-virtual-cell > .chips-wrapper > .chips > .group > .name")
.contains("ANACONDA CONFESSIONS")
.should('exist');
.should("exist");
});
it("Expand m2m column", () => {
// expand first row
mainPage.getCell("Film List", 1).should("exist").trigger("mouseover").click();
cy.get('.nc-action-icon').eq(0).should('exist').click({ force: true });
mainPage
.getCell("Film List", 1)
.should("exist")
.trigger("mouseover")
.click();
cy.get(".nc-action-icon").eq(0).should("exist").click({ force: true });
// GUI-v2 Kludge:
// validations
@ -66,7 +72,9 @@ export const genTest = (apiType, dbType) => {
.click()
.then(() => {
// Link record form validation
cy.getActiveModal(".nc-modal-link-record").contains("Link record").should("exist");
cy.getActiveModal(".nc-modal-link-record")
.contains("Link record")
.should("exist");
cy.getActiveModal(".nc-modal-link-record")
.find(".nc-reload")
.should("exist");
@ -78,15 +86,20 @@ export const genTest = (apiType, dbType) => {
.eq(0)
.contains("ACE GOLDFINGER")
.should("exist");
cy.getActiveModal(".nc-modal-link-record").find("button.ant-modal-close").click();
cy.getActiveModal(".nc-modal-link-record")
.find("button.ant-modal-close")
.click();
});
});
it("Expand first linked card, validate", () => {
// expand first row
mainPage.getCell("Film List", 1).should("exist").trigger("mouseover").click();
cy.get('.nc-action-icon').eq(0).should('exist').click({ force: true });
mainPage
.getCell("Film List", 1)
.should("exist")
.trigger("mouseover")
.click();
cy.get(".nc-action-icon").eq(0).should("exist").click({ force: true });
cy.getActiveModal(".nc-modal-child-list")
.find(".ant-card")
@ -95,21 +108,22 @@ export const genTest = (apiType, dbType) => {
.click()
.then(() => {
// wait to ensure pop up appears before we proceed further
cy.wait(1000)
cy.wait(1000);
// Link card validation
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find(".text-lg")
.contains("ACADEMY DINOSAUR")
.should("exist");
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find('button:contains("Save row")')
.should("exist");
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find('button:contains("Cancel")')
.should("exist");
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find('button:contains("Cancel")')
.should("exist")
.click();
cy.getActiveModal().find("button.ant-modal-close").click();
});

49
scripts/cypress/integration/common/3a_filter_sort_fields_operations.js

@ -19,11 +19,11 @@ export const genTest = (apiType, dbType) => {
beforeEach(() => {
cy.restoreLocalStorage();
})
});
afterEach(() => {
cy.saveLocalStorage();
})
});
it("Check country table - Pagination", () => {
cy.openTableTab("Country", 25);
@ -49,10 +49,14 @@ export const genTest = (apiType, dbType) => {
// add a row to end of Country table
cy.get(".nc-add-new-row-btn").click();
cy.wait(1000);
cy.get(".nc-expand-col-Country").find(".nc-cell > input").first().type("Test Country");
cy.getActiveDrawer()
cy.get(".nc-expand-col-Country")
.find(".nc-cell > input")
.first()
.type("Test Country");
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find(".ant-btn-primary")
.contains("Save row")
.should("exist")
.click();
// cy.get("#data-table-form-Country > input")
@ -61,19 +65,17 @@ export const genTest = (apiType, dbType) => {
// cy.contains("Save row").filter("button").click();
cy.toastWait("updated successfully");
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find(".ant-btn")
.contains("Cancel")
.should("exist")
.click();
// verify
mainPage.getPagination(5).click();
// kludge: flicker on load
cy.wait(3000)
mainPage
.getCell("Country", 10)
.contains("Test Country")
.should("exist");
cy.wait(3000);
mainPage.getCell("Country", 10).contains("Test Country").should("exist");
});
// delete single row
@ -81,7 +83,9 @@ export const genTest = (apiType, dbType) => {
it("Delete Row", () => {
// delete row added in previous step
mainPage.getCell("Country", 10).rightclick();
cy.getActiveMenu(".nc-dropdown-grid-context-menu").contains("Delete Row").click();
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
.contains("Delete Row")
.click();
// cy.toastWait('Deleted row successfully')
@ -135,10 +139,8 @@ export const genTest = (apiType, dbType) => {
// delete selected rows (multiple)
//
it.skip("Delete Selected", () => {
cy.get(".ant-checkbox").should('exist')
.eq(10).click({ force: true });
cy.get(".ant-checkbox").should('exist')
.eq(11).click({ force: true });
cy.get(".ant-checkbox").should("exist").eq(10).click({ force: true });
cy.get(".ant-checkbox").should("exist").eq(11).click({ force: true });
mainPage.getCell("Country", 10).rightclick({ force: true });
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
@ -148,17 +150,12 @@ export const genTest = (apiType, dbType) => {
// verify
// mainPage.getCell("Country", 10).should("not.exist");
// mainPage.getCell("Country", 11).should("not.exist");
cy.get(
`:nth-child(10) > [data-title="Country"]`
).should("not.exist");
cy.get(
`:nth-child(11) > [data-title="Country"]`
).should("not.exist");
cy.get(`:nth-child(10) > [data-title="Country"]`).should("not.exist");
cy.get(`:nth-child(11) > [data-title="Country"]`).should("not.exist");
mainPage.getPagination(1).click();
});
it("Enable sort", () => {
mainPage.sortField("Country", "Z → A");
cy.contains("Zambia").should("exist");
@ -180,17 +177,13 @@ export const genTest = (apiType, dbType) => {
it("Create Filter", () => {
mainPage.filterField("Country", "is equal", "India");
// cy.get("td:contains(India)").should("exist");
mainPage.getCell("Country", 1)
.contains("India")
.should("exist");
mainPage.getCell("Country", 1).contains("India").should("exist");
});
it("Delete Filter", () => {
// remove sort and check
mainPage.filterReset();
mainPage.getCell("Country", 1)
.contains("India")
.should("not.exist");
mainPage.getCell("Country", 1).contains("India").should("not.exist");
// cy.contains("td:contains(India)").should("not.exist");
cy.closeTableTab("Country");

85
scripts/cypress/integration/common/3e_duration_column.js

@ -1,7 +1,5 @@
import { mainPage } from "../../support/page_objects/mainPage";
import {
isTestSuiteActive,
} from "../../support/page_objects/projectConstants";
import { isTestSuiteActive } from "../../support/page_objects/projectConstants";
export const genTest = (apiType, dbType) => {
if (!isTestSuiteActive(apiType, dbType)) return;
@ -29,8 +27,7 @@ export const genTest = (apiType, dbType) => {
cy.createTable(tableName);
});
beforeEach(() => {
});
beforeEach(() => {});
after(() => {
cy.deleteTable(tableName);
@ -39,36 +36,35 @@ export const genTest = (apiType, dbType) => {
// Routine to create a new look up column
//
const addDurationColumn = (columnName, durationFormat) => {
cy.get(".nc-grid tr > th:last .nc-icon").click({
force: true,
});
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find('input.nc-column-name-input', { timeout: 3000 })
.should('exist')
.find("input.nc-column-name-input", { timeout: 3000 })
.should("exist")
.clear()
.type(columnName);
// cy.get(".nc-column-type-input").last().click().type("Duration");
cy.getActiveMenu('.nc-dropdown-grid-add-column')
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find(".nc-column-type-input")
.last()
.click()
.type("Duration")
cy.getActiveSelection('.nc-dropdown-column-type')
.find('.ant-select-item-option')
.type("Duration");
cy.getActiveSelection(".nc-dropdown-column-type")
.find(".ant-select-item-option")
.contains("Duration")
.click();
// Configure Duration format
fetchParentFromLabel("Duration Format");
cy.getActiveSelection('.nc-dropdown-duration-option')
.find('.ant-select-item-option')
cy.getActiveSelection(".nc-dropdown-duration-option")
.find(".ant-select-item-option")
.contains(durationFormat)
.click();
// cy.get(".ant-btn-primary").contains("Save").should('exist').click();
cy.getActiveMenu('.nc-dropdown-grid-add-column')
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find(".ant-btn-primary:visible")
.contains("Save")
.click();
@ -86,7 +82,6 @@ export const genTest = (apiType, dbType) => {
// routine to edit column
//
const editColumnByName = (oldName, newName, newDurationFormat) => {
cy.get(`th:contains(${oldName}) .nc-icon.ant-dropdown-trigger`)
.trigger("mouseover", { force: true })
.click({ force: true });
@ -99,19 +94,19 @@ export const genTest = (apiType, dbType) => {
// rename column and verify
cy.getActiveMenu(".nc-dropdown-edit-column")
.find('input.nc-column-name-input', { timeout: 3000 })
.should('exist')
.find("input.nc-column-name-input", { timeout: 3000 })
.should("exist")
.clear()
.type(newName);
// Configure Duration format
fetchParentFromLabel("Duration Format");
cy.getActiveSelection('.nc-dropdown-duration-option')
.find('.ant-select-item-option')
cy.getActiveSelection(".nc-dropdown-duration-option")
.find(".ant-select-item-option")
.contains(newDurationFormat)
.click();
// cy.get(".ant-btn-primary:visible").contains("Save").click();
cy.getActiveMenu('.nc-dropdown-edit-column')
cy.getActiveMenu(".nc-dropdown-edit-column")
.find(".ant-btn-primary:visible")
.contains("Save")
.click();
@ -122,10 +117,16 @@ export const genTest = (apiType, dbType) => {
cy.get(`th:contains(${newName})`).should("exist");
};
const addDurationData = (colName, index, cellValue, expectedValue, isNewRow = false) => {
const addDurationData = (
colName,
index,
cellValue,
expectedValue,
isNewRow = false
) => {
if (isNewRow) {
cy.get(".nc-add-new-row-btn:visible").should("exist");
cy.wait(500)
cy.wait(500);
cy.get(".nc-add-new-row-btn").click();
} else {
// mainPage.getRow(index).find(".nc-row-expand-icon").click({ force: true });
@ -133,17 +134,26 @@ export const genTest = (apiType, dbType) => {
.eq(index - 1)
.click({ force: true });
}
cy.get(".duration-cell-wrapper > input").first().should('exist').type(cellValue);
cy.getActiveDrawer().find("button").contains("Save row").click({ force: true });
cy.get(".duration-cell-wrapper > input")
.first()
.should("exist")
.type(cellValue);
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.should("exist")
.click();
cy.toastWait("Row updated successfully");
cy.getActiveDrawer().find("button").contains("Cancel").click({ force: true });
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Cancel")
.should("exist")
.click();
// mainPage.getCell(colName, index).find('input').then(($e) => {
// expect($e[0].value).to.equal(expectedValue)
// })
mainPage.getCell(colName, index)
.contains(expectedValue)
.should("exist");
}
mainPage.getCell(colName, index).contains(expectedValue).should("exist");
};
///////////////////////////////////////////////////
// Test case
@ -202,7 +212,10 @@ export const genTest = (apiType, dbType) => {
{
// h:mm:ss.s
it("Duration: h:mm:ss.s", () => {
addDurationColumn("NC_DURATION_2", "h:mm:ss.s (e.g. 3:34.6, 1:23:40.0)");
addDurationColumn(
"NC_DURATION_2",
"h:mm:ss.s (e.g. 3:34.6, 1:23:40.0)"
);
addDurationData("NC_DURATION_2", 1, "1234", "00:20:34.0");
addDurationData("NC_DURATION_2", 2, "12:34", "00:12:34.0");
addDurationData("NC_DURATION_2", 3, "12:34:56", "12:34:56.0");
@ -228,7 +241,10 @@ export const genTest = (apiType, dbType) => {
{
// h:mm:ss.ss
it("Duration: h:mm:ss.ss", () => {
addDurationColumn("NC_DURATION_3", "h:mm:ss.ss (e.g. 3.45.67, 1:23:40.00)");
addDurationColumn(
"NC_DURATION_3",
"h:mm:ss.ss (e.g. 3.45.67, 1:23:40.00)"
);
addDurationData("NC_DURATION_3", 1, "1234", "00:20:34.00");
addDurationData("NC_DURATION_3", 2, "12:34", "00:12:34.00");
addDurationData("NC_DURATION_3", 3, "12:34:56", "12:34:56.00");
@ -254,7 +270,10 @@ export const genTest = (apiType, dbType) => {
{
// h:mm:ss.sss
it("Duration: h:mm:ss.sss", () => {
addDurationColumn("NC_DURATION_4", "h:mm:ss.sss (e.g. 3.45.678, 1:23:40.000)");
addDurationColumn(
"NC_DURATION_4",
"h:mm:ss.sss (e.g. 3.45.678, 1:23:40.000)"
);
addDurationData("NC_DURATION_4", 1, "1234", "00:20:34.000");
addDurationData("NC_DURATION_4", 2, "12:34", "00:12:34.000");
addDurationData("NC_DURATION_4", 3, "12:34:56", "12:34:56.000");

151
scripts/cypress/integration/common/3f_link_to_another_record.js

@ -6,22 +6,20 @@ export const genTest = (apiType, dbType) => {
if (!isTestSuiteActive(apiType, dbType)) return;
describe(`${apiType.toUpperCase()} api - Link to another record`, () => {
function fetchParentFromLabel(label) {
cy.get("label").contains(label).parents(".ant-row").click();
}
// Insert new row
function addRow(index, cellValue) {
cy.get('.nc-grid-add-new-cell').should('exist').click();
mainPage.getCell('Title', index)
.dblclick().then(($el) => {
cy.wrap($el).find('input')
.clear()
.type(`${cellValue}{enter}`);
cy.get(".nc-grid-add-new-cell").should("exist").click();
mainPage
.getCell("Title", index)
.dblclick()
.then(($el) => {
cy.wrap($el).find("input").clear().type(`${cellValue}{enter}`);
});
mainPage.getCell('Title', index)
.contains(cellValue).should('exist');
mainPage.getCell("Title", index).contains(cellValue).should("exist");
}
// Insert LTAR column
@ -31,8 +29,9 @@ export const genTest = (apiType, dbType) => {
cy.get(".nc-grid tr > th:last .nc-icon").click();
// Column name
cy.getActiveMenu(".nc-dropdown-grid-add-column").find('input.nc-column-name-input', { timeout: 3000 })
.should('exist')
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find("input.nc-column-name-input", { timeout: 3000 })
.should("exist")
.clear()
.type(columnName);
@ -40,30 +39,27 @@ export const genTest = (apiType, dbType) => {
// cy.get(".nc-column-type-input").last()
// .click()
// .type("Link");
cy.getActiveMenu('.nc-dropdown-grid-add-column')
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find(".nc-column-type-input")
.last()
.click()
.type("Link")
cy.getActiveSelection('.nc-dropdown-column-type')
.find('.ant-select-item-option')
.type("Link");
cy.getActiveSelection(".nc-dropdown-column-type")
.find(".ant-select-item-option")
.contains("LinkToAnotherRecord")
.click();
// relation type (hm/ mm)
cy.get('.nc-ltar-relation-type')
.find('.ant-radio')
.eq(relationType==='hm'?0:1)
cy.get(".nc-ltar-relation-type")
.find(".ant-radio")
.eq(relationType === "hm" ? 0 : 1)
.click();
// Foreign table
fetchParentFromLabel("Child table");
cy.get(".nc-ltar-child-table")
.last()
.click()
.type(foreignTable);
cy.getActiveSelection('.nc-dropdown-ltar-child-table')
.find('.ant-select-item-option')
cy.get(".nc-ltar-child-table").last().click().type(foreignTable);
cy.getActiveSelection(".nc-dropdown-ltar-child-table")
.find(".ant-select-item-option")
.contains(foreignTable)
.click();
@ -72,7 +68,7 @@ export const genTest = (apiType, dbType) => {
// .contains("Save")
// .should('exist')
// .click();
cy.getActiveMenu('.nc-dropdown-grid-add-column')
cy.getActiveMenu(".nc-dropdown-grid-add-column")
.find(".ant-btn-primary:visible")
.contains("Save")
.click();
@ -81,16 +77,15 @@ export const genTest = (apiType, dbType) => {
cy.toastWait(`Column created`);
// Verify
cy.get(`th[data-title="${columnName}"]`)
.should("exist");
};
cy.get(`th[data-title="${columnName}"]`).should("exist");
}
// Content verification for LTAR cell
// Validates only 1st chip contents
//
function verifyLtarCell(columnName, index, cellValue) {
cy.get(`:nth-child(${index}) > [data-title="${columnName}"]`)
.find('.chip')
.find(".chip")
.eq(0)
.contains(cellValue)
.should("exist");
@ -100,12 +95,14 @@ export const genTest = (apiType, dbType) => {
//
function ltarUnlink(columnName, index) {
// Click on cell to enable unlink icon
cy.get(`:nth-child(${index}) > [data-title="${columnName}"]`).last()
.click()
cy.get(`:nth-child(${index}) > [data-title="${columnName}"]`)
.last()
.click();
// Click on unlink icon
cy.get(`:nth-child(${index}) > [data-title="${columnName}"]`).last()
.find('.unlink-icon')
cy.get(`:nth-child(${index}) > [data-title="${columnName}"]`)
.last()
.find(".unlink-icon")
.should("exist")
.click();
@ -120,7 +117,7 @@ export const genTest = (apiType, dbType) => {
afterEach(() => {
cy.saveLocalStorage();
})
});
beforeEach(() => {
cy.restoreLocalStorage();
@ -174,7 +171,8 @@ export const genTest = (apiType, dbType) => {
cy.get(".nc-add-new-row-btn").click();
// Title
cy.get(".nc-expand-col-Title").find(".nc-cell > input")
cy.get(".nc-expand-col-Title")
.find(".nc-cell > input")
.should("exist")
.first()
.clear()
@ -186,80 +184,84 @@ export const genTest = (apiType, dbType) => {
//
// BT
cy.get(".nc-expand-col-Sheet1").find(".nc-action-icon")
cy.get(".nc-expand-col-Sheet1")
.find(".nc-action-icon")
.should("exist")
.click({ force: true });
cy.wait(1000);
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card').should('exist')
.eq(0).click();
.find(".ant-card")
.should("exist")
.eq(0)
.click();
// MM
cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click();
cy.wait(1000);
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card').should('exist')
.eq(0).click();
.find(".ant-card")
.should("exist")
.eq(0)
.click();
// HM
cy.get(".nc-expand-col-Link2-1hm")
.find(".ant-btn-primary")
.click();
cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click();
cy.wait(1000);
cy.getActiveModal()
.find('.ant-card').should('exist')
.eq(0).click();
cy.getActiveModal().find(".ant-card").should("exist").eq(0).click();
// Save row
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.click({ force: true });
.should("exist")
.click();
// Toast
cy.toastWait("updated successfully");
// Close modal
cy.get("body").type("{esc}");
})
});
// In cell insert
it("Add HM, BT, MM Link, In cell form", () => {
// Insert row with `Title` field, rest of links are empty
addRow(2, "2b");
// BT
mainPage.getCell("Sheet1", 2)
mainPage
.getCell("Sheet1", 2)
.find(".nc-action-icon")
.click({ force: true });
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card')
.should('exist')
.find(".ant-card")
.should("exist")
.eq(1)
.click();
cy.wait(1000);
// MM
mainPage.getCell("Sheet1 List", 2)
mainPage
.getCell("Sheet1 List", 2)
.find(".nc-action-icon")
.last()
.click({ force: true });
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card')
.should('exist')
.find(".ant-card")
.should("exist")
.eq(1)
.click();
cy.wait(1000);
// HM
mainPage.getCell("Link2-1hm", 2)
mainPage
.getCell("Link2-1hm", 2)
.find(".nc-action-icon")
.last()
.click({ force: true });
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card')
.should('exist')
.find(".ant-card")
.should("exist")
.eq(1)
.click();
});
@ -277,31 +279,36 @@ export const genTest = (apiType, dbType) => {
.click({ force: true });
cy.wait(1000);
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card').should('exist')
.eq(2).click();
.find(".ant-card")
.should("exist")
.eq(2)
.click();
// MM
cy.get(".nc-expand-col-Sheet1.List")
.find(".ant-btn-primary").click();
cy.get(".nc-expand-col-Sheet1.List").find(".ant-btn-primary").click();
cy.wait(1000);
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card').should('exist')
.eq(2).click();
.find(".ant-card")
.should("exist")
.eq(2)
.click();
cy.wait(1000);
// HM
cy.get(".nc-expand-col-Link2-1hm")
.find(".ant-btn-primary").click();
cy.get(".nc-expand-col-Link2-1hm").find(".ant-btn-primary").click();
cy.wait(1000);
cy.getActiveModal(".nc-modal-link-record")
.find('.ant-card').should('exist')
.eq(2).click();
.find(".ant-card")
.should("exist")
.eq(2)
.click();
cy.wait(1000);
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.click({ force: true });
.should("exist")
.click();
// cy.toastWait("updated successfully");
cy.toastWait("No columns to update");
@ -332,7 +339,7 @@ export const genTest = (apiType, dbType) => {
verifyLtarCell("Sheet2", 2, "2b");
verifyLtarCell("Sheet2", 3, "2c");
cy.closeTableTab("Sheet1");
})
});
it("Unlink", () => {
cy.openTableTab("Sheet1", 3);

12
scripts/cypress/integration/common/4f_grid_view_share.js

@ -396,9 +396,17 @@ export const genTest = (apiType, dbType) => {
.first()
.clear({ force: true })
.type("a");
cy.getActiveDrawer().find("button").contains("Save row").click();
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.should("exist")
.click();
cy.toastWait("updated successfully");
cy.getActiveDrawer().find("button").contains("Cancel").click();
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Cancel")
.should("exist")
.click();
// add column
mainPage.addColumn("dummy", "Country");

3
scripts/cypress/integration/common/8a_webhook.js

@ -205,7 +205,8 @@ function updateRow(index, cellValue) {
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.click({ force: true });
.should("exist")
.click();
// partial toast message
cy.toastWait("updated successfully");

168
scripts/cypress/integration/spec/roleValidation.spec.js

@ -9,14 +9,15 @@ import { roles } from "../../support/page_objects/projectConstants";
export function _advSettings(roleType, mode) {
cy.log(roleType, mode);
if(mode === 'baseShare') {
if (mode === "baseShare") {
// open modal
cy.get('.nc-project-menu').should('exist').click()
cy.getActiveMenu(".nc-dropdown-project-menu").find(`[data-menu-id="language"]`).should('exist')
cy.get(".nc-project-menu").should("exist").click();
cy.getActiveMenu(".nc-dropdown-project-menu")
.find(`[data-menu-id="language"]`)
.should("exist");
// click again to close modal
cy.get('.nc-project-menu').should('exist').click()
cy.get(".nc-project-menu").should("exist").click();
return;
}
@ -24,27 +25,34 @@ export function _advSettings(roleType, mode) {
true == roles[roleType].validations.advSettings ? "exist" : "not.exist";
// cy.get(".nc-team-settings").should(validationString);
cy.get('.nc-project-menu').should('exist').click()
cy.getActiveMenu(".nc-dropdown-project-menu").find(`[data-menu-id="preview-as"]`).should(validationString)
cy.getActiveMenu(".nc-dropdown-project-menu").find(`[data-menu-id="teamAndSettings"]:visible`).should(validationString)
cy.get(".nc-project-menu").should("exist").click();
cy.getActiveMenu(".nc-dropdown-project-menu")
.find(`[data-menu-id="preview-as"]`)
.should(validationString);
cy.getActiveMenu(".nc-dropdown-project-menu")
.find(`[data-menu-id="teamAndSettings"]:visible`)
.should(validationString);
if (true === roles[roleType].validations.advSettings) {
cy.getActiveMenu(".nc-dropdown-project-menu").find(`[data-menu-id="teamAndSettings"]:visible`).should(validationString).click()
cy.getActiveMenu(".nc-dropdown-project-menu")
.find(`[data-menu-id="teamAndSettings"]:visible`)
.should(validationString)
.click();
cy.get(`[data-menu-id="teamAndAuth"]`).should('exist')
cy.get(`[data-menu-id="appStore"]`).should('exist')
cy.get(`[data-menu-id="metaData"]`).should('exist')
cy.get(`[data-menu-id="audit"]`).should('exist')
cy.get(`[data-menu-id="teamAndAuth"]`).should("exist");
cy.get(`[data-menu-id="appStore"]`).should("exist");
cy.get(`[data-menu-id="metaData"]`).should("exist");
cy.get(`[data-menu-id="audit"]`).should("exist");
settingsPage.closeMenu()
settingsPage.closeMenu();
} else {
cy.get('.nc-project-menu').should('exist').click()
cy.get(".nc-project-menu").should("exist").click();
}
// float menu in preview mode
if ("preview" === mode) {
cy.get(".nc-floating-preview-btn").should("exist");
cy.get('.nc-floating-preview-btn')
cy.get(".nc-floating-preview-btn")
.find(`[type="radio"][value="${roles[roleType].name}"]`)
.should("be.checked");
}
@ -67,8 +75,14 @@ export function _editSchema(roleType, mode) {
cy.get(".ant-dropdown-content:visible").should(validationString);
if (validationString === "exist") {
cy.getActiveMenu(".nc-dropdown-tree-view-context-menu").find('[role="menuitem"]').contains("Delete").should("exist");
cy.getActiveMenu(".nc-dropdown-tree-view-context-menu").find('[role="menuitem"]').contains("Rename").should("exist");
cy.getActiveMenu(".nc-dropdown-tree-view-context-menu")
.find('[role="menuitem"]')
.contains("Delete")
.should("exist");
cy.getActiveMenu(".nc-dropdown-tree-view-context-menu")
.find('[role="menuitem"]')
.contains("Rename")
.should("exist");
// click on a cell to close table context menu
mainPage.getCell(columnName, 3).click();
@ -79,15 +93,23 @@ export function _editSchema(roleType, mode) {
cy.get(".nc-column-add").should(validationString);
// update column (edit/ delete menu)
cy.get('.nc-ui-dt-dropdown').should(validationString)
cy.get(".nc-ui-dt-dropdown").should(validationString);
if (validationString === "exist") {
cy.get('.nc-import-menu').should('exist').click();
cy.getActiveMenu(".nc-dropdown-import-menu").should('exist')
cy.getActiveMenu(".nc-dropdown-import-menu").find('.ant-dropdown-menu-item').contains('Airtable')
cy.getActiveMenu(".nc-dropdown-import-menu").find('.ant-dropdown-menu-item').contains('CSV file')
cy.getActiveMenu(".nc-dropdown-import-menu").find('.ant-dropdown-menu-item').contains('JSON file')
cy.getActiveMenu(".nc-dropdown-import-menu").find('.ant-dropdown-menu-item').contains('Microsoft Excel')
cy.get(".nc-import-menu").should("exist").click();
cy.getActiveMenu(".nc-dropdown-import-menu").should("exist");
cy.getActiveMenu(".nc-dropdown-import-menu")
.find(".ant-dropdown-menu-item")
.contains("Airtable");
cy.getActiveMenu(".nc-dropdown-import-menu")
.find(".ant-dropdown-menu-item")
.contains("CSV file");
cy.getActiveMenu(".nc-dropdown-import-menu")
.find(".ant-dropdown-menu-item")
.contains("JSON file");
cy.getActiveMenu(".nc-dropdown-import-menu")
.find(".ant-dropdown-menu-item")
.contains("Microsoft Excel");
}
}
@ -99,11 +121,11 @@ export function _editData(roleType, mode) {
cy.openTableTab(columnName, 25);
// add row button
cy.get('.nc-add-new-row-btn:visible').should(validationString);
cy.get(".nc-add-new-row-btn:visible").should(validationString);
// add button at bottom of page
mainPage.getCell(columnName, 25).scrollIntoView();
cy.get('.nc-grid-add-new-cell:visible').should(validationString);
cy.get(".nc-grid-add-new-cell:visible").should(validationString);
// update row option (right click)
//
@ -114,10 +136,18 @@ export function _editData(roleType, mode) {
if (validationString === "exist") {
// right click options will exist (only for 'exist' case)
//
cy.getActiveMenu(".nc-dropdown-grid-context-menu").contains("Insert New Row").should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu").contains("Clear cell").should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu").contains("Delete Row").should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu").contains("Delete Selected Rows").should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
.contains("Insert New Row")
.should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
.contains("Clear cell")
.should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
.contains("Delete Row")
.should(validationString);
cy.getActiveMenu(".nc-dropdown-grid-context-menu")
.contains("Delete Selected Rows")
.should(validationString);
// cy.get("body").type("{esc}");
mainPage.getCell("City", 13).click();
@ -126,32 +156,38 @@ export function _editData(roleType, mode) {
//
mainPage
.getRow(1)
.find('.nc-row-no').should('exist')
.find(".nc-row-no")
.should("exist")
.eq(0)
.trigger('mouseover', { force: true })
cy.get(".nc-row-expand")
.trigger("mouseover", { force: true });
cy.get(".nc-row-expand").should("exist").eq(10).click({ force: true });
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Save row")
.should("exist");
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Cancel")
.should("exist")
.eq(10)
.click({ force: true });
cy.getActiveDrawer().find("button").contains("Save row").should("exist");
cy.getActiveDrawer().find("button").contains("Cancel").should("exist").click();
.click();
} else {
// update cell contents option using row expander should be disabled
//
cy.get(".nc-row-expand")
cy.get(".nc-row-expand").should("exist").eq(10).click({ force: true });
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button:disabled")
.contains("Save row")
.should("exist");
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Cancel")
.should("exist")
.eq(10)
.click({ force: true });
cy.getActiveDrawer().find("button:disabled").contains("Save row").should("exist");
cy.getActiveDrawer().find("button").contains("Cancel").should("exist").click();
.click();
}
// double click cell entries to edit
//
mainPage.getCell("City", 5)
.dblclick()
.find("input")
.should(validationString);
mainPage.getCell("City", 5).dblclick().find("input").should(validationString);
}
// read &/ update comment
@ -171,10 +207,7 @@ export function _editComment(roleType, mode) {
// click on comment icon & type comment
//
cy.get(".nc-row-expand")
.should("exist")
.eq(10)
.click({force:true});
cy.get(".nc-row-expand").should("exist").eq(10).click({ force: true });
// Expected response:
// Viewer: Not able to see comment option
@ -184,23 +217,28 @@ export function _editComment(roleType, mode) {
cy.wait(3000);
if ("viewer" === roleType) {
cy.getActiveDrawer()
.should('exist')
cy.getActiveDrawer(".nc-drawer-expanded-form")
.should("exist")
.find(".nc-toggle-comments")
.should("not.exist");
} else {
cy.getActiveDrawer()
.should('exist')
cy.getActiveDrawer(".nc-drawer-expanded-form")
.should("exist")
.find(".nc-toggle-comments")
.should("exist")
.click();
cy.getActiveDrawer().find(".nc-comment-box").should('exist').type("Comment-1{enter}");
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find(".nc-comment-box")
.should("exist")
.type("Comment-1{enter}");
// cy.toastWait('Comment added successfully')
cy.getActiveDrawer().find(".nc-toggle-comments").click();
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find(".nc-toggle-comments")
.click();
}
cy.getActiveDrawer()
cy.getActiveDrawer(".nc-drawer-expanded-form")
.find("button")
.contains("Cancel")
.should("exist")
@ -228,12 +266,12 @@ export function _viewMenu(roleType, mode) {
// Download / Upload CSV
menuWithSubmenuCount = 2;
// Get API Snippet
menuWithoutSubmenuCount = 1
if(mode === 'baseShare') menuWithoutSubmenuCount = 0
menuWithoutSubmenuCount = 1;
if (mode === "baseShare") menuWithoutSubmenuCount = 0;
} else if (roleType === "commenter" || roleType === "viewer") {
// Download CSV & Download excel
menuWithSubmenuCount = 0;
menuWithoutSubmenuCount = 2
menuWithoutSubmenuCount = 2;
}
// view list field (default GRID view)
@ -249,10 +287,10 @@ export function _viewMenu(roleType, mode) {
// actions menu (more), only download csv should be visible for non-previlaged users
cy.get(".nc-actions-menu-btn").click();
cy.getActiveMenu(".nc-dropdown-actions-menu")
.find('.ant-dropdown-menu-submenu:visible')
.find(".ant-dropdown-menu-submenu:visible")
.should("have.length", menuWithSubmenuCount);
cy.getActiveMenu(".nc-dropdown-actions-menu")
.find('.ant-dropdown-menu-item:visible')
.find(".ant-dropdown-menu-item:visible")
.should("have.length", menuWithoutSubmenuCount);
// click again to close menu
cy.get(".nc-actions-menu-btn").click();
@ -289,6 +327,6 @@ export function enableTableAccess(tbl, role) {
export function _accessControl(roleType, previewMode) {
let validationString = roleType === "creator" ? "exist" : "not.exist";
cy.get(`.nc-project-tree-tbl-Language`).should(validationString)
cy.get(`.nc-project-tree-tbl-CustomerList`).should(validationString)
cy.get(`.nc-project-tree-tbl-Language`).should(validationString);
cy.get(`.nc-project-tree-tbl-CustomerList`).should(validationString);
}

1
scripts/cypress/integration/test/restTableOps.js

@ -1,4 +1,3 @@
let t01 = require("../common/00_pre_configurations");
let t1a = require("../common/1a_table_operations");
let t1b = require("../common/1b_table_column_operations");

Loading…
Cancel
Save