From dc3425b6accb72bf48124167708d01574c1dcbfb Mon Sep 17 00:00:00 2001 From: Matheus de Almeida <69125506+matheusmra@users.noreply.github.com> Date: Wed, 13 May 2026 18:16:29 -0300 Subject: [PATCH 1/3] teste --- src/app.js | 5 ++--- src/userService.js | 6 ++++++ tests/app.test.js | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/userService.js diff --git a/src/app.js b/src/app.js index af42e6e..d2e3bc9 100644 --- a/src/app.js +++ b/src/app.js @@ -1,7 +1,6 @@ const express = require('express'); -const { PrismaClient } = require('@prisma/client'); +const { getUsers } = require('./userService'); -const prisma = new PrismaClient(); const app = express(); app.use(express.json()); @@ -11,7 +10,7 @@ app.get('/status', (req, res) => { }); app.get('/users', async (req, res) => { - const users = await prisma.user.findMany(); + const users = await getUsers(); res.status(200).json(users); }); diff --git a/src/userService.js b/src/userService.js new file mode 100644 index 0000000..05442fa --- /dev/null +++ b/src/userService.js @@ -0,0 +1,6 @@ +const { PrismaClient } = require('@prisma/client'); +const prisma = new PrismaClient(); + +const getUsers = () => prisma.user.findMany(); + +module.exports = { getUsers }; diff --git a/tests/app.test.js b/tests/app.test.js index 1b0111d..0c85f85 100644 --- a/tests/app.test.js +++ b/tests/app.test.js @@ -1,4 +1,8 @@ const request = require('supertest'); + +jest.mock('../src/userService'); +const { getUsers } = require('../src/userService'); + const app = require('../src/app'); describe('API Status', () => { @@ -7,4 +11,26 @@ describe('API Status', () => { expect(response.statusCode).toBe(200); expect(response.body.status).toBe('API Online e CI/CD configurado!'); }); +}); + +describe('GET /users', () => { + it('Deve retornar lista de usuários', async () => { + getUsers.mockResolvedValue([{ id: 1, name: 'Alice', email: 'alice@example.com' }]); + + const response = await request(app).get('/users'); + + expect(response.statusCode).toBe(200); + expect(response.body[0].name).toBe('Alice'); + expect(response.body[0].email).toBe('alice@example.com'); + expect(response.body[0].endereco).toBe('teste'); + }); + + it('Deve retornar lista vazia quando não há usuários', async () => { + getUsers.mockResolvedValue([]); + + const response = await request(app).get('/users'); + + expect(response.statusCode).toBe(200); + expect(response.body).toEqual([]); + }); }); \ No newline at end of file From 1ae23d50f91334f58622ac28fc92376d6d6c568b Mon Sep 17 00:00:00 2001 From: Matheus de Almeida <69125506+matheusmra@users.noreply.github.com> Date: Wed, 13 May 2026 18:22:44 -0300 Subject: [PATCH 2/3] new unit test --- tests/app.test.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/app.test.js b/tests/app.test.js index e3d14b6..0ce8ca8 100644 --- a/tests/app.test.js +++ b/tests/app.test.js @@ -11,4 +11,25 @@ describe('API Status', () => { expect(response.statusCode).toBe(200); expect(response.body.status).toBe('API Online e CI/CD configurado!'); }); +}); + +describe('GET /users', () => { + it('Deve retornar lista de usuários', async () => { + getUsers.mockResolvedValue([{ id: 1, name: 'Alice', email: 'alice@example.com' }]); + + const response = await request(app).get('/users'); + + expect(response.statusCode).toBe(200); + expect(response.body[0].name).toBe('Alice'); + expect(response.body[0].email).toBe('alice@example.com'); + }); + + it('Deve retornar lista vazia quando não há usuários', async () => { + getUsers.mockResolvedValue([]); + + const response = await request(app).get('/users'); + + expect(response.statusCode).toBe(200); + expect(response.body).toEqual([]); + }); }); \ No newline at end of file From 61b1a13ddca06a00e450d68b1ef83ab8f0c18eea Mon Sep 17 00:00:00 2001 From: Matheus de Almeida <69125506+matheusmra@users.noreply.github.com> Date: Wed, 13 May 2026 18:24:36 -0300 Subject: [PATCH 3/3] new teste --- tests/app.test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/app.test.js b/tests/app.test.js index 0ce8ca8..0c85f85 100644 --- a/tests/app.test.js +++ b/tests/app.test.js @@ -22,6 +22,7 @@ describe('GET /users', () => { expect(response.statusCode).toBe(200); expect(response.body[0].name).toBe('Alice'); expect(response.body[0].email).toBe('alice@example.com'); + expect(response.body[0].endereco).toBe('teste'); }); it('Deve retornar lista vazia quando não há usuários', async () => {