Skip to content

Commit 21480b7

Browse files
author
morningstar
committed
test(user): add unit tests for UserUtils token generation and verification
1 parent 6166098 commit 21480b7

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// set all required env vars before importing modules that parse process.env
2+
process.env.PORT = process.env.PORT || '5000'
3+
process.env.HOST = process.env.HOST || 'localhost'
4+
process.env.APP_ENV = process.env.APP_ENV || 'test'
5+
process.env.DEBUG = 'true'
6+
process.env.Your_Name = 'test'
7+
process.env.YOUR_EMAIL = 'test@example.com'
8+
process.env.YOUR_PASSWORD = 'password'
9+
process.env.LOG_LEVEL = 'debug'
10+
process.env.GROQ_API_KEY = 'x'
11+
process.env.CORS_ENABLED = 'true'
12+
process.env.RATE_LIMIT_ENABLED = 'false'
13+
process.env.ENABLE_RATE_LIMITING = 'false'
14+
process.env.JWT_SECRET = 'test-secret'
15+
process.env.JWT_EXPIRATION = '7d'
16+
process.env.DB_HOST = 'localhost'
17+
process.env.DB_PORT = '27017'
18+
process.env.DB_NAME = 'testdb'
19+
process.env.DB_USER = 'user'
20+
process.env.DB_PASSWORD = 'pass'
21+
process.env.DB_CONNECTION_STRING = 'mongodb://localhost:27017/test'
22+
process.env.REDIS_HOST = 'localhost'
23+
process.env.REDIS_PORT = '6379'
24+
process.env.REDIS_PASSWORD = ''
25+
process.env.UPLOAD_DIR = '/tmp'
26+
process.env.TEMP_DIR = '/tmp'
27+
process.env.MAX_FILE_SIZE = '100000'
28+
process.env.ENCRYPTION_KEY = 'enc'
29+
process.env.SERVER_HMAC_SECRET = 'hmac'
30+
process.env.BACKEND_URL = 'http://localhost:5000'
31+
32+
import UserUtils from '../user.utils'
33+
34+
describe('UserUtils token helpers', () => {
35+
test('generateToken and verifyToken roundtrip', () => {
36+
const payload = { userId: 'abc123', email: 'a@b.com', role: 'user' }
37+
const token = UserUtils.generateToken(payload)
38+
const decoded = UserUtils.verifyToken(token)
39+
expect(decoded).not.toBeNull()
40+
expect(decoded?.email).toEqual(payload.email)
41+
expect(decoded?._id).toEqual(payload.userId)
42+
expect(decoded?.role).toEqual(payload.role)
43+
})
44+
45+
test('verifyToken returns null for invalid token', () => {
46+
const decoded = UserUtils.verifyToken('invalid.token')
47+
expect(decoded).toBeNull()
48+
})
49+
})

0 commit comments

Comments
 (0)