context("Create a Table", () => { before(() => { cy.login() cy.createTestApp() }) it("should create a new Table", () => { cy.createTable("dog") cy.wait(1000) // Check if Table exists cy.get(".table-title h1").should("have.text", "dog") }) it("adds a new column to the table", () => { cy.addColumn("dog", "name", "Text") cy.contains("name").should("be.visible") }) it("creates a row in the table", () => { cy.addRow(["Rover"]) cy.contains("Rover").should("be.visible") }) it("updates a column on the table", () => { cy.get(".title").click() cy.get(".spectrum-Table-editIcon > use").click() cy.get("input").eq(1).type("updated", { force: true }) // Unset table display column cy.get(".spectrum-Switch-input").eq(1).click() cy.contains("Save Column").click() cy.contains("nameupdated ").should("contain", "nameupdated") }) it("edits a row", () => { cy.contains("button", "Edit").click({ force: true }) cy.wait(1000) cy.get(".spectrum-Modal input").clear() cy.get(".spectrum-Modal input").type("Updated") cy.contains("Save").click() cy.contains("Updated").should("have.text", "Updated") }) it("deletes a row", () => { cy.get(".spectrum-Checkbox-input").check({ force: true }) cy.contains("Delete 1 row(s)").click() cy.get(".spectrum-Modal").contains("Delete").click() cy.contains("RoverUpdated").should("not.exist") }) it("Adds 15 rows and checks pagination", () => { // 10 rows per page, 15 rows should create 2 pages within table const totalRows = 16 for (let i = 1; i < totalRows; i++){ cy.addRow([i]) } cy.wait(1000) cy.get(".spectrum-Pagination").within(() => { cy.get(".spectrum-ActionButton").eq(1).click() }) cy.get(".spectrum-Pagination").within(() => { cy.get(".spectrum-Body--secondary").contains("Page 2") }) }) it("Deletes rows and checks pagination", () => { // Delete rows, removing second page of rows from table const deleteRows = 5 cy.get(".spectrum-Checkbox-input").check({ force: true }) cy.get(".spectrum-Table-body") cy.contains("Delete 5 row(s)").click() cy.get(".spectrum-Modal").contains("Delete").click() cy.wait(1000) // Confirm table only has one page cy.get(".spectrum-Pagination").within(() => { cy.get(".spectrum-ActionButton").eq(1).should('not.be.enabled') }) }) it("deletes a column", () => { const columnName = "nameupdated" cy.get(".title").click() cy.get(".spectrum-Table-editIcon > use").click() cy.contains("Delete").click() cy.get('[data-cy="delete-column-confirm"]').type(columnName) cy.contains("Delete Column").click() cy.contains("nameupdated").should("not.exist") }) it("deletes a table", () => { cy.get(".nav-item") .contains("dog") .parents(".nav-item") .first() .within(() => { cy.get(".actions .spectrum-Icon").click({ force: true }) }) cy.get(".spectrum-Menu > :nth-child(2)").click() cy.get('[data-cy="delete-table-confirm"]').type("dog") cy.contains("Delete Table").click() cy.contains("dog").should("not.exist") }) })