From f185836fd49bbcdf539d3c6a7fd708af42836c0f Mon Sep 17 00:00:00 2001 From: Eva Date: Tue, 25 Jan 2022 16:56:46 +0100 Subject: [PATCH] :construction_worker: Add e2e test to profile area --- frontend/cypress/fixtures/test-image-jpg.jpg | Bin 0 -> 34208 bytes frontend/cypress/fixtures/test-image-png.png | Bin 0 -> 116424 bytes .../01-auth/create-account.spec.js | 18 +- ...-account.specs.js => demo-account.spec.js} | 11 +- .../cypress/integration/01-auth/login.spec.js | 15 +- .../integration/01-auth/recover.spec.js | 25 ++- .../integration/02-onboarding/slides.spec.js | 105 +++++------- .../integration/03-projects/projects.spec.js | 2 +- .../integration/04-profile/profile.spec.js | 155 ++++++++++++++++++ .../integration/09-draw/draw-shapes.spec.js | 104 +++++++----- frontend/cypress/support/commands.js | 14 +- frontend/cypress/support/utils.js | 12 ++ frontend/package.json | 1 + frontend/src/app/main/ui/auth/login.cljs | 17 +- .../app/main/ui/auth/recovery_request.cljs | 6 +- frontend/src/app/main/ui/auth/register.cljs | 11 +- .../app/main/ui/components/file_uploader.cljs | 5 +- .../src/app/main/ui/components/forms.cljs | 13 +- .../src/app/main/ui/dashboard/sidebar.cljs | 15 +- frontend/src/app/main/ui/messages.cljs | 10 +- frontend/src/app/main/ui/onboarding.cljs | 32 ++-- .../app/main/ui/onboarding/team_choice.cljs | 5 +- .../src/app/main/ui/onboarding/templates.cljs | 3 +- frontend/src/app/main/ui/settings.cljs | 2 +- .../app/main/ui/settings/change_email.cljs | 5 +- .../app/main/ui/settings/delete_account.cljs | 3 +- .../src/app/main/ui/settings/options.cljs | 12 +- .../src/app/main/ui/settings/password.cljs | 3 +- .../src/app/main/ui/settings/profile.cljs | 6 +- .../src/app/main/ui/settings/sidebar.cljs | 3 +- frontend/yarn.lock | 5 + 31 files changed, 412 insertions(+), 206 deletions(-) create mode 100644 frontend/cypress/fixtures/test-image-jpg.jpg create mode 100644 frontend/cypress/fixtures/test-image-png.png rename frontend/cypress/integration/01-auth/{demo-account.specs.js => demo-account.spec.js} (58%) create mode 100644 frontend/cypress/integration/04-profile/profile.spec.js create mode 100644 frontend/cypress/support/utils.js diff --git a/frontend/cypress/fixtures/test-image-jpg.jpg b/frontend/cypress/fixtures/test-image-jpg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..868bdfdf982181669597d01625802069532c3615 GIT binary patch literal 34208 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 S9=Q>a1Kv^oiA5y;&iyZ|BS^{s literal 0 HcmV?d00001 diff --git a/frontend/cypress/fixtures/test-image-png.png b/frontend/cypress/fixtures/test-image-png.png new file mode 100644 index 0000000000000000000000000000000000000000..414556939645ffb11fcffbf94a800364f8cd2627 GIT binary patch literal 116424 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

F!Ri?g`AAF`Yp}hY}gv8ATANM`2rW8tbZ3 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

Wft$ml3|kqbIR9`M5FQB*6+R6gmJv@FmW-Yk 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%0DTE3hD#@jxQG>$* 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 { - let validUser + let validUser; beforeEach(() => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { validUser = user; }); cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Create an account").click() + cy.getBySel("register-submit").click(); }); it("displays the account creation form", () => { - cy.get("input[type=submit]").contains("Create an account").should("exist"); + cy.getBySel("register-form-submit").should("exist"); }); it("create an account of an existent email fails", () => { cy.get("#email").type(validUser.email); cy.get("#password").type("anewpassword"); - cy.get("input[type=submit]").contains("Create an account").click(); - cy.get(".error").should("contain", "Email already used") + cy.getBySel("register-form-submit").click(); + cy.getBySel("email-input-error").should("exist"); }); - it("can go back", () => { - cy.get("a").contains("Login here").click() - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("login-here-link").click(); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); }); - diff --git a/frontend/cypress/integration/01-auth/demo-account.specs.js b/frontend/cypress/integration/01-auth/demo-account.spec.js similarity index 58% rename from frontend/cypress/integration/01-auth/demo-account.specs.js rename to frontend/cypress/integration/01-auth/demo-account.spec.js index 89c177a20c..075ce0d221 100644 --- a/frontend/cypress/integration/01-auth/demo-account.specs.js +++ b/frontend/cypress/integration/01-auth/demo-account.spec.js @@ -10,13 +10,12 @@ describe("demo account", () => { beforeEach(() => { - cy.visit("http://localhost:3449/#/auth/login"); + cy.visit("http://localhost:3449/#/auth/login"); }); - it.only("create demo account", () => { - cy.get("a").contains("Create demo account").click() - cy.get(".profile").contains("Demo User") + it("create demo account", () => { + cy.getBySel("demo-account-link").should("exist"); + cy.getBySel("demo-account-link").click(); + cy.get(".profile").contains("Demo User"); }); - }); - diff --git a/frontend/cypress/integration/01-auth/login.spec.js b/frontend/cypress/integration/01-auth/login.spec.js index 91558b2156..34decb0e78 100644 --- a/frontend/cypress/integration/01-auth/login.spec.js +++ b/frontend/cypress/integration/01-auth/login.spec.js @@ -14,7 +14,7 @@ describe("login", () => { }); it("displays the login form", () => { - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); @@ -22,20 +22,17 @@ describe("login", () => { it("can't login with an invalid user", () => { cy.get("#email").type("bad@mail.com"); cy.get("#password").type("badpassword"); - cy.get("input[type=submit]").first().click(); - cy.get(".warning") - .should("exist") - .should("contain", "Username or password seems to be wrong."); + cy.getBySel("login-submit").click(); + cy.getBySel("login-banner").should("exist"); }); it("can login with a valid user", () => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { cy.get("#email").type(user.email); cy.get("#password").type(user.password); }); - - cy.get("input[type=submit]").first().click(); + + cy.getBySel("login-submit").click(); cy.get(".dashboard-layout").should("exist"); }); }); - diff --git a/frontend/cypress/integration/01-auth/recover.spec.js b/frontend/cypress/integration/01-auth/recover.spec.js index db34a858c4..91488250f0 100644 --- a/frontend/cypress/integration/01-auth/recover.spec.js +++ b/frontend/cypress/integration/01-auth/recover.spec.js @@ -11,36 +11,31 @@ describe("recover password", () => { beforeEach(() => { cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Forgot password?").click() + cy.getBySel("forgot-password").click(); }); it("displays the recover form", () => { - cy.get("input[type=submit]").contains("Recover Password").should("exist"); + cy.getBySel("recovery-resquest-submit").should("exist"); }); it("recover password with wrong mail works", () => { cy.get("#email").type("bad@mail.com"); - cy.get("input[type=submit]").contains("Recover Password").click(); - cy.get(".info") - .should("exist") - .should("contain", "Password recovery link sent to your inbox."); + cy.getBySel("recovery-resquest-submit").click(); + cy.get(".info").should("exist"); }); it("recover password with good mail works", () => { - cy.fixture('validuser.json').then((user) => { + cy.fixture("validuser.json").then((user) => { cy.get("#email").type(user.email); - }); - cy.get("input[type=submit]").contains("Recover Password").click(); - cy.get(".info") - .should("exist") - .should("contain", "Password recovery link sent to your inbox."); + }); + cy.getBySel("recovery-resquest-submit").click(); + cy.get(".info").should("exist"); }); it("can go back", () => { - cy.get("a").contains("Go back").click() - cy.contains("Great to see you again!").should("exist"); + cy.getBySel("go-back-link").click(); + cy.getBySel("login-title").should("exist"); cy.get("#email").should("exist"); cy.get("#password").should("exist"); }); }); - diff --git a/frontend/cypress/integration/02-onboarding/slides.spec.js b/frontend/cypress/integration/02-onboarding/slides.spec.js index 6068e3e5e0..79dd6d275b 100644 --- a/frontend/cypress/integration/02-onboarding/slides.spec.js +++ b/frontend/cypress/integration/02-onboarding/slides.spec.js @@ -6,75 +6,50 @@ * Copyright (c) UXBOX Labs SL */ - "use strict"; +"use strict"; +import { + checkOnboardingSlide, + goToSlideByNumber, +} from "../../support/utils.js"; - describe("onboarding slides", () => { - beforeEach(() => { +describe("onboarding slides", () => { + beforeEach(() => { cy.demoLogin(); - - }); - - it("go trough all the onboarding slides", () => { - cy.get(".modal-right").should("contain", "Welcome to Penpot"); - cy.get(".modal-right button").should("contain", "Continue"); - cy.get(".modal-right button").click(); - - cy.get(".onboarding").should("contain", "Open Source Contributor?") - cy.get(".onboarding .skip").should("not.exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Design libraries, styles and components") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - - cy.get(".onboarding").should("contain", "Get feedback, present and share your work") - cy.get(".onboarding .skip").should("exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Continue"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "One shared source of truth") - cy.get(".onboarding .skip").should("not.exist"); - cy.get(".onboarding .step-dots").should("exist"); - cy.get(".onboarding button").should("contain", "Start"); - cy.get(".onboarding button").click(); - - cy.get(".onboarding").should("contain", "Welcome to Penpot") - }); - - it("go to specific onboarding slides", () => { - cy.get(".modal-right button").click(); - cy.get(".onboarding button").click(); - - cy.get(".step-dots li:nth-child(4)").click(); - cy.get(".onboarding").should("contain", "One shared source of truth") - cy.get(".step-dots li:nth-child(3)").click(); - cy.get(".onboarding").should("contain", "Get feedback, present and share your work") - cy.get(".step-dots li:nth-child(2)").click(); - cy.get(".onboarding").should("contain", "Bring your designs to life with interactions") - cy.get(".step-dots li:nth-child(1)").click(); - cy.get(".onboarding").should("contain", "Design libraries, styles and components") - }); - it("skip onboarding slides", () => { - cy.get(".modal-right button").click(); - cy.get(".onboarding button").click(); - cy.get(".onboarding .skip").click(); + it("go trough all the onboarding slides", () => { + cy.getBySel("onboarding-welcome").should("exist"); + cy.getBySel("onboarding-next-btn").should("exist"); + cy.getBySel("onboarding-next-btn").click(); - cy.get(".onboarding").should("contain", "Welcome to Penpot") + cy.getBySel("opsource-next-btn").should("exist"); + cy.getBySel("skip-btn").should("not.exist"); + cy.getBySel("opsource-next-btn").click(); + + var genArr = Array.from(Array(3).keys()); + cy.wrap(genArr).each((index) => { + checkOnboardingSlide(index, true); + }); + checkOnboardingSlide("3", false); + + cy.getBySel("onboarding-welcome-title").should("exist"); }); - }); - - \ No newline at end of file + it("go to specific onboarding slides", () => { + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel(`opsource-next-btn`).click(); + + var genArr = Array.from(Array(4).keys()); + cy.wrap(genArr).each((index) => { + goToSlideByNumber(4 - index); + }); + }); + + it("skip onboarding slides", () => { + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel("opsource-next-btn").click(); + cy.getBySel("skip-btn").click(); + cy.getBySel("fly-solo-op").click(); + cy.getBySel("onboarding-welcome-title").should("exist"); + }); +}); diff --git a/frontend/cypress/integration/03-projects/projects.spec.js b/frontend/cypress/integration/03-projects/projects.spec.js index b4e58f8236..97743c085c 100644 --- a/frontend/cypress/integration/03-projects/projects.spec.js +++ b/frontend/cypress/integration/03-projects/projects.spec.js @@ -17,7 +17,7 @@ }); it("displays the projects page", () => { - cy.get(".dashboard-title").should("contain", "Projects"); + cy.get(".dashboard-title").should("exist"); }); }); diff --git a/frontend/cypress/integration/04-profile/profile.spec.js b/frontend/cypress/integration/04-profile/profile.spec.js new file mode 100644 index 0000000000..5079f6031d --- /dev/null +++ b/frontend/cypress/integration/04-profile/profile.spec.js @@ -0,0 +1,155 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * Copyright (c) UXBOX Labs SL + */ +"use strict"; + +describe("profile", () => { + beforeEach(() => { + cy.fixture("validuser.json").then((user) => { + cy.login(user.email, user.password); + }); + }); + + it("open profile section", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").should("exist"); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("account-title").should("exist"); + }); + + it("change profile name", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get("#fullname").should("exist"); + cy.get("#fullname").clear().type("New name").type("{enter}"); + cy.get(".banner.success").should("exist"); + }); + + it("change profile image with png", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("profile-image-input").should("exist"); + + cy.get(".profile img").then((oldImg) => { + cy.getBySel("profile-image-input").attachFile("test-image-png.png"); + cy.get(".profile img") + .invoke("attr", "src") + .should("not.eq", oldImg[0].src); + }); + }); + + it("change profile image with jpg", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("profile-image-input").should("exist"); + + cy.get(".profile img").then((oldImg) => { + cy.getBySel("profile-image-input").attachFile("test-image-jpg.jpg"); + cy.get(".profile img") + .invoke("attr", "src") + .should("not.eq", oldImg[0].src); + }); + }); + + it("change profile email", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get(".change-email").should("exist"); + cy.get(".change-email").click(); + cy.getBySel("change-email-title").should("exist"); + cy.fixture("validuser.json").then((user) => { + cy.get("#email-1").type(user.email); + cy.get("#email-2").type(user.email); + }); + cy.getBySel("change-email-submit").click(); + cy.get(".banner.info").should("exist"); + }); + + it("type wrong email while trying to update should throw an error", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.get(".change-email").click(); + cy.fixture("validuser.json").then((user) => { + cy.get("#email-1").type(user.email); + }); + cy.get("#email-2").type("bad@email.com"); + cy.getBySel("change-email-submit").click(); + cy.get(".error").should("exist"); + }); + + it("open password section", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.get(".password-form").should("exist"); + }); + + it("type old password wrong should throw an error", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.get("#password-old").type("badpassword"); + cy.get("#password-1").type("pretty-new-password"); + cy.get("#password-2").type("pretty-new-password"); + cy.getBySel("submit-password").click(); + cy.get(".error").should("exist"); + }); + + it("type same old password should work", () => { + cy.get(".profile").click(); + cy.getBySel("password-profile-opt").click(); + cy.fixture("validuser.json").then((user) => { + cy.get("#password-old").type(user.password); + cy.get("#password-1").type(user.password); + cy.get("#password-2").type(user.password); + }); + cy.getBySel("submit-password").click(); + cy.get(".banner.success").should("exist"); + }); + + it("open settings section", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("settings-profile").should("exist"); + }); + + it("set lang to Spanish and back to english", () => { + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("settings-profile").click(); + cy.getBySel("setting-lang").should("exist"); + cy.getBySel("setting-lang").select("es"); + cy.getBySel("submit-lang-change").should("exist"); + cy.getBySel("submit-lang-change").click(); + cy.contains("Tu cuenta").should("exist"); + cy.getBySel("setting-lang").select("en"); + cy.getBySel("submit-lang-change").click(); + cy.contains("Your account").should("exist"); + }); + + it("log out from app", () => { + cy.get(".profile").click(); + cy.getBySel("logout-profile-opt").should("exist"); + cy.getBySel("logout-profile-opt").click(); + cy.getBySel("login-title").should("exist"); + }); +}); + +describe("remove account", () => { + it("create demo account and delete it", () => { + cy.visit("http://localhost:3449/#/auth/login"); + cy.getBySel("demo-account-link").click(); + cy.getBySel("onboarding-next-btn").click(); + cy.getBySel("opsource-next-btn").click(); + cy.getBySel("skip-btn").click(); + cy.getBySel("fly-solo-op").click(); + cy.getBySel("close-templates-btn").click(); + cy.get(".profile").click(); + cy.getBySel("profile-profile-opt").click(); + cy.getBySel("remove-acount-btn").click(); + cy.getBySel("delete-account-btn").click(); + cy.getBySel("login-title").should("exist"); + }); +}); diff --git a/frontend/cypress/integration/09-draw/draw-shapes.spec.js b/frontend/cypress/integration/09-draw/draw-shapes.spec.js index d1fd9ec5aa..c9ab4784ff 100644 --- a/frontend/cypress/integration/09-draw/draw-shapes.spec.js +++ b/frontend/cypress/integration/09-draw/draw-shapes.spec.js @@ -6,64 +6,88 @@ * Copyright (c) UXBOX Labs SL */ - "use strict"; +"use strict"; - describe("draw shapes", () => { - beforeEach(() => { - cy.fixture('validuser.json').then((user) => { - cy.login(user.email, user.password) - cy.get(".project-th").first().dblclick() - cy.clearViewport(); +describe("draw shapes", () => { + beforeEach(() => { + cy.fixture("validuser.json").then((user) => { + cy.login(user.email, user.password); + cy.get(".project-th").first().dblclick(); + cy.clearViewport(); }); - }); - - it("draw an artboard", () => { - cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Artboard (A)']").click() - cy.drawInViewport(300, 300, 400, 450) - cy.get(".viewport-controls rect").first().as("artboard"); - cy.get("@artboard").should("exist"); - cy.get("@artboard").invoke('attr', 'width').should('eq', '100') - cy.get("@artboard").invoke('attr', 'height').should('eq', '150') - }); + }); - it("draw a square", () => { + it("draw an artboard", () => { cy.get(".viewport-controls rect").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click() - cy.drawInViewport(300, 300, 400, 450) + cy.get(".left-toolbar-options li[alt='Artboard (A)']").click(); + cy.drawInViewport(300, 300, 400, 450); + cy.get(".viewport-controls rect").first().as("artboard"); + cy.get("@artboard").should("exist"); + cy.get("@artboard").invoke("attr", "width").should("eq", "100"); + cy.get("@artboard").invoke("attr", "height").should("eq", "150"); + }); + + it("draw a square", () => { + cy.get(".viewport-controls rect").should("not.exist"); + cy.get(".left-toolbar-options li[alt='Rectangle (R)']").click(); + cy.drawInViewport(300, 300, 400, 450); cy.get(".viewport-controls rect").should("exist"); - cy.get(".viewport-controls rect").invoke('attr', 'width').should('eq', '100') - cy.get(".viewport-controls rect").invoke('attr', 'height').should('eq', '150') + cy.get(".viewport-controls rect") + .invoke("attr", "width") + .should("eq", "100"); + cy.get(".viewport-controls rect") + .invoke("attr", "height") + .should("eq", "150"); }); it("draw an ellipse", () => { cy.get(".viewport-controls ellipse").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click() - cy.drawInViewport(300, 300, 400, 450) - cy.get(".viewport-controls ellipse").as("ellipse") + cy.get(".left-toolbar-options li[alt='Ellipse (E)']").click(); + cy.drawInViewport(300, 300, 400, 450); + cy.get(".viewport-controls ellipse").as("ellipse"); cy.get("@ellipse").should("exist"); - cy.get("@ellipse").invoke('attr', 'rx').should('eq', '50') - cy.get("@ellipse").invoke('attr', 'ry').should('eq', '75') + cy.get("@ellipse").invoke("attr", "rx").should("eq", "50"); + cy.get("@ellipse").invoke("attr", "ry").should("eq", "75"); }); it("draw a curve", () => { cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click() - cy.drawMultiInViewport([{x:300, y:300}, {x:350, y:300}, {x:300, y:350}, {x:400, y:450}]) - cy.get(".viewport-controls path").as("curve") + cy.get(".left-toolbar-options li[alt='Curve (Shift+C)']").click(); + cy.drawMultiInViewport([ + { x: 300, y: 300 }, + { x: 350, y: 300 }, + { x: 300, y: 350 }, + { x: 400, y: 450 }, + ]); + cy.get(".viewport-controls path").as("curve"); cy.get("@curve").should("exist"); - cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300L300,350L400,450") + cy.get("@curve") + .invoke("attr", "d") + .should("eq", "M300,300L350,300L300,350L400,450"); }); it("draw a path", () => { cy.get(".viewport-controls path").should("not.exist"); - cy.get(".left-toolbar-options li[alt='Path (P)']").click() - cy.clickMultiInViewport([{x:300, y:300}, {x:350, y:300}]) - cy.drawMultiInViewport([{x:400, y:450}, {x:450, y:450}], true) - cy.clickMultiInViewport([{x:300, y:300}]) - cy.get(".viewport-controls path").as("curve") + cy.get(".left-toolbar-options li[alt='Path (P)']").click(); + cy.clickMultiInViewport([ + { x: 300, y: 300 }, + { x: 350, y: 300 }, + ]); + cy.drawMultiInViewport( + [ + { x: 400, y: 450 }, + { x: 450, y: 450 }, + ], + true + ); + cy.clickMultiInViewport([{ x: 300, y: 300 }]); + cy.get(".viewport-controls path").as("curve"); cy.get("@curve").should("exist"); - cy.get("@curve").invoke('attr', 'd').should('eq', "M300,300L350,300C350,300,350,450,400,450C450,450,300,300,300,300Z") + cy.get("@curve") + .invoke("attr", "d") + .should( + "eq", + "M300,300L350,300C350,300,350,450,400,450C450,450,300,300,300,300Z" + ); }); - - }); +}); diff --git a/frontend/cypress/support/commands.js b/frontend/cypress/support/commands.js index a5c7845edb..9283cca5eb 100644 --- a/frontend/cypress/support/commands.js +++ b/frontend/cypress/support/commands.js @@ -23,18 +23,18 @@ // // -- This will overwrite an existing command -- // Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) - +import 'cypress-file-upload'; Cypress.Commands.add('login', (email, password) => { cy.visit("http://localhost:3449/#/auth/login"); cy.get("#email").type(email); cy.get("#password").type(password); - cy.get("input[type=submit]").first().click(); + cy.getBySel("login-submit").click(); }) Cypress.Commands.add('demoLogin', () => { cy.visit("http://localhost:3449/#/auth/login"); - cy.get("a").contains("Create demo account").click() + cy.getBySel("demo-account-link").click() }) Cypress.Commands.add('drawInViewport', (x1, y1, x2, y2) => { @@ -89,4 +89,12 @@ Cypress.Commands.add('clearViewport', () => { cy.get(".viewport-controls").type('{ctrl}a'); cy.get(".viewport-controls").type('{del}'); cy.window().its("debug").invoke('reset_viewport') +}) + +Cypress.Commands.add('getBySel', (selector, ...args) => { + return cy.get(`[data-test=${selector}]`, ...args) +}) + +Cypress.Commands.add('getBySelLike', (selector, ...args) => { + return cy.get(`[data-test*=${selector}]`, ...args) }) \ No newline at end of file diff --git a/frontend/cypress/support/utils.js b/frontend/cypress/support/utils.js new file mode 100644 index 0000000000..ee5ea66afb --- /dev/null +++ b/frontend/cypress/support/utils.js @@ -0,0 +1,12 @@ +export const checkOnboardingSlide = (number, checkSkip) => { + cy.getBySel(`slide-${number}-title`).should("exist"); + if(checkSkip){cy.getBySel("skip-btn").should("exist");} + cy.get(".onboarding .step-dots").should("exist"); + cy.getBySel(`slide-${number}-btn`).should("exist"); + cy.getBySel(`slide-${number}-btn`).click(); +}; + +export const goToSlideByNumber = (number) => { + cy.get(`.step-dots li:nth-child(${number})`).click(); + cy.getBySel(`slide-${number -1}-btn`).should("exist"); +}; \ No newline at end of file diff --git a/frontend/package.json b/frontend/package.json index 35e27b598f..1d1a8d8404 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,6 +26,7 @@ "devDependencies": { "autoprefixer": "^10.4.1", "cypress": "^9.2.1", + "cypress-file-upload": "^5.0.8", "gettext-parser": "^4.2.0", "gulp": "4.0.2", "gulp-concat": "^2.6.1", diff --git a/frontend/src/app/main/ui/auth/login.cljs b/frontend/src/app/main/ui/auth/login.cljs index 399e4ddb46..58d4f97ecf 100644 --- a/frontend/src/app/main/ui/auth/login.cljs +++ b/frontend/src/app/main/ui/auth/login.cljs @@ -91,7 +91,8 @@ [:& msgs/inline-banner {:type :warning :content message - :on-close #(reset! error nil)}]) + :on-close #(reset! error nil) + :data-test "login-banner"}]) [:& fm/form {:on-submit on-submit :form form} [:div.fields-row @@ -111,7 +112,8 @@ [:div.buttons-stack [:& fm/submit-button - {:label (tr "auth.login-submit")}] + {:label (tr "auth.login-submit") + :data-test "login-submit"}] (when (contains? @cf/flags :login-with-ldap) [:& fm/submit-button @@ -149,7 +151,7 @@ [{:keys [params] :as props}] [:div.generic-form.login-form [:div.form-container - [:h1 (tr "auth.login-title")] + [:h1 {:data-test "login-title"} (tr "auth.login-title")] [:div.subtitle (tr "auth.login-subtitle")] [:& login-form {:params params}] @@ -163,18 +165,21 @@ [:div.links [:div.link-entry - [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request))} + [:a {:on-click #(st/emit! (rt/nav :auth-recovery-request)) + :data-test "forgot-password"} (tr "auth.forgot-password")]] (when (contains? @cf/flags :registration) [:div.link-entry [:span (tr "auth.register") " "] - [:a {:on-click #(st/emit! (rt/nav :auth-register {} params))} + [:a {:on-click #(st/emit! (rt/nav :auth-register {} params)) + :data-test "register-submit"} (tr "auth.register-submit")]])] (when (contains? @cf/flags :demo-users) [:div.links.demo [:div.link-entry [:span (tr "auth.create-demo-profile") " "] - [:a {:on-click (st/emitf (du/create-demo-profile))} + [:a {:on-click (st/emitf (du/create-demo-profile)) + :data-test "demo-account-link"} (tr "auth.create-demo-account")]]])]]) diff --git a/frontend/src/app/main/ui/auth/recovery_request.cljs b/frontend/src/app/main/ui/auth/recovery_request.cljs index 31c1eb2302..6477cfb32d 100644 --- a/frontend/src/app/main/ui/auth/recovery_request.cljs +++ b/frontend/src/app/main/ui/auth/recovery_request.cljs @@ -67,7 +67,8 @@ :type "text"}]] [:& fm/submit-button - {:label (tr "auth.recovery-request-submit")}]])) + {:label (tr "auth.recovery-request-submit") + :data-test "recovery-resquest-submit"}]])) ;; --- Recovery Request Page @@ -82,5 +83,6 @@ [:div.links [:div.link-entry - [:a {:on-click #(st/emit! (rt/nav :auth-login))} + [:a {:on-click #(st/emit! (rt/nav :auth-login)) + :data-test "go-back-link"} (tr "labels.go-back")]]]]]) diff --git a/frontend/src/app/main/ui/auth/register.cljs b/frontend/src/app/main/ui/auth/register.cljs index 84c362fb23..9fabc8d5c6 100644 --- a/frontend/src/app/main/ui/auth/register.cljs +++ b/frontend/src/app/main/ui/auth/register.cljs @@ -98,7 +98,8 @@ :name :email :tab-index "2" :help-icon i/at - :label (tr "auth.email")}]] + :label (tr "auth.email") + :data-test "email-input"}]] [:div.fields-row [:& fm/input {:name :password :tab-index "3" @@ -108,12 +109,13 @@ [:& fm/submit-button {:label (tr "auth.register-submit") - :disabled @submitted?}]])) + :disabled @submitted? + :data-test "register-form-submit"}]])) (mf/defc register-page [{:keys [params] :as props}] [:div.form-container - [:h1 (tr "auth.register-title")] + [:h1 {:data-test "registration-title"} (tr "auth.register-title")] [:div.subtitle (tr "auth.register-subtitle")] (when (contains? @cf/flags :demo-warning) @@ -132,7 +134,8 @@ [:div.link-entry [:span (tr "auth.already-have-account") " "] [:a {:on-click #(st/emit! (rt/nav :auth-login {} params)) - :tab-index "4"} + :tab-index "4" + :data-test "login-here-link"} (tr "auth.login-here")]] (when (contains? @cf/flags :demo-users) diff --git a/frontend/src/app/main/ui/components/file_uploader.cljs b/frontend/src/app/main/ui/components/file_uploader.cljs index 8aa5c55b53..3ee25d09c3 100644 --- a/frontend/src/app/main/ui/components/file_uploader.cljs +++ b/frontend/src/app/main/ui/components/file_uploader.cljs @@ -12,7 +12,7 @@ (mf/defc file-uploader {::mf/forward-ref true} - [{:keys [accept multi label-text label-class input-id on-selected] :as props} input-ref] + [{:keys [accept multi label-text label-class input-id on-selected data-test] :as props} input-ref] (let [opt-pick-one #(if multi % (first %)) on-files-selected @@ -37,5 +37,6 @@ :accept accept :type "file" :ref input-ref - :on-change on-files-selected}]])) + :on-change on-files-selected + :data-test data-test}]])) diff --git a/frontend/src/app/main/ui/components/forms.cljs b/frontend/src/app/main/ui/components/forms.cljs index fd15aa757f..8d744090be 100644 --- a/frontend/src/app/main/ui/components/forms.cljs +++ b/frontend/src/app/main/ui/components/forms.cljs @@ -12,6 +12,7 @@ [app.util.forms :as fm] [app.util.i18n :as i18n :refer [tr]] [app.util.object :as obj] + [clojure.string] [cuerdas.core :as str] [rumext.alpha :as mf])) @@ -19,7 +20,7 @@ (def use-form fm/use-form) (mf/defc input - [{:keys [label help-icon disabled form hint trim children] :as props}] + [{:keys [label help-icon disabled form hint trim children data-test] :as props}] (let [input-type (get props :type "text") input-name (get props :name) more-classes (get props :class) @@ -112,7 +113,7 @@ help-icon']) (cond (and touched? (:message error)) - [:span.error (tr (:message error))] + [:span.error {:data-test (clojure.string/join [data-test "-error"]) }(tr (:message error))] (string? hint) [:span.hint hint])]])) @@ -170,7 +171,7 @@ [:span.hint hint])]])) (mf/defc select - [{:keys [options label form default] :as props + [{:keys [options label form default data-test] :as props :or {default ""}}] (let [input-name (get props :name) @@ -181,7 +182,8 @@ [:div.custom-select [:select {:value value - :on-change on-change} + :on-change on-change + :data-test data-test} (for [item options] [:option {:key (:value item) :value (:value item)} (:label item)])] @@ -194,7 +196,7 @@ i/arrow-slide]]])) (mf/defc submit-button - [{:keys [label form on-click disabled] :as props}] + [{:keys [label form on-click disabled data-test] :as props}] (let [form (or form (mf/use-ctx form-ctx))] [:input.btn-primary.btn-large {:name "submit" @@ -202,6 +204,7 @@ :disabled (or (not (:valid @form)) (true? disabled)) :on-click on-click :value label + :data-test data-test :type "submit"}])) (mf/defc form diff --git a/frontend/src/app/main/ui/dashboard/sidebar.cljs b/frontend/src/app/main/ui/dashboard/sidebar.cljs index 061b41f45b..f632ca2f4a 100644 --- a/frontend/src/app/main/ui/dashboard/sidebar.cljs +++ b/frontend/src/app/main/ui/dashboard/sidebar.cljs @@ -501,25 +501,30 @@ (st/emit! section))))] [:div.profile-section - [:div.profile {:on-click #(reset! show true)} + [:div.profile {:on-click #(reset! show true) + :data-test "profile-btn"} [:img {:src photo}] [:span (:fullname profile)] [:& dropdown {:on-close #(reset! show false) :show @show} [:ul.dropdown - [:li {:on-click (partial on-click :settings-profile)} + [:li {:on-click (partial on-click :settings-profile) + :data-test "profile-profile-opt"} [:span.icon i/user] [:span.text (tr "labels.profile")]] - [:li {:on-click (partial on-click :settings-password)} + [:li {:on-click (partial on-click :settings-password) + :data-test "password-profile-opt"} [:span.icon i/lock] [:span.text (tr "labels.password")]] - [:li {:on-click #(on-click (du/logout) %)} + [:li {:on-click #(on-click (du/logout) %) + :data-test "logout-profile-opt"} [:span.icon i/exit] [:span.text (tr "labels.logout")]] (when (contains? @cf/flags :user-feedback) - [:li.feedback {:on-click (partial on-click :settings-feedback)} + [:li.feedback {:on-click (partial on-click :settings-feedback) + :data-test "feedback-profile-opt"} [:span.icon i/msg-info] [:span.text (tr "labels.give-feedback")] ])]]] diff --git a/frontend/src/app/main/ui/messages.cljs b/frontend/src/app/main/ui/messages.cljs index aff6c6f81e..7325580dad 100644 --- a/frontend/src/app/main/ui/messages.cljs +++ b/frontend/src/app/main/ui/messages.cljs @@ -15,7 +15,7 @@ [rumext.alpha :as mf])) (mf/defc banner - [{:keys [type position status controls content actions on-close] :as props}] + [{:keys [type position status controls content actions on-close data-test] :as props}] [:div.banner {:class (dom/classnames :warning (= type :warning) :error (= type :error) @@ -34,7 +34,8 @@ i/msg-error)] [:div.content {:class (dom/classnames :inline-actions (= controls :inline-actions) - :bottom-actions (= controls :bottom-actions))} + :bottom-actions (= controls :bottom-actions)) + :data-test data-test} content (when (or (= controls :bottom-actions) (= controls :inline-actions)) [:div.actions @@ -59,7 +60,7 @@ (mf/defc inline-banner {::mf/wrap [mf/memo]} - [{:keys [type content on-close actions] :as props}] + [{:keys [type content on-close actions data-test] :as props}] [:& banner {:type type :position :inline :status :visible @@ -70,5 +71,6 @@ :none)) :content content :on-close on-close - :actions actions}]) + :actions actions + :data-test data-test}]) diff --git a/frontend/src/app/main/ui/onboarding.cljs b/frontend/src/app/main/ui/onboarding.cljs index 0f31f117d3..76fb137557 100644 --- a/frontend/src/app/main/ui/onboarding.cljs +++ b/frontend/src/app/main/ui/onboarding.cljs @@ -27,14 +27,14 @@ [:img {:src "images/login-on.jpg" :border "0" :alt (tr "onboarding.welcome.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.welcome.title")]] + [:h2 {:data-test "onboarding-welcome"} (tr "onboarding.welcome.title")]] [:span.release "Beta version " (:main @cf/version)] [:div.modal-content [:p (tr "onboarding.welcome.desc1")] [:p (tr "onboarding.welcome.desc2")] [:p (tr "onboarding.welcome.desc3")]] [:div.modal-navigation - [:button.btn-secondary {:on-click next} (tr "labels.continue")]]] + [:button.btn-secondary {:on-click next :data-test "onboarding-next-btn"} (tr "labels.continue")]]] [:img.deco {:src "images/deco-left.png" :border "0"}] [:img.deco.right {:src "images/deco-right.png" :border "0"}]]) @@ -55,7 +55,7 @@ "\u00A0" (tr "onboarding.contrib.desc2.2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click next} (tr "labels.continue")]]]]) + [:button.btn-secondary {:on-click next :data-test "opsource-next-btn"} (tr "labels.continue")]]]]) (defmulti render-slide :slide) @@ -67,13 +67,14 @@ [:img {:src "images/on-design.gif" :border "0" :alt (tr "onboarding.slide.0.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.0.title")]] + [:h2 {:data-test "slide-0-title"} (tr "onboarding.slide.0.title")]] [:div.modal-content [:p (tr "onboarding.slide.0.desc1")] [:p (tr "onboarding.slide.0.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 1)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 1) + :data-test "slide-0-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -87,13 +88,14 @@ [:img {:src "images/on-proto.gif" :border "0" :alt (tr "onboarding.slide.1.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.1.title")]] + [:h2 {:data-test "slide-1-title"} (tr "onboarding.slide.1.title")]] [:div.modal-content [:p (tr "onboarding.slide.1.desc1")] [:p (tr "onboarding.slide.1.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 2)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 2) + :data-test "slide-1-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -107,12 +109,13 @@ [:img {:src "images/on-feed.gif" :border "0" :alt (tr "onboarding.slide.2.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.2.title")]] + [:h2 {:data-test "slide-2-title"} (tr "onboarding.slide.2.title")]] [:div.modal-content [:p (tr "onboarding.slide.2.desc1")]] [:div.modal-navigation - [:button.btn-secondary {:on-click #(navigate 3)} (tr "labels.continue")] - [:span.skip {:on-click skip} (tr "labels.skip")] + [:button.btn-secondary {:on-click #(navigate 3) + :data-test "slide-2-btn"} (tr "labels.continue")] + [:span.skip {:on-click skip :data-test "skip-btn"} (tr "labels.skip")] [:& rc/navigation-bullets {:slide slide :navigate navigate @@ -126,12 +129,13 @@ [:img {:src "images/on-handoff.gif" :border "0" :alt (tr "onboarding.slide.3.alt")}]] [:div.modal-right [:div.modal-title - [:h2 (tr "onboarding.slide.3.title")]] + [:h2 {:data-test "slide-3-title"} (tr "onboarding.slide.3.title")]] [:div.modal-content [:p (tr "onboarding.slide.3.desc1")] [:p (tr "onboarding.slide.3.desc2")]] [:div.modal-navigation - [:button.btn-secondary {:on-click skip} (tr "labels.start")] + [:button.btn-secondary {:on-click skip + :data-test "slide-3-btn"} (tr "labels.start")] [:& rc/navigation-bullets {:slide slide :navigate navigate diff --git a/frontend/src/app/main/ui/onboarding/team_choice.cljs b/frontend/src/app/main/ui/onboarding/team_choice.cljs index 6e5961a8fa..abaaa8d93a 100644 --- a/frontend/src/app/main/ui/onboarding/team_choice.cljs +++ b/frontend/src/app/main/ui/onboarding/team_choice.cljs @@ -42,11 +42,12 @@ [:div.modal-overlay [:div.modal-container.onboarding.final.animated.fadeInUp [:div.modal-top - [:h1 (tr "onboarding.welcome.title")] + [:h1 {:data-test "onboarding-welcome-title"} (tr "onboarding.welcome.title")] [:p (tr "onboarding.welcome.desc3")]] [:div.modal-columns [:div.modal-left - [:div.content-button {:on-click on-fly-solo} + [:div.content-button {:on-click on-fly-solo + :data-test "fly-solo-op"} [:h2 (tr "onboarding.choice.fly-solo")] [:p (tr "onboarding.choice.fly-solo-desc")]]] [:div.modal-right diff --git a/frontend/src/app/main/ui/onboarding/templates.cljs b/frontend/src/app/main/ui/onboarding/templates.cljs index de4a5b381a..84bfc15582 100644 --- a/frontend/src/app/main/ui/onboarding/templates.cljs +++ b/frontend/src/app/main/ui/onboarding/templates.cljs @@ -70,7 +70,8 @@ [:div.modal-container.onboarding-templates [:div.modal-header [:div.modal-close-button - {:on-click close-fn} i/close]] + {:on-click close-fn + :data-test "close-templates-btn"} i/close]] [:div.modal-content [:h3 (tr "onboarding.templates.title")] diff --git a/frontend/src/app/main/ui/settings.cljs b/frontend/src/app/main/ui/settings.cljs index 6adc821c29..46edd62c13 100644 --- a/frontend/src/app/main/ui/settings.cljs +++ b/frontend/src/app/main/ui/settings.cljs @@ -22,7 +22,7 @@ [] [:header.dashboard-header [:div.dashboard-title - [:h1 (tr "dashboard.your-account-title")]]]) + [:h1 {:data-test "account-title"} (tr "dashboard.your-account-title")]]]) (mf/defc settings [{:keys [route] :as props}] diff --git a/frontend/src/app/main/ui/settings/change_email.cljs b/frontend/src/app/main/ui/settings/change_email.cljs index 7c538fbffa..0574499096 100644 --- a/frontend/src/app/main/ui/settings/change_email.cljs +++ b/frontend/src/app/main/ui/settings/change_email.cljs @@ -86,7 +86,8 @@ [:div.modal-header [:div.modal-header-title - [:h2 (tr "modals.change-email.title")]] + [:h2 {:data-test "change-email-title"} + (tr "modals.change-email.title")]] [:div.modal-close-button {:on-click on-close} i/close]] @@ -108,7 +109,7 @@ :trim true}]]]] [:div.modal-footer - [:div.action-buttons + [:div.action-buttons {:data-test "change-email-submit"} [:& fm/submit-button {:label (tr "modals.change-email.submit")}]]]]]])) diff --git a/frontend/src/app/main/ui/settings/delete_account.cljs b/frontend/src/app/main/ui/settings/delete_account.cljs index f4e7262192..886d966800 100644 --- a/frontend/src/app/main/ui/settings/delete_account.cljs +++ b/frontend/src/app/main/ui/settings/delete_account.cljs @@ -51,7 +51,8 @@ [:div.modal-footer [:div.action-buttons - [:button.btn-warning.btn-large {:on-click on-accept} + [:button.btn-warning.btn-large {:on-click on-accept + :data-test "delete-account-btn"} (tr "modals.delete-account.confirm")] [:button.btn-secondary.btn-large {:on-click on-close} (tr "modals.delete-account.cancel")]]]]])) diff --git a/frontend/src/app/main/ui/settings/options.cljs b/frontend/src/app/main/ui/settings/options.cljs index c2317e32d3..66d213bdcb 100644 --- a/frontend/src/app/main/ui/settings/options.cljs +++ b/frontend/src/app/main/ui/settings/options.cljs @@ -48,20 +48,23 @@ [:h2 (t locale "labels.language")] [:div.fields-row - [:& fm/select {:options (into [{:label "Auto (browser)" :value ""}] + [:& fm/select {:options (into [{:label "Auto (browser)" :value "default"}] i18n/supported-locales) :label (t locale "dashboard.select-ui-language") :default "" - :name :lang}]] + :name :lang + :data-test "setting-lang"}]] [:h2 (t locale "dashboard.theme-change")] [:div.fields-row [:& fm/select {:label (t locale "dashboard.select-ui-theme") :name :theme :default "default" - :options [{:label "Default" :value "default"}]}]] + :options [{:label "Default" :value "default"}] + :data-test "theme-lang"}]] [:& fm/submit-button - {:label (t locale "dashboard.update-settings")}]])) + {:label (t locale "dashboard.update-settings") + :data-test "submit-lang-change"}]])) ;; --- Password Page @@ -72,4 +75,5 @@ [:div.dashboard-settings [:div.form-container + {:data-test "settings-form"} [:& options-form {:locale locale}]]]) diff --git a/frontend/src/app/main/ui/settings/password.cljs b/frontend/src/app/main/ui/settings/password.cljs index 12d43561e6..278eca9a41 100644 --- a/frontend/src/app/main/ui/settings/password.cljs +++ b/frontend/src/app/main/ui/settings/password.cljs @@ -89,7 +89,8 @@ :label (t locale "labels.confirm-password")}]] [:& fm/submit-button - {:label (t locale "dashboard.update-settings")}]])) + {:label (t locale "dashboard.update-settings") + :data-test "submit-password"}]])) ;; --- Password Page diff --git a/frontend/src/app/main/ui/settings/profile.cljs b/frontend/src/app/main/ui/settings/profile.cljs index eded1e265e..e92a71eaa6 100644 --- a/frontend/src/app/main/ui/settings/profile.cljs +++ b/frontend/src/app/main/ui/settings/profile.cljs @@ -71,7 +71,8 @@ [:div.links [:div.link-item - [:a {:on-click #(modal/show! :delete-account {})} + [:a {:on-click #(modal/show! :delete-account {}) + :data-test "remove-acount-btn"} (t locale "dashboard.remove-account")]]]])) ;; --- Profile Photo Form @@ -94,7 +95,8 @@ [:& file-uploader {:accept "image/jpeg,image/png" :multi false :ref file-input - :on-selected on-file-selected}]]])) + :on-selected on-file-selected + :data-test "profile-image-input"}]]])) ;; --- Profile Page diff --git a/frontend/src/app/main/ui/settings/sidebar.cljs b/frontend/src/app/main/ui/settings/sidebar.cljs index aa3ec05ec9..102a66cb49 100644 --- a/frontend/src/app/main/ui/settings/sidebar.cljs +++ b/frontend/src/app/main/ui/settings/sidebar.cljs @@ -80,7 +80,8 @@ [:span.element-title (tr "labels.password")]] [:li {:class (when options? "current") - :on-click go-settings-options} + :on-click go-settings-options + :data-test "settings-profile"} i/tree [:span.element-title (tr "labels.settings")]] diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 4744c16ca3..4f4095cce1 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1404,6 +1404,11 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.8.tgz" integrity sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw== +cypress-file-upload@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-5.0.8.tgz#d8824cbeaab798e44be8009769f9a6c9daa1b4a1" + integrity sha512-+8VzNabRk3zG6x8f8BWArF/xA/W0VK4IZNx3MV0jFWrJS/qKn8eHfa5nU73P9fOQAgwHFJx7zjg4lwOnljMO8g== + cypress@^9.2.1: version "9.2.1" resolved "https://registry.npmjs.org/cypress/-/cypress-9.2.1.tgz"