Este projeto é um exemplo de configuração de um servidor Node.js com autenticação JWT e testes de integração usando node:test.
/project-root
│
├── /src
│ ├── /api
│ │ └── api.js
│
├── /test
│ ├── /e2e
│ │ └── api.test.js
│
├── .env
├── .gitignore
├── package.json
└── README.md
Crie um arquivo .env na raiz do projeto com o seguinte conteúdo:
BASE_URL=your_base_url
JWT_SECRET_KEY=your_secret_key_here
Execute o seguinte comando para instalar as dependências do projeto:
npm installnpm run dev: Inicia o servidor em modo de desenvolvimento.npm test: Executa os testes de integração.
O servidor é implementado no arquivo src/api/api.js. Ele utiliza http para criar um servidor e jsonwebtoken para gerar tokens JWT.
POST /login: Rota para autenticação de usuário. Gera um token JWT se as credenciais estiverem corretas.
Os testes de integração são implementados no arquivo test/e2e/api.test.js. Eles utilizam node:test e node-fetch para testar as rotas do servidor.
should receive not authorized given wrong user and password: Verifica se a resposta é401quando as credenciais são inválidas.should login successfully given user and password: Verifica se a resposta é200e se um token JWT é retornado quando as credenciais são válidas.
Para iniciar o servidor, execute:
npm run devPara executar os testes, execute:
npm testdotenv: Carrega variáveis de ambiente de um arquivo.env.jsonwebtoken: Biblioteca para gerar e verificar tokens JWT.node-fetch: Biblioteca para fazer requisições HTTP no Node.js.
Este projeto está licenciado sob a licença ISC.