eletrotupi / tcc/ api/tests/users/me.test.tsff12ba99add07246bdaf39737d2c64072be1cfbf
1.0 KB | 31 lines Raw
1
import { describe, it, expect, afterAll, beforeEach } from 'vitest'
2
import request from 'supertest'
3
import { createApp } from '@app/createApp'
4
import { buildPrisma, cleanupTestDb, createTestUser, generateTestToken, expectPublicUser } from '../test-helper'
5

6
const app = createApp()
7
const db = buildPrisma()
8

9
afterAll(() => db.$disconnect())
10
beforeEach(() => cleanupTestDb(db))
11

12
describe('GET /users/me', () => {
13
  it('returns the authenticated user', async () => {
14
    const user = await createTestUser(db, { email: 'me@example.com', firstName: 'Pedro' })
15
    const token = generateTestToken(user.id, user.email)
16

17
    const res = await request(app)
18
      .get('/users/me')
19
      .set('Authorization', `Bearer ${token}`)
20

21
    expect(res.status).toBe(200)
22
    expect(res.body.user.email).toBe('me@example.com')
23
    expect(res.body.user.firstName).toBe('Pedro')
24
    expectPublicUser(res.body.user)
25
  })
26

27
  it('returns 401 without token', async () => {
28
    const res = await request(app).get('/users/me')
29
    expect(res.status).toBe(401)
30
  })
31
})