diff --git a/frontend/blog_portal/cypress/e2e/guest_routes.cy.ts b/frontend/blog_portal/cypress/e2e/guest_routes.cy.ts new file mode 100644 index 0000000..2f06222 --- /dev/null +++ b/frontend/blog_portal/cypress/e2e/guest_routes.cy.ts @@ -0,0 +1,41 @@ +describe("guest route guards", function () { + beforeEach(function () { + cy.resetDb(); + cy.clearMail(); + }); + + it("redirects anonymous visitors away from /users/:displayName/posts/new", function () { + cy.visit("/users/alice/posts/new"); + cy.location("pathname").should("eq", "/login"); + }); + + it("redirects authenticated visitors away from /login", function () { + cy.seedConfirmedUser({ + email: "alice@example.com", + displayName: "alice", + password: "longenoughpassword", + }); + cy.loginViaApi({ + email: "alice@example.com", + password: "longenoughpassword", + }); + + cy.visit("/login"); + cy.location("pathname").should("eq", "/"); + }); + + it("redirects authenticated visitors away from /signup", function () { + cy.seedConfirmedUser({ + email: "alice@example.com", + displayName: "alice", + password: "longenoughpassword", + }); + cy.loginViaApi({ + email: "alice@example.com", + password: "longenoughpassword", + }); + + cy.visit("/signup"); + cy.location("pathname").should("eq", "/"); + }); +});