|
| 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