From 747d829218a91ca06e88af049d60d7606e4992b4 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Thu, 19 Sep 2024 18:21:43 -0300 Subject: [PATCH] test: render idoso and user information Co-Authored-By: Natalia Rodrigues --- src/app/__tests__/registros.spec.tsx | 52 +++++++++++++++++++++------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/app/__tests__/registros.spec.tsx b/src/app/__tests__/registros.spec.tsx index ff9335b5..7ae3019f 100644 --- a/src/app/__tests__/registros.spec.tsx +++ b/src/app/__tests__/registros.spec.tsx @@ -1,16 +1,44 @@ -import React from "react"; -import { render, waitFor } from "@testing-library/react-native"; -import Registros from "../private/tabs/registros"; -import AsyncStorage from "@react-native-async-storage/async-storage/jest/async-storage-mock"; +import React from 'react'; +import { render, waitFor, fireEvent } from '@testing-library/react-native'; +import Registros from '../private/tabs/registros'; +import AsyncStorage from '@react-native-async-storage/async-storage'; +import { IIdoso } from '../interfaces/idoso.interface'; +import { IMetrica } from '../interfaces/metricas.interface'; +import { Q } from '@nozbe/watermelondb'; +import database from '../db'; +import { getAllMetrica } from '../services/metrica.service'; +import Toast from 'react-native-toast-message'; -describe("Registros", () => { - it("renderiza corretamente", async () => { - await waitFor(() => render()); - }); +// Mocking the necessary components and services +jest.mock('@react-native-async-storage/async-storage', () => ({ + getItem: jest.fn(), +})); + +jest.mock('../db', () => ({ + get: jest.fn().mockReturnValue({ + query: jest.fn().mockReturnValue({ + fetch: jest.fn(), + }), + }), +})); + +jest.mock('react-native-toast-message'); - it("renderiza corretamente com user id", async () => { - AsyncStorage.setItem("usuario", JSON.stringify({ id: 1 })); +describe('Registros', () => { + const mockUser = { id: 'user1', nome: 'User Test' }; + const mockIdoso: IIdoso = { id: 'idoso1', nome: 'Idoso Test', foto: null }; + const mockMetricas: IMetrica[] = [{ _raw: { idoso_id: 'idoso1' } }]; - await waitFor(() => render()); + beforeEach(() => { + // Clear mocks before each test + jest.clearAllMocks(); }); -}); + + it('should render the user and idoso information when both are available', async () => { + (AsyncStorage.getItem as jest.Mock) + .mockResolvedValueOnce(JSON.stringify(mockUser)) // Mocking user + .mockResolvedValueOnce(JSON.stringify(mockIdoso)); // Mocking idoso + + const { getByText, getByTestId } = render(); +  }); +}); \ No newline at end of file