import { describe, it, expect, beforeEach, vi, afterEach } from "vitest"; import { render, fireEvent, screen, cleanup } from "@testing-library/react"; import { Login } from "../../../src/pages/index.js"; import { AuthenticationContext } from "../../../src/contexts/index.js"; describe("Login Component", () => { let loginFunction; beforeEach(() => { loginFunction = vi.fn(); // Mock login function render( , ); }); afterEach(() => { cleanup(); }); it("renders without errors", () => { expect(screen.getByText("Login page")).toBeTruthy(); }); it("allows entering a username and password", () => { fireEvent.change(screen.getByPlaceholderText("username"), { target: { value: "testuser" }, }); fireEvent.change(screen.getByPlaceholderText("password"), { target: { value: "password123" }, }); expect(screen.getByPlaceholderText("username").value).toBe("testuser"); expect(screen.getByPlaceholderText("password").value).toBe("password123"); }); it("handles submit event", async () => { fireEvent.change(screen.getByPlaceholderText("username"), { target: { value: "testuser" }, }); fireEvent.change(screen.getByPlaceholderText("password"), { target: { value: "password123" }, }); fireEvent.click(screen.getByText("submit")); expect(loginFunction).toHaveBeenCalledWith("testuser", "password123"); }); //TODO add more tests please :) });