49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { decodeSignature } from '../../lib/antigravity/signature-utils';
|
|
|
|
describe('decodeSignature', () => {
|
|
describe('Base64 decoding', () => {
|
|
it('should correctly decode valid Base64 signature', () => {
|
|
const original = 'valid-thinking-signature-12345';
|
|
const base64 = Buffer.from(original).toString('base64');
|
|
expect(decodeSignature(base64)).toBe(original);
|
|
});
|
|
|
|
it('should decode signature with special characters', () => {
|
|
const original = 'sig+with/special=chars==';
|
|
const base64 = Buffer.from(original).toString('base64');
|
|
expect(decodeSignature(base64)).toBe(original);
|
|
});
|
|
|
|
it('should decode UTF-8 Chinese signature', () => {
|
|
const original = '思考签名-测试';
|
|
const base64 = Buffer.from(original).toString('base64');
|
|
expect(decodeSignature(base64)).toBe(original);
|
|
});
|
|
});
|
|
|
|
describe('Non-Base64 passthrough', () => {
|
|
it('should return non-Base64 strings as-is', () => {
|
|
expect(decodeSignature('plain-text-signature')).toBe('plain-text-signature');
|
|
});
|
|
|
|
it('should handle strings with invalid Base64 characters', () => {
|
|
expect(decodeSignature('not!valid@base64#')).toBe('not!valid@base64#');
|
|
});
|
|
});
|
|
|
|
describe('Empty value handling', () => {
|
|
it('should return undefined for null input', () => {
|
|
expect(decodeSignature(null)).toBeUndefined();
|
|
});
|
|
|
|
it('should return undefined for undefined input', () => {
|
|
expect(decodeSignature(undefined)).toBeUndefined();
|
|
});
|
|
|
|
it('should return undefined for empty string', () => {
|
|
expect(decodeSignature('')).toBeUndefined();
|
|
});
|
|
});
|
|
});
|