Files
TORCH/test/utils-async.test.mjs
T
google-labs-jules[bot]andPR0M3TH3AN 141b317764 fix(lint): resolve duplicate identifiers and missing exports
- 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]>
2026-02-20 21:58:00 +00:00

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');
}
});
});
});