import { describe, it, vi, expect, beforeEach, afterEach } from "vitest"; import { render, fireEvent, screen, cleanup } from "@testing-library/react"; import { ItemPage } from "../../../src/components/item/ItemPage.jsx"; // Assurez-vous d'importer correctement votre composant import { AuthenticationContext } from "../../../src/contexts/index.js"; describe("Item Page with Authentication", () => { let rooms; beforeEach(() => { // Simuler la connexion de l'utilisateur const user = { username: "Juvisi!0TEST", password: "Juvisi!0TEST" }; const loginFunction = vi.fn().mockResolvedValue(user); // Mock de la fonction de connexion rooms = [{ _id: "66425c9d8869396c3e853633", name: "test" }]; render( , ); }); afterEach(cleanup); // Nettoyer après chaque test pour éviter les fuites de mémoire it("renders without errors", () => { expect(screen.getByTestId("item-container")).toBeTruthy(); }); /*it('allows filtering items', async () => { // Simuler une saisie dans le champ de recherche par nom fireEvent.change(screen.getByLabelText('Search by name:'), { target: { value: 'Item' } }); // Attendre que les éléments filtrés soient rendus dans la liste await screen.findByText('Filtered Item'); });*/ /*it('allows creating an item', async () => { // Simuler un clic sur le bouton "Create Item" fireEvent.click(screen.getByTestId('create-item-button')); // Attendre que le modal de création d'élément s'ouvre await screen.findByTestId('create-item-button'); // Simuler une saisie dans les champs du formulaire de création d'élément fireEvent.change(screen.getByTestId("create-item-Brand-Input"), { target: { value: 'Brand X' } }); fireEvent.change(screen.getByTestId("create-item-Model-Input"), { target: { value: 'Model Y' } }); // Simuler un clic pour ouvrir le menu déroulant fireEvent.mouseDown(screen.getByTestId("create-item-Room-Select")); // Attendre que les options du menu déroulant soient rendues await screen.findByText('test'); // Simuler un clic pour choisir l'option "test" fireEvent.click(screen.getByText('test')); // Simuler un clic sur le bouton "Submit" du formulaire fireEvent.click(screen.getByText('Submit')); // Attendre que l'élément soit ajouté à la liste await screen.findByText('Brand X'); await screen.findByText('Model Y'); });*/ /*it('allows updating an item', async () => { // Simuler un clic sur le bouton "Edit" de l'élément à mettre à jour fireEvent.click(screen.getByText('Edit')); // Attendre que le modal de mise à jour de l'élément s'ouvre await screen.findByText('Update Item'); // Simuler une saisie dans les champs du formulaire de mise à jour d'élément fireEvent.change(screen.getByLabelText('Brand'), { target: { value: 'Updated Brand' } }); fireEvent.change(screen.getByLabelText('Model'), { target: { value: 'Updated Model' } }); // Simuler un clic sur le bouton "Submit" du formulaire de mise à jour fireEvent.click(screen.getByText('Submit')); // Attendre que l'élément mis à jour soit affiché dans la liste await screen.findByText('Updated Brand Updated Model'); });*/ /*it('allows deleting an item', async () => { // Simuler un clic sur le bouton "Delete" de l'élément à supprimer fireEvent.click(screen.getByText('Delete')); // Attendre que l'élément soit supprimé de la liste await screen.findByText('Updated Brand Updated Model', { timeout: 5000, shouldNotExist: true }); });*/ });