Skip to content

Commit 8b8d4fa

Browse files
authored
test: add regression test for double counting bug (anomalyco#21053)
1 parent 6253ef0 commit 8b8d4fa

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

packages/opencode/test/session/compaction.test.ts

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1080,7 +1080,7 @@ describe("session.getUsage", () => {
10801080
expect(result.tokens.cache.read).toBe(200)
10811081
})
10821082

1083-
test("handles reasoning tokens", () => {
1083+
test("separates reasoning tokens from output tokens", () => {
10841084
const model = createModel({ context: 100_000, output: 32_000 })
10851085
const result = Session.getUsage({
10861086
model,
@@ -1092,7 +1092,35 @@ describe("session.getUsage", () => {
10921092
},
10931093
})
10941094

1095+
expect(result.tokens.input).toBe(1000)
1096+
expect(result.tokens.output).toBe(400)
10951097
expect(result.tokens.reasoning).toBe(100)
1098+
expect(result.tokens.total).toBe(1500)
1099+
})
1100+
1101+
test("does not double count reasoning tokens in cost", () => {
1102+
const model = createModel({
1103+
context: 100_000,
1104+
output: 32_000,
1105+
cost: {
1106+
input: 0,
1107+
output: 15,
1108+
cache: { read: 0, write: 0 },
1109+
},
1110+
})
1111+
const result = Session.getUsage({
1112+
model,
1113+
usage: {
1114+
inputTokens: 0,
1115+
outputTokens: 1_000_000,
1116+
totalTokens: 1_000_000,
1117+
reasoningTokens: 250_000,
1118+
},
1119+
})
1120+
1121+
expect(result.tokens.output).toBe(750_000)
1122+
expect(result.tokens.reasoning).toBe(250_000)
1123+
expect(result.cost).toBe(15)
10961124
})
10971125

10981126
test("handles undefined optional values gracefully", () => {

0 commit comments

Comments
 (0)