Skip to content

Commit 56d65e0

Browse files
committed
test: replace openai model with MockLanguageModelV2 in seed tests.
1 parent ff9ef47 commit 56d65e0

1 file changed

Lines changed: 38 additions & 22 deletions

File tree

packages/torque/src/seed.test.ts

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { describe, expect, it, jest } from "bun:test";
1+
import { describe, expect, it } from "bun:test";
22
import {
33
random,
44
getRandomCallCount,
@@ -9,9 +9,28 @@ import { generateDataset } from "./dataset";
99
import type { IMessageSchema, IMessageSchemaContext } from "./types";
1010
import { user, assistant, times, generatedToolCall, tool } from "./schema";
1111
import { between, oneOf } from "./schema-rng";
12-
import { openai } from "@ai-sdk/openai";
12+
import { MockLanguageModelV2 } from "ai/test";
1313
import z from "zod";
1414

15+
export const mockModel = (
16+
response: { type: "text"; text: string }[] = [
17+
{
18+
type: "text",
19+
text: "mock response",
20+
},
21+
]
22+
) => {
23+
return new MockLanguageModelV2({
24+
doGenerate: async () => ({
25+
content: response,
26+
finishReason: "stop",
27+
usage: { inputTokens: 10, outputTokens: 20, totalTokens: 30 },
28+
warnings: [],
29+
rawResponse: { headers: {} },
30+
}),
31+
});
32+
};
33+
1534
describe("seed tracking", () => {
1635
it("tracks random call count", async () => {
1736
await withSeed(42, async () => {
@@ -88,7 +107,7 @@ describe("seed skewing detection", () => {
88107

89108
// The error is caught by the batch processor, so it returns an empty array
90109
const result = await generateDataset(skewedSchema, {
91-
model: openai("gpt-4"),
110+
model: mockModel(),
92111
count: 1,
93112
seed: 42,
94113
output: "/tmp/seed-skew-test.jsonl",
@@ -119,7 +138,7 @@ describe("seed skewing detection", () => {
119138

120139
// Should fail with empty result due to skewing at second message
121140
const result = await generateDataset(skewedSchema, {
122-
model: openai("gpt-4"),
141+
model: mockModel(),
123142
count: 1,
124143
seed: 42,
125144
output: "/tmp/seed-skew-step-test.jsonl",
@@ -141,7 +160,7 @@ describe("seed skewing detection", () => {
141160

142161
// This should not throw
143162
const result = await generateDataset(consistentSchema, {
144-
model: openai("gpt-4"),
163+
model: mockModel(),
145164
count: 1,
146165
seed: 42,
147166
output: "/tmp/seed-consistent-test.jsonl",
@@ -162,7 +181,7 @@ describe("seed skewing detection", () => {
162181

163182
// This should not throw because oneOf uses random() consistently
164183
const result = await generateDataset(schemaWithOneOf, {
165-
model: openai("gpt-4"),
184+
model: mockModel(),
166185
count: 1,
167186
seed: 42,
168187
output: "/tmp/seed-oneof-test.jsonl",
@@ -181,7 +200,7 @@ describe("seed does not skew", () => {
181200
];
182201

183202
const result = await generateDataset(schema, {
184-
model: openai("gpt-4"),
203+
model: mockModel(),
185204
count: 1,
186205
seed: 42,
187206
output: "/tmp/seed-oneof-test.jsonl",
@@ -197,7 +216,7 @@ describe("seed does not skew", () => {
197216
];
198217

199218
const result = await generateDataset(schema, {
200-
model: openai("gpt-4"),
219+
model: mockModel(),
201220
count: 1,
202221
seed: 42,
203222
output: "/tmp/seed-times-test.jsonl",
@@ -207,22 +226,14 @@ describe("seed does not skew", () => {
207226

208227
it("flattens nested schema arrays produced by helpers", async () => {
209228
const schema: IMessageSchema = async () => [
210-
[
211-
user({ content: "Hello" }),
212-
[
213-
assistant({ content: "Hi there" }),
214-
],
215-
],
229+
[user({ content: "Hello" }), [assistant({ content: "Hi there" })]],
216230
times(2, [
217-
[
218-
user({ content: "Nested" }),
219-
assistant({ content: "Response" }),
220-
],
231+
[user({ content: "Nested" }), assistant({ content: "Response" })],
221232
]),
222233
];
223234

224235
const result = await generateDataset(schema, {
225-
model: openai("gpt-4"),
236+
model: mockModel(),
226237
count: 1,
227238
seed: 7,
228239
output: "/tmp/seed-nested-schema-test.jsonl",
@@ -241,7 +252,7 @@ describe("seed does not skew", () => {
241252
};
242253

243254
const result = await generateDataset(schema, {
244-
model: openai("gpt-4"),
255+
model: mockModel(),
245256
count: 1,
246257
seed: 42,
247258
output: "/tmp/seed-between-test.jsonl",
@@ -257,7 +268,7 @@ describe("seed does not skew", () => {
257268
];
258269

259270
const result = await generateDataset(schema, {
260-
model: openai("gpt-4"),
271+
model: mockModel(),
261272
count: 1,
262273
seed: 42,
263274
output: "/tmp/seed-mixed-test.jsonl",
@@ -286,7 +297,12 @@ describe("seed does not skew", () => {
286297
};
287298

288299
const result = await generateDataset(singleAsyncNoResultYetAsk(), {
289-
model: openai("gpt-4.1-nano"),
300+
model: mockModel([
301+
{
302+
type: "text",
303+
text: JSON.stringify({ name: "tool1" }),
304+
},
305+
]),
290306
count: 1,
291307
seed: 42,
292308
output: "/tmp/seed-generated-tool-call-test.jsonl",

0 commit comments

Comments
 (0)