mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 16:01:54 +00:00
- Rewrote `src/lock-publisher.mjs` to ensure clean imports and no duplicate declarations of `withTimeout`. - This addresses the lint error `Identifier 'withTimeout' has already been declared` seen in CI. - Verified lint passes locally. 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/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');
|
|
}
|
|
});
|
|
});
|
|
});
|