1
resposta

Erro ao executar 'Deve adicionar uma nova editora'

Ao tentar rodar o teste no terminal, me retorna a seguinte mensagem:

src/teste/models/editorasRoutes.test.js ● Test suite failed to run

Jest encountered an unexpected token

Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.

Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.

By default "node_modules" folder is ignored by transformers.

Here's what you can do:
 • If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
 • If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/configuration
For information about custom transformations, see:
https://jestjs.io/docs/code-transformation

Details:

SyntaxError: C:\Users\Marce\OneDrive\Documents\Formação Autenticação, Testes e Segurança com NODE.JS\Node.js testes unitários e de integração\projeto 2\src\teste\models\editorasRoutes.test.js: Unexpected token (36:6)

  34 |         email: 's@s.com',
  35 |       });
> 36 |       .expect(201);
     |       ^
  37 |   });
  38 | });
  39 |
1 resposta

Olá, Marcelo! Tudo bem?

Pelo que pude perceber, parece que você está tendo um problema com a sintaxe do JavaScript no seu código. O erro que você está recebendo é comum quando o Jest (a biblioteca de testes que você está usando) encontra um token inesperado ao tentar analisar seu código. Isso geralmente acontece quando o código usa uma sintaxe JavaScript não padrão que o Jest não está configurado para entender.

O trecho de código que você compartilhou parece estar correto na sintaxe, mas o erro parece estar na linha 36, onde você está tentando encadear o método .expect(201) após o fechamento da função anônima.

Acredito que o problema possa estar relacionado à maneira como você está encadeando suas chamadas de função. No caso do supertest, você deve encadear o método .expect() diretamente após a chamada do método HTTP (como .get(), .post(), etc.), e não após o fechamento da função anônima.

Portanto, em vez de fazer isso:

request(app)
  .post('/editoras')
  .send({
    nome: 'Editora Teste',
    cidade: 'São Paulo',
    email: 's@s.com',
  })
  .then(() => {
    // Algumas operações aqui...
  })
  .expect(201);

Você deve fazer isso:

request(app)
  .post('/editoras')
  .send({
    nome: 'Editora Teste',
    cidade: 'São Paulo',
    email: 's@s.com',
  })
  .expect(201)
  .then(() => {
    // Algumas operações aqui...
  });

Por favor, tente fazer essa alteração e veja se resolve o problema. Espero ter ajudado e bons estudos!