|
- context("Login", () => {
- beforeEach(() => {
- cy.request("/api/method/logout");
- cy.visit("/login");
- cy.location("pathname").should("eq", "/login");
- });
-
- it("greets with login screen", () => {
- cy.get(".page-card-head").contains("Login");
- });
-
- it("validates password", () => {
- cy.get("#login_email").type("Administrator");
- cy.findByRole("button", { name: "Login" }).click();
- cy.location("pathname").should("eq", "/login");
- });
-
- it("validates email", () => {
- cy.get("#login_password").type("qwe");
- cy.findByRole("button", { name: "Login" }).click();
- cy.location("pathname").should("eq", "/login");
- });
-
- it("shows invalid login if incorrect credentials", () => {
- cy.get("#login_email").type("Administrator");
- cy.get("#login_password").type("qwer");
-
- cy.findByRole("button", { name: "Login" }).click();
- cy.findByRole("button", { name: "Invalid Login. Try again." }).should("exist");
- cy.location("pathname").should("eq", "/login");
- });
-
- it("logs in using correct credentials", () => {
- cy.get("#login_email").type("Administrator");
- cy.get("#login_password").type(Cypress.env("adminPassword"));
-
- cy.findByRole("button", { name: "Login" }).click();
- cy.location("pathname").should("eq", "/app");
- cy.window().its("frappe.session.user").should("eq", "Administrator");
- });
-
- it("check redirect after login", () => {
- // mock for OAuth 2.0 client_id, redirect_uri, scope and state
- const payload = new URLSearchParams({
- uuid: "6fed1519-cfd8-4a2d-84a6-9a1799c7c741",
- encoded_string: "hello all",
- encoded_url: "http://test.localhost/callback",
- base64_string: "aGVsbG8gYWxs",
- });
-
- cy.request("/api/method/logout");
-
- // redirect-to /me page with params to mock OAuth 2.0 like request
- cy.visit(
- "/login?redirect-to=/me?" + encodeURIComponent(payload.toString().replace("+", " "))
- );
-
- cy.get("#login_email").type("Administrator");
- cy.get("#login_password").type(Cypress.env("adminPassword"));
-
- cy.findByRole("button", { name: "Login" }).click();
-
- // verify redirected location and url params after login
- cy.url().should("include", "/me?" + payload.toString().replace("+", "%20"));
- });
- });
|