Spaces:
Paused
Paused
Download web/backend/tests/core/singleton_lock.test.ts from ejjays/nexstream-api: direct link, hf CLI and curl.
- Browser
- Download file 933 Bytes
-
https://huggingface.co/spaces/ejjays/nexstream-api/resolve/main/web/backend/tests/core/singleton_lock.test.ts
- Command line
-
hf download hf://spaces/ejjays/nexstream-api/web/backend/tests/core/singleton_lock.test.ts
-
curl -L -o singleton_lock.test.ts https://huggingface.co/spaces/ejjays/nexstream-api/resolve/main/web/backend/tests/core/singleton_lock.test.ts
933 Bytes
| import { describe, it, expect, beforeEach } from 'vitest'; | |
| import createRedisClient, { | |
| acquireSingletonLock, | |
| } from '../../src/utils/infra/redis.util.js'; | |
| describe('acquireSingletonLock', () => { | |
| beforeEach(async () => { | |
| await createRedisClient('locks').del('test:singleton'); | |
| }); | |
| it('grants the lock to the first caller only', async () => { | |
| const first = await acquireSingletonLock('test:singleton', 60); | |
| const second = await acquireSingletonLock('test:singleton', 60); | |
| const third = await acquireSingletonLock('test:singleton', 60); | |
| expect(first).toBe(true); | |
| expect(second).toBe(false); | |
| expect(third).toBe(false); | |
| }); | |
| it('uses an independent key per lock name', async () => { | |
| const lockA = await acquireSingletonLock('test:singleton', 60); | |
| const lockB = await acquireSingletonLock('test:singleton:other', 60); | |
| expect(lockA).toBe(true); | |
| expect(lockB).toBe(true); | |
| }); | |
| }); | |