mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
fix(tests): improve test reliability and remove unused deps
- Add --test-timeout=30000 to prevent test suite hanging - Skip build_verification.test.mjs when dist/ is absent - Replace setTimeout with mocked Date.now in memory-cache expiry test - Replace wait(30) with setImmediate flush in scheduler smoke test - Remove unused @playwright/test devDependency https://claude.ai/code/session_01GfwUNbgeMgXreFDbsNQMsS
This commit is contained in:
4 files changed
+25
-12
No files matched your search
+1
-2
@@ -48,7 +48,7 @@
|
|||||||
"LICENSE"
|
"LICENSE"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run validate:scheduler && npm run test:integration:e2e && node --test test/*.test.mjs test/*.test.js",
|
"test": "npm run validate:scheduler && npm run test:integration:e2e && node --test --test-timeout=30000 test/*.test.mjs test/*.test.js",
|
||||||
"test:unit:lock-backend": "node --test test/lock-ops.test.mjs test/lock-ops-publish-retry.test.mjs",
|
"test:unit:lock-backend": "node --test test/lock-ops.test.mjs test/lock-ops-publish-retry.test.mjs",
|
||||||
"lock:check:daily": "node bin/torch-lock.mjs check --cadence daily",
|
"lock:check:daily": "node bin/torch-lock.mjs check --cadence daily",
|
||||||
"lock:check:weekly": "node bin/torch-lock.mjs check --cadence weekly",
|
"lock:check:weekly": "node bin/torch-lock.mjs check --cadence weekly",
|
||||||
@@ -76,7 +76,6 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^10.0.1",
|
"@eslint/js": "^10.0.1",
|
||||||
"@playwright/test": "^1.58.2",
|
|
||||||
"eslint": "^10.0.0",
|
"eslint": "^10.0.0",
|
||||||
"globals": "^17.3.0"
|
"globals": "^17.3.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import assert from 'node:assert';
|
|||||||
|
|
||||||
const DIST_DIR = path.resolve('dist');
|
const DIST_DIR = path.resolve('dist');
|
||||||
|
|
||||||
test('Build artifacts verification', async (t) => {
|
test('Build artifacts verification', { skip: !fs.existsSync(DIST_DIR) && 'dist/ not found — run npm run build first' }, async (t) => {
|
||||||
await t.test('dist directory exists', () => {
|
await t.test('dist directory exists', () => {
|
||||||
assert.strictEqual(fs.existsSync(DIST_DIR), true, 'dist directory should exist');
|
assert.strictEqual(fs.existsSync(DIST_DIR), true, 'dist directory should exist');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -23,15 +23,24 @@ test('stores runtime events in signer/session namespace and clears scope', () =>
|
|||||||
assert.equal(cache.getRecentRuntimeEvents({ signer_id: 'alice', session_id: 's2' }).length, 1);
|
assert.equal(cache.getRecentRuntimeEvents({ signer_id: 'alice', session_id: 's2' }).length, 1);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('expires runtime events and records expiration metrics', async () => {
|
test('expires runtime events and records expiration metrics', () => {
|
||||||
const cache = createMemoryCache();
|
const originalNow = Date.now;
|
||||||
cache.setRuntimeEvent({ signer_id: 'alice', session_id: 's1' }, { id: 1 }, 1);
|
try {
|
||||||
|
const start = originalNow.call(Date);
|
||||||
|
Date.now = () => start;
|
||||||
|
|
||||||
await new Promise((resolve) => setTimeout(resolve, 10));
|
const cache = createMemoryCache();
|
||||||
|
cache.setRuntimeEvent({ signer_id: 'alice', session_id: 's1' }, { id: 1 }, 1);
|
||||||
|
|
||||||
assert.equal(cache.getRecentRuntimeEvents({ signer_id: 'alice', session_id: 's1' }).length, 0);
|
// Advance mocked clock past the 1ms TTL
|
||||||
const metrics = cache.getMetrics();
|
Date.now = () => start + 10;
|
||||||
assert.equal(metrics.runtime_events_expired, 1);
|
|
||||||
|
assert.equal(cache.getRecentRuntimeEvents({ signer_id: 'alice', session_id: 's1' }).length, 0);
|
||||||
|
const metrics = cache.getMetrics();
|
||||||
|
assert.equal(metrics.runtime_events_expired, 1);
|
||||||
|
} finally {
|
||||||
|
Date.now = originalNow;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('enforces LRU bounds and tracks eviction metrics', () => {
|
test('enforces LRU bounds and tracks eviction metrics', () => {
|
||||||
|
|||||||
+7
-2
@@ -15,7 +15,12 @@ import {
|
|||||||
SYNTHETIC_EVENTS,
|
SYNTHETIC_EVENTS,
|
||||||
} from './fixtures/memory-fixtures.js';
|
} from './fixtures/memory-fixtures.js';
|
||||||
|
|
||||||
const wait = (ms = 0) => new Promise((resolve) => setTimeout(resolve, ms));
|
/** Drain the async job queue without wall-clock dependency. */
|
||||||
|
const flushAsync = async () => {
|
||||||
|
for (let i = 0; i < 10; i++) {
|
||||||
|
await new Promise((resolve) => setImmediate(resolve));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const withMockedNow = async (now, run) => {
|
const withMockedNow = async (now, run) => {
|
||||||
const originalNow = Date.now;
|
const originalNow = Date.now;
|
||||||
@@ -265,7 +270,7 @@ test('scheduler smoke test handles mocked clock and lock contention', async () =
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
await wait(30);
|
await flushAsync();
|
||||||
scheduler.stop();
|
scheduler.stop();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user