1
resposta

Erro no App.test.js

Erro de log:

throw new ERR_INVALID_ARG_TYPE('target', ['Buffer', 'Uint8Array'], target);

Attempted to log "Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. in App (at App.test.js:11)".

O que pode ser isso?

Código:

import React from 'react';
import { fireEvent, render, screen } from '@testing-library/react';

import App, { calcularNovoSaldo } from './App';

describe('Componente principal', () => {

    describe('Quando eu abro o app do banco ',() => {

        it('O nome é exibido', () => {
            render(<App />);
            expect(screen.getByText('ByteBank')).toBeInTheDocument();
        })

        it('O saldo é exibido', () => {

            render(<App />);

            expect(screen.getByText('Saldo:')).toBeInTheDocument();

        })

        it('O botão de realizar transação é exibido', () => {

            render(<App />);

            expect(screen.getByText('Realizar operação')).toBeInTheDocument();

        })

    })


    describe('Quando eu realizo uma transação ',() => {

        it('que é um saque o valor vai diminuir', () => {

            const valores = {
                transacao: 'saque',
                valor:50
            }

            const novoSaldo = calcularNovoSaldo(valores,150);
            expect(novoSaldo).toBe(100);
        })

        it('que é um saque, a transação deve ser realizada', () => {

            render(<App />);

            const saldo = screen.getByText('R$ 1000');
            const transacao = screen.getByLabelText('Saque');
            const valor = screen.getByTestId('valor'); 
            const botaoTransacao = screen.getByText('Realizar operação'); 

            expect(saldo.textContent).toBe('R$ 1000');


            fireEvent.click(transacao, {target: {value: 'saque'}});
            fireEvent.change(valor, {target: {value: 10}});
            fireEvent.click(botaoTransacao);

            expect(saldo.textContent).toBe('R$ 990');

        })



    })


})

1 resposta

Olá, Davi! Tudo bem?

Esse aviso indica que alguma operação foi tentada em um componente não montado. Esse erro aparece toda vez que você roda o teste? Pois eu testei seu código aqui e não apareceu esse aviso.

Abraço!