fix(review): run claude-cli models directly
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import { test } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
|
||||
import { ReviewQueue } from '../src/lib/queue.js';
|
||||
|
||||
test('newer jobs supersede queued work for the same pull request', async () => {
|
||||
const queue = new ReviewQueue();
|
||||
const ran = [];
|
||||
const superseded = [];
|
||||
|
||||
const first = queue.enqueue(
|
||||
'nirpa/hermes-agent',
|
||||
async () => ran.push('old'),
|
||||
{ dedupeKey: 'pr:86', onSuperseded: () => superseded.push('old') }
|
||||
);
|
||||
const second = queue.enqueue(
|
||||
'nirpa/hermes-agent',
|
||||
async () => ran.push('new'),
|
||||
{ dedupeKey: 'pr:86', onSuperseded: () => superseded.push('new') }
|
||||
);
|
||||
|
||||
await Promise.all([first, second]);
|
||||
assert.deepEqual(ran, ['new']);
|
||||
assert.deepEqual(superseded, ['old']);
|
||||
assert.equal(queue.pending, 0);
|
||||
});
|
||||
|
||||
test('different pull requests are not deduplicated', async () => {
|
||||
const queue = new ReviewQueue();
|
||||
const ran = [];
|
||||
|
||||
await Promise.all([
|
||||
queue.enqueue('nirpa/hermes-agent', async () => ran.push('pr-86'), { dedupeKey: 'pr:86' }),
|
||||
queue.enqueue('nirpa/hermes-agent', async () => ran.push('pr-87'), { dedupeKey: 'pr:87' })
|
||||
]);
|
||||
|
||||
assert.deepEqual(ran, ['pr-86', 'pr-87']);
|
||||
});
|
||||
|
||||
test('shared sha key deduplicates push and pull-request webhooks', async () => {
|
||||
const queue = new ReviewQueue();
|
||||
const ran = [];
|
||||
|
||||
const push = queue.enqueue(
|
||||
'nirpa/hermes-agent',
|
||||
async () => ran.push('push'),
|
||||
{ dedupeKeys: ['sha:final'] }
|
||||
);
|
||||
const pullRequest = queue.enqueue(
|
||||
'nirpa/hermes-agent',
|
||||
async () => ran.push('pull-request'),
|
||||
{ dedupeKeys: ['pr:86', 'sha:final'] }
|
||||
);
|
||||
|
||||
await Promise.all([push, pullRequest]);
|
||||
assert.deepEqual(ran, ['pull-request']);
|
||||
});
|
||||
Reference in New Issue
Block a user