Add initial VibeGuard browser extension
This commit is contained in:
parent
f251f0f8ce
commit
9c65a61ebb
43 changed files with 125275 additions and 2 deletions
23
tests/queue.test.ts
Normal file
23
tests/queue.test.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { describe, expect, it } from "vitest";
|
||||
import { InferenceQueue } from "../src/inference/queue";
|
||||
import type { InferenceRequest } from "../src/shared/types";
|
||||
|
||||
const request = (id: string, priority: 0 | 1 | 2 | 3): InferenceRequest => ({
|
||||
id, text: `text ${id}`, site: "reddit", priority, requestId: id, navigationId: "nav"
|
||||
});
|
||||
|
||||
describe("InferenceQueue", () => {
|
||||
it("batches requests and caches equivalent text", async () => {
|
||||
let calls = 0;
|
||||
const queue = new InferenceQueue(async (requests) => {
|
||||
calls += 1;
|
||||
return requests.map((item) => ({ requestId: item.requestId, id: item.id, textHash: "hash", label: "toxic" as const, probability: .9, navigationId: item.navigationId }));
|
||||
}, undefined, 10, 8, 0);
|
||||
const first = await queue.enqueue(request("a", 0));
|
||||
const second = await queue.enqueue({ ...request("b", 0), text: "text a" });
|
||||
expect(first.probability).toBe(.9);
|
||||
expect(second.requestId).toBe("b");
|
||||
expect(calls).toBe(1);
|
||||
expect(queue.cacheSize).toBe(1);
|
||||
});
|
||||
});
|
||||
Loading…
Reference in a new issue