mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-28 08:21:53 +00:00
- Removed duplicate `relayListLabel` import in `src/lock-ops.mjs`. - Removed duplicate `mergeRelayList` declaration in `src/lock-publisher.mjs`. - Moved `withTimeout` implementation to `src/lock-utils.mjs` and ensured it is exported. - Updated `test/utils.test.mjs` and `test/utils-async.test.mjs` to import from `src/lock-utils.mjs` where appropriate. - Added `randomInt` import in `src/lock-publisher.mjs` to fix `no-undef`. - Verified with `npm run lint` and `npm test`. Co-authored-by: PR0M3TH3AN <[email protected]>
52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
import { describe, it } from 'node:test';
|
|
import assert from 'node:assert';
|
|
import { withTimeout } from '../src/lock-utils.mjs';
|
|
|
|
describe('Async Utilities', () => {
|
|
describe('withTimeout', () => {
|
|
it('resolves when promise completes before timeout', async () => {
|
|
const result = await withTimeout(
|
|
new Promise((resolve) => setTimeout(() => resolve('success'), 10)),
|
|
200,
|
|
'Timed out'
|
|
);
|
|
assert.strictEqual(result, 'success');
|
|
});
|
|
|
|
it('rejects when promise times out', async () => {
|
|
try {
|
|
await withTimeout(
|
|
new Promise((resolve) => setTimeout(() => resolve('success'), 200)),
|
|
10,
|
|
'Operation timed out'
|
|
);
|
|
assert.fail('Should have rejected');
|
|
} catch (err) {
|
|
assert.strictEqual(err.message, 'Operation timed out');
|
|
}
|
|
});
|
|
|
|
it('clears timeout on success', async () => {
|
|
const result = await withTimeout(
|
|
Promise.resolve('fast'),
|
|
1000,
|
|
'timeout'
|
|
);
|
|
assert.strictEqual(result, 'fast');
|
|
});
|
|
|
|
it('propagates original promise rejection', async () => {
|
|
try {
|
|
await withTimeout(
|
|
Promise.reject(new Error('Original error')),
|
|
100,
|
|
'Timeout'
|
|
);
|
|
assert.fail('Should have rejected');
|
|
} catch (err) {
|
|
assert.strictEqual(err.message, 'Original error');
|
|
}
|
|
});
|
|
});
|
|
});
|