test: rozšíření serverových testů
ci/woodpecker/push/workflow Pipeline failed

This commit is contained in:
2026-04-29 15:42:08 +02:00
parent 1e1e23df80
commit 64d85036fd
29 changed files with 1250 additions and 10 deletions
+62
View File
@@ -0,0 +1,62 @@
import { generateToken, verify, getLogin, getTrusted } from '../auth';
const VALID_SECRET = 'test-jwt-secret-ktery-ma-alespon-32-znaku';
const SHORT_SECRET = 'kratky';
beforeEach(() => {
process.env.JWT_SECRET = VALID_SECRET;
});
test('generateToken → getLogin vrátí stejný login', () => {
const token = generateToken('jannovak');
expect(getLogin(token)).toBe('jannovak');
});
test('getTrusted vrátí false, pokud nebyl příznak předán', () => {
const token = generateToken('jannovak');
expect(getTrusted(token)).toBe(false);
});
test('getTrusted vrátí true, pokud byl příznak předán jako true', () => {
const token = generateToken('jannovak', true);
expect(getTrusted(token)).toBe(true);
});
test('verify vrátí true pro platný token', () => {
const token = generateToken('jannovak');
expect(verify(token)).toBe(true);
});
test('verify vrátí false pro token podepsaný jiným secretem', () => {
const token = generateToken('jannovak');
process.env.JWT_SECRET = 'uplne-jiny-secret-ktery-ma-take-32-znaku';
expect(verify(token)).toBe(false);
});
test('verify vrátí false pro pozměněný token', () => {
const token = generateToken('jannovak');
const tampered = token.slice(0, -5) + 'xxxxx';
expect(verify(tampered)).toBe(false);
});
test('generateToken vyhodí chybu pro chybějící JWT_SECRET', () => {
delete process.env.JWT_SECRET;
expect(() => generateToken('jannovak')).toThrow('JWT_SECRET');
});
test('generateToken vyhodí chybu pro příliš krátký JWT_SECRET', () => {
process.env.JWT_SECRET = SHORT_SECRET;
expect(() => generateToken('jannovak')).toThrow('32');
});
test('generateToken vyhodí chybu pro prázdný login', () => {
expect(() => generateToken('')).toThrow();
});
test('generateToken vyhodí chybu pro login obsahující jen mezery', () => {
expect(() => generateToken(' ')).toThrow();
});
test('getLogin vyhodí chybu pro chybějící token', () => {
expect(() => getLogin(undefined)).toThrow();
});