swadhinbiswas feat: OpenCodeHub v1.1.0 - Enterprise Features & Storage Adapters · 2/15/2026
719a1cb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import { describe, it, expect, beforeAll } from 'vitest';
let extractBearerToken: (authHeader: string | null) => string | null;
let validatePasswordStrength: (password: string) => { valid: boolean; errors: string[] };
beforeAll(async () => {
process.env.JWT_SECRET = process.env.JWT_SECRET || "unit-test-jwt-secret-minimum-32-chars";
const auth = await import("@/lib/auth");
extractBearerToken = auth.extractBearerToken;
validatePasswordStrength = auth.validatePasswordStrength;
});
describe('Auth Library', () => {
describe('extractBearerToken', () => {
it('should return null for null header', () => {
expect(extractBearerToken(null)).toBeNull();
});
it('should return null for invalid format', () => {
expect(extractBearerToken('Basic token')).toBeNull();
expect(extractBearerToken('Bearer')).toBeNull();
});
it('should return token for valid Bearer header', () => {
expect(extractBearerToken('Bearer mytoken')).toBe('mytoken');
expect(extractBearerToken('Bearer mytoken')).toBeNull(); // Strict split by space? Implementation uses split(' ') length 2.
});
});
describe('validatePasswordStrength', () => {
it('should fail for short passwords', () => {
const result = validatePasswordStrength('Short1a');
expect(result.valid).toBe(false);
expect(result.errors).toContain('Password must be at least 8 characters long');
});
it('should fail for missing complexity', () => {
const result = validatePasswordStrength('alllowercase1');
expect(result.valid).toBe(false);
expect(result.errors).toContain('Password must contain at least one uppercase letter');
});
it('should pass for valid password', () => {
const result = validatePasswordStrength('ValidPass1');
expect(result.valid).toBe(true);
expect(result.errors).toHaveLength(0);
});
});
});