diff --git a/__tests__/pages/authenticated/Items.test.jsx b/__tests__/pages/authenticated/Items.test.jsx index 482f5c1..b5f494b 100644 --- a/__tests__/pages/authenticated/Items.test.jsx +++ b/__tests__/pages/authenticated/Items.test.jsx @@ -1,35 +1,78 @@ -/*import { describe, it, expect, beforeEach, vi, afterEach } from "vitest"; +import { describe, it, vi, expect, beforeEach, afterEach } from "vitest"; import { render, fireEvent, screen, cleanup } from "@testing-library/react"; -import { Login } from "../../../src/pages/index.js"; +import { ItemPage } from "../../../src/components/item/ItemPage.jsx"; // Assurez-vous d'importer correctement votre composant import { AuthenticationContext } from "../../../src/contexts/index.js"; -describe('Items Page', () => { - beforeEach(() => { - // Se connecter à l'application avec le compte pseudo : Juvisi!0TEST et mdp : Juvisi!0TEST - cy.visit('/'); - cy.findByPlaceholderText('username').type('Juvisi!0TEST'); - cy.findByPlaceholderText('password').type('Juvisi!0TEST'); - cy.findByText('submit').click(); - // Vérifier que la connexion est réussie et que vous êtes redirigé vers la page '/items' - cy.findByText('Welcome Juvisi!0TEST').should('exist'); - }); - - it('creates an item', () => { - // Créer un nouvel item - cy.findByPlaceholderText('Item name').type('New Item'); - cy.findByText('Add Item').click(); - }); - - it('verifies the item is created', () => { - // Vérifier que l'élément est ajouté à la liste - cy.findByText('New Item').should('exist'); - }); - - it('deletes the item', () => { - // Supprimer l'élément - cy.findByText('New Item').siblings('button').click(); - }); +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( + + + , + ); }); - - -*/ //impossible de tester car element pas encore terminé + + 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 }); + });*/ +});