const dotenv = require("dotenv"); const { generateAccesToken, generateRefreshToken, generatePermtoken, verifyToken} = require("./auth"); dotenv.config(); describe('Auth.js Tests', () => { const user = { id: 1, name: 'Test User' }; test('generateAccesToken should return a valid JWT', () => { const token = generateAccesToken(user); const decoded = verifyToken(token); expect(decoded.user).toEqual(user); }); test('generateRefreshToken should return a valid JWT', () => { const token = generateRefreshToken(user); const decoded = verifyToken(token); expect(decoded.user).toEqual(user); }); test('generatePermtoken should return a valid JWT', () => { const token = generatePermtoken(user); const decoded = verifyToken(token); expect(decoded.user).toEqual(user); }); test('verifyToken should return user for a valid token', () => { const token = generateAccesToken(user); const result = verifyToken(token); expect(result.user).toEqual(user); }); test('verifyRefreshToken should return true for a valid token', () => { const token = generateRefreshToken(user); const result = verifyToken(token); expect(result.user).toEqual(user); }); test('verifyPermtoken should return true for a valid token', () => { const token = generatePermtoken(user); const result = verifyToken(token); expect(result.user).toEqual(user); }); test('verifyToken should return false for an expired token', () => { const token = generateAccesToken(user, "1ms"); const result = verifyToken(token); expect(result.user).toEqual(undefined); }); test('verifyRefreshToken should return false for an expired token', () => { const token = generateAccesToken(user, "1ms"); const result = verifyToken(token); expect(result.user).toEqual(undefined); }); test('verifyPermtoken should return false for an expired token', () => { const token = generateAccesToken(user, "1ms"); const result = verifyToken(token); expect(result.user).toEqual(undefined); }); test('verifyToken should return false for a token with an invalid signature', () => { const token = generateAccesToken(user); const result = verifyToken(token + 'a'); expect(result).toBe(false); }); test('verifyRefreshToken should return false for a token with an invalid signature', () => { const token = generateRefreshToken(user); const result = verifyToken(token + 'a'); expect(result).toBe(false); }); test('verifyPermtoken should return false for a token with an invalid signature', () => { const token = generatePermtoken(user); const result = verifyToken(token + 'a'); expect(result).toBe(false); }); });