import filterTests from "../../support/filterTests" const interact = require('../../support/interact') filterTests(["smoke", "all"], () => { context("User Settings Menu", () => { before(() => { cy.login() }) it("should update user information via user settings menu", () => { const fname = "test" const lname = "user" cy.visit(`${Cypress.config().baseUrl}/builder`) cy.updateUserInformation(fname, lname) // Go to user info and confirm name update cy.contains("Users").click() cy.contains("test@test.com").click() cy.get(interact.FIELD, { timeout: 1000 }).eq(2).within(() => { cy.get(interact.SPECTRUM_TEXTFIELD_INPUT).should('have.value', fname) }) cy.get(interact.FIELD).eq(3).within(() => { cy.get(interact.SPECTRUM_TEXTFIELD_INPUT).should('have.value', lname) }) }) it("should allow copying of the users API key", () => { cy.get(".user-dropdown .avatar > .icon", { timeout: 2000 }).click({ force: true }) cy.get(interact.SPECTRUM_MENU_ITEM).contains("View API key").click({ force: true }) cy.get(interact.SPECTRUM_DIALOG_CONTENT).within(() => { cy.get(interact.SPECTRUM_ICON).click({force: true}) }) // There may be timing issues with this on the smoke build cy.wait(500) cy.get(".spectrum-Toast-content") .contains("URL copied to clipboard") .should("be.visible") }) it("should allow API key regeneration", () => { // Get initial API key value cy.get(interact.SPECTRUM_DIALOG_CONTENT) .find(interact.SPECTRUM_TEXTFIELD_INPUT).invoke('val').as('keyOne') // Click re-generate key button cy.get("button").contains("Re-generate key").click({ force: true }) // Verify API key was changed cy.get(interact.SPECTRUM_DIALOG_CONTENT).within(() => { cy.get('@keyOne').then((keyOne) => { cy.get(interact.SPECTRUM_TEXTFIELD_INPUT).invoke('val').should('not.eq', keyOne) }) }) cy.closeModal() }) it("should update password", () => { // Access Update password modal cy.get(".user-dropdown .avatar > .icon", { timeout: 2000 }).click({ force: true }) cy.get(interact.SPECTRUM_MENU_ITEM).contains("Update password").click({ force: true }) // Enter new password and update cy.get(interact.SPECTRUM_DIALOG_GRID).within(() => { for (let i = 0; i < 2; i++) { // password set to 'newpwd' cy.get(interact.SPECTRUM_TEXTFIELD_INPUT).eq(i).type("newpwd") } cy.get("button").contains("Update password").click({ force: true }) }) // Logout & in with new password cy.logOut() cy.login("test@test.com", "newpwd") }) it("should open and close developer mode", () => { cy.get(".user-dropdown .avatar > .icon", { timeout: 2000 }).click({ force: true }) // Close developer mode & verify cy.get(interact.SPECTRUM_MENU_ITEM).contains("Close developer mode").click({ force: true }) cy.get(interact.SPECTRUM_SIDENAV).should('not.exist') // No config sections cy.get(interact.CREATE_APP_BUTTON).should('not.exist') // No create app button cy.get(".app").should('not.exist') // At least one app should be available // Open developer mode & verify cy.get(".avatar > .icon").click({ force: true }) cy.get(interact.SPECTRUM_MENU_ITEM).contains("Open developer mode").click({ force: true }) cy.get(interact.SPECTRUM_SIDENAV).should('exist') // config sections available cy.get(interact.CREATE_APP_BUTTON).should('exist') // create app button available cy.get(interact.APP_TABLE).should('exist') // App table available }) after(() => { // Change password back to original value cy.get(".user-dropdown .avatar > .icon", { timeout: 2000 }).click({ force: true }) cy.get(interact.SPECTRUM_MENU_ITEM).contains("Update password").click({ force: true }) cy.get(interact.SPECTRUM_DIALOG_GRID).within(() => { for (let i = 0; i < 2; i++) { cy.get(interact.SPECTRUM_TEXTFIELD_INPUT).eq(i).type("test") } cy.get("button").contains("Update password").click({ force: true }) }) // Remove users name cy.updateUserInformation() }) }) })