test: add generateId fallback tests for SSR environments
Cover all branches of generateId function: - window.crypto (browser) - globalThis.crypto (Node.js) - timestamp fallback (no crypto) helpers.ts coverage: 96.96% lines, 78.72% branches 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
e488fa3299
commit
b36d71abcd
|
|
@ -391,6 +391,43 @@ describe('ID Generation', () => {
|
|||
expect(typeof id).toBe('string');
|
||||
expect(id.length).toBeGreaterThan(0);
|
||||
});
|
||||
|
||||
it('should use window.crypto when available', () => {
|
||||
const id = generateId();
|
||||
expect(id).toBeDefined();
|
||||
expect(id.length).toBeGreaterThan(5);
|
||||
});
|
||||
|
||||
it('should fallback to globalThis.crypto when window.crypto is unavailable', () => {
|
||||
const originalWindow = global.window;
|
||||
// @ts-ignore
|
||||
delete global.window;
|
||||
|
||||
const id = generateId();
|
||||
expect(id).toBeDefined();
|
||||
expect(typeof id).toBe('string');
|
||||
|
||||
global.window = originalWindow;
|
||||
});
|
||||
|
||||
it('should fallback to timestamp when no crypto is available', () => {
|
||||
const originalWindow = global.window;
|
||||
const originalGlobalThis = global.globalThis;
|
||||
const originalCrypto = globalThis.crypto;
|
||||
|
||||
// @ts-ignore
|
||||
delete global.window;
|
||||
// @ts-ignore
|
||||
delete globalThis.crypto;
|
||||
|
||||
const id = generateId();
|
||||
expect(id).toBeDefined();
|
||||
expect(typeof id).toBe('string');
|
||||
expect(id.length).toBeGreaterThan(0);
|
||||
|
||||
global.window = originalWindow;
|
||||
globalThis.crypto = originalCrypto;
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user