d056c177d3c92fbe121ee526d7bab29f7ba377eb
import { describe, it, expect, afterAll, beforeEach } from 'vitest'
import request from 'supertest'
import { createApp } from '@app/createApp'
import {
buildPrisma,
cleanupTestDb,
createTestUser,
generateTestToken,
expectPublicUser,
} from '../test-helper'
const app = createApp()
const db = buildPrisma()
afterAll(() => db.$disconnect())
beforeEach(() => cleanupTestDb(db))
describe('POST /users/me/onboarding/complete', () => {
it('records the completion and returns the public user', async () => {
const user = await createTestUser(db, { email: 'onboarding@example.com' })
const token = generateTestToken(user.id, user.email)
expect(user.onboardingSeenAt).toBeNull()
const res = await request(app)
.post('/users/me/onboarding/complete')
.set('Authorization', `Bearer ${token}`)
expect(res.status).toBe(200)
expect(res.body.user.onboardingSeenAt).not.toBeNull()
expectPublicUser(res.body.user)
const dbUser = await db.user.findUnique({ where: { id: user.id } })
expect(dbUser!.onboardingSeenAt).not.toBeNull()
})
it('returns 401 without a token', async () => {
const res = await request(app).post('/users/me/onboarding/complete')
expect(res.status).toBe(401)