import { describe, expect, it } from 'vitest' import { buildGenericAIPageFingerprintFallback, genericAIPageLooksAuthenticated, } from './generic-ai-auth' describe('generic ai auth detection', () => { it('treats deepseek home as authenticated when credential storage exists', () => { expect( genericAIPageLooksAuthenticated('https://chat.deepseek.com/', { displayName: null, avatarUrl: null, fingerprint: 'local:userToken=masked', credentialFingerprint: 'local:userToken=masked', currentPath: '/', strongAuthSignalCount: 0, loginSignalCount: 0, loggedOutSignalCount: 0, challengeSignalCount: 0, }), ).toBe(true) }) it('does not use a non-auth fingerprint as a fallback without strong ui signals', () => { expect( buildGenericAIPageFingerprintFallback('deepseek', { displayName: null, avatarUrl: null, fingerprint: 'local:user_unique_id=123', credentialFingerprint: null, currentPath: '/', strongAuthSignalCount: 0, loginSignalCount: 0, loggedOutSignalCount: 0, challengeSignalCount: 0, }), ).toBeNull() }) it('builds a stable fingerprint from credential storage when cookies are absent', () => { expect( buildGenericAIPageFingerprintFallback('deepseek', { displayName: null, avatarUrl: null, fingerprint: 'local:user_unique_id=123', credentialFingerprint: 'local:userToken=masked', currentPath: '/', strongAuthSignalCount: 0, loginSignalCount: 0, loggedOutSignalCount: 0, challengeSignalCount: 0, }), ).toBe('deepseek-session:local:userToken=masked') }) })