Skip to content

Commit 403ad4b

Browse files
committed
fix type errors
1 parent a286e59 commit 403ad4b

File tree

2 files changed

+79
-79
lines changed

2 files changed

+79
-79
lines changed
Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
import type { OpenRouterChatSettings } from './types/openrouter-chat-settings';
1+
import type { OpenRouterChatSettings } from './types/openrouter-chat-settings'
22

33
import {
44
convertReadableStreamToArray,
55
StreamingTestServer,
6-
} from '@ai-sdk/provider-utils/test';
7-
import { describe, expect, it } from 'vitest';
6+
} from '@ai-sdk/provider-utils/test'
7+
import { describe, expect, it } from 'bun:test'
88

9-
import { OpenRouterChatLanguageModel } from './openrouter-chat-language-model';
9+
import { OpenRouterChatLanguageModel } from './openrouter-chat-language-model'
1010

1111
describe('OpenRouter Streaming Usage Accounting', () => {
1212
const server = new StreamingTestServer(
13-
'https://api.openrouter.ai/chat/completions',
14-
);
13+
'https://api.openrouter.ai/chat/completions'
14+
)
1515

16-
server.setupTestEnvironment();
16+
server.setupTestEnvironment()
1717

1818
function prepareStreamResponse(includeUsage = true) {
1919
server.responseChunks = [
2020
`data: {"id":"test-id","model":"test-model","choices":[{"delta":{"content":"Hello"},"index":0}]}\n\n`,
2121
`data: {"choices":[{"finish_reason":"stop","index":0}]}\n\n`,
22-
];
22+
]
2323

2424
if (includeUsage) {
2525
server.responseChunks.push(
26-
`data: {"usage":{"prompt_tokens":10,"prompt_tokens_details":{"cached_tokens":5},"completion_tokens":20,"completion_tokens_details":{"reasoning_tokens":8},"total_tokens":30,"cost":0.0015},"choices":[]}\n\n`,
27-
);
26+
`data: {"usage":{"prompt_tokens":10,"prompt_tokens_details":{"cached_tokens":5},"completion_tokens":20,"completion_tokens_details":{"reasoning_tokens":8},"total_tokens":30,"cost":0.0015},"choices":[]}\n\n`
27+
)
2828
}
2929

30-
server.responseChunks.push('data: [DONE]\n\n');
30+
server.responseChunks.push('data: [DONE]\n\n')
3131
}
3232

3333
it('should include stream_options.include_usage in request when enabled', async () => {
34-
prepareStreamResponse();
34+
prepareStreamResponse()
3535

3636
// Create model with usage accounting enabled
3737
const settings: OpenRouterChatSettings = {
3838
usage: { include: true },
39-
};
39+
}
4040

4141
const model = new OpenRouterChatLanguageModel('test-model', settings, {
4242
provider: 'openrouter.chat',
4343
url: () => 'https://api.openrouter.ai/chat/completions',
4444
headers: () => ({}),
4545
compatibility: 'strict',
4646
fetch: global.fetch,
47-
});
47+
})
4848

4949
// Call the model with streaming
5050
await model.doStream({
@@ -57,32 +57,32 @@ describe('OpenRouter Streaming Usage Accounting', () => {
5757
],
5858
maxTokens: 100,
5959
inputFormat: 'messages',
60-
});
60+
})
6161

6262
// Verify stream options
63-
const requestBody = await server.getRequestBodyJson();
64-
expect(requestBody).toBeDefined();
65-
expect(requestBody.stream).toBe(true);
63+
const requestBody = await server.getRequestBodyJson()
64+
expect(requestBody).toBeDefined()
65+
expect(requestBody.stream).toBe(true)
6666
expect(requestBody.stream_options).toEqual({
6767
include_usage: true,
68-
});
69-
});
68+
})
69+
})
7070

7171
it('should include provider-specific metadata in finish event when usage accounting is enabled', async () => {
72-
prepareStreamResponse(true);
72+
prepareStreamResponse(true)
7373

7474
// Create model with usage accounting enabled
7575
const settings: OpenRouterChatSettings = {
7676
usage: { include: true },
77-
};
77+
}
7878

7979
const model = new OpenRouterChatLanguageModel('test-model', settings, {
8080
provider: 'openrouter.chat',
8181
url: () => 'https://api.openrouter.ai/chat/completions',
8282
headers: () => ({}),
8383
compatibility: 'strict',
8484
fetch: global.fetch,
85-
});
85+
})
8686

8787
// Call the model with streaming
8888
const result = await model.doStream({
@@ -95,46 +95,46 @@ describe('OpenRouter Streaming Usage Accounting', () => {
9595
],
9696
maxTokens: 100,
9797
inputFormat: 'messages',
98-
});
98+
})
9999

100100
// Read all chunks from the stream
101-
const chunks = await convertReadableStreamToArray(result.stream);
101+
const chunks = await convertReadableStreamToArray(result.stream)
102102

103103
// Find the finish chunk
104-
const finishChunk = chunks.find((chunk) => chunk.type === 'finish');
105-
expect(finishChunk).toBeDefined();
104+
const finishChunk = chunks.find((chunk) => chunk.type === 'finish')
105+
expect(finishChunk).toBeDefined()
106106

107107
// Verify metadata is included
108-
expect(finishChunk?.providerMetadata).toBeDefined();
109-
const openrouterData = finishChunk?.providerMetadata?.openrouter;
110-
expect(openrouterData).toBeDefined();
108+
expect(finishChunk?.providerMetadata).toBeDefined()
109+
const openrouterData = finishChunk?.providerMetadata?.openrouter
110+
expect(openrouterData).toBeDefined()
111111

112-
const usage = openrouterData?.usage;
112+
const usage = openrouterData?.usage
113113
expect(usage).toMatchObject({
114114
promptTokens: 10,
115115
completionTokens: 20,
116116
totalTokens: 30,
117117
cost: 0.0015,
118118
promptTokensDetails: { cachedTokens: 5 },
119119
completionTokensDetails: { reasoningTokens: 8 },
120-
});
121-
});
120+
})
121+
})
122122

123123
it('should not include provider-specific metadata when usage accounting is disabled', async () => {
124-
prepareStreamResponse(false);
124+
prepareStreamResponse(false)
125125

126126
// Create model with usage accounting disabled
127127
const settings: OpenRouterChatSettings = {
128128
// No usage property
129-
};
129+
}
130130

131131
const model = new OpenRouterChatLanguageModel('test-model', settings, {
132132
provider: 'openrouter.chat',
133133
url: () => 'https://api.openrouter.ai/chat/completions',
134134
headers: () => ({}),
135135
compatibility: 'strict',
136136
fetch: global.fetch,
137-
});
137+
})
138138

139139
// Call the model with streaming
140140
const result = await model.doStream({
@@ -147,16 +147,16 @@ describe('OpenRouter Streaming Usage Accounting', () => {
147147
],
148148
maxTokens: 100,
149149
inputFormat: 'messages',
150-
});
150+
})
151151

152152
// Read all chunks from the stream
153-
const chunks = await convertReadableStreamToArray(result.stream);
153+
const chunks = await convertReadableStreamToArray(result.stream)
154154

155155
// Find the finish chunk
156-
const finishChunk = chunks.find((chunk) => chunk.type === 'finish');
157-
expect(finishChunk).toBeDefined();
156+
const finishChunk = chunks.find((chunk) => chunk.type === 'finish')
157+
expect(finishChunk).toBeDefined()
158158

159159
// Verify that provider metadata is not included
160-
expect(finishChunk?.providerMetadata?.openrouter).toBeUndefined();
161-
});
162-
});
160+
expect(finishChunk?.providerMetadata?.openrouter).toBeUndefined()
161+
})
162+
})

packages/internal/src/openrouter-ai-sdk/openrouter-usage-accounting.test.ts

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
import type { OpenRouterChatSettings } from './types/openrouter-chat-settings';
1+
import type { OpenRouterChatSettings } from './types/openrouter-chat-settings'
22

3-
import { JsonTestServer } from '@ai-sdk/provider-utils/test';
4-
import { describe, expect, it } from 'vitest';
3+
import { JsonTestServer } from '@ai-sdk/provider-utils/test'
4+
import { describe, expect, it } from 'bun:test'
55

6-
import { OpenRouterChatLanguageModel } from './openrouter-chat-language-model';
6+
import { OpenRouterChatLanguageModel } from './openrouter-chat-language-model'
77

88
describe('OpenRouter Usage Accounting', () => {
99
const server = new JsonTestServer(
10-
'https://api.openrouter.ai/chat/completions',
11-
);
10+
'https://api.openrouter.ai/chat/completions'
11+
)
1212

13-
server.setupTestEnvironment();
13+
server.setupTestEnvironment()
1414

1515
function prepareJsonResponse(includeUsage = true) {
1616
server.responseBodyJson = {
@@ -40,24 +40,24 @@ describe('OpenRouter Usage Accounting', () => {
4040
cost: 0.0015,
4141
}
4242
: undefined,
43-
};
43+
}
4444
}
4545

4646
it('should include usage parameter in the request when enabled', async () => {
47-
prepareJsonResponse();
47+
prepareJsonResponse()
4848

4949
// Create model with usage accounting enabled
5050
const settings: OpenRouterChatSettings = {
5151
usage: { include: true },
52-
};
52+
}
5353

5454
const model = new OpenRouterChatLanguageModel('test-model', settings, {
5555
provider: 'openrouter.chat',
5656
url: () => 'https://api.openrouter.ai/chat/completions',
5757
headers: () => ({}),
5858
compatibility: 'strict',
5959
fetch: global.fetch,
60-
});
60+
})
6161

6262
// Call the model
6363
await model.doGenerate({
@@ -70,30 +70,30 @@ describe('OpenRouter Usage Accounting', () => {
7070
],
7171
maxTokens: 100,
7272
inputFormat: 'messages',
73-
});
73+
})
7474

7575
// Check request contains usage parameter
76-
const requestBody = await server.getRequestBodyJson();
77-
expect(requestBody).toBeDefined();
78-
expect(requestBody).toHaveProperty('usage');
79-
expect(requestBody.usage).toEqual({ include: true });
80-
});
76+
const requestBody = await server.getRequestBodyJson()
77+
expect(requestBody).toBeDefined()
78+
expect(requestBody).toHaveProperty('usage')
79+
expect(requestBody.usage).toEqual({ include: true })
80+
})
8181

8282
it('should include provider-specific metadata in response when usage accounting is enabled', async () => {
83-
prepareJsonResponse();
83+
prepareJsonResponse()
8484

8585
// Create model with usage accounting enabled
8686
const settings: OpenRouterChatSettings = {
8787
usage: { include: true },
88-
};
88+
}
8989

9090
const model = new OpenRouterChatLanguageModel('test-model', settings, {
9191
provider: 'openrouter.chat',
9292
url: () => 'https://api.openrouter.ai/chat/completions',
9393
headers: () => ({}),
9494
compatibility: 'strict',
9595
fetch: global.fetch,
96-
});
96+
})
9797

9898
// Call the model
9999
const result = await model.doGenerate({
@@ -106,18 +106,18 @@ describe('OpenRouter Usage Accounting', () => {
106106
],
107107
maxTokens: 100,
108108
inputFormat: 'messages',
109-
});
109+
})
110110

111111
// Check result contains provider metadata
112-
expect(result.providerMetadata).toBeDefined();
113-
const providerData = result.providerMetadata;
112+
expect(result.providerMetadata).toBeDefined()
113+
const providerData = result.providerMetadata
114114

115115
// Check for OpenRouter usage data
116-
expect(providerData?.openrouter).toBeDefined();
117-
const openrouterData = providerData?.openrouter as Record<string, unknown>;
118-
expect(openrouterData.usage).toBeDefined();
116+
expect(providerData?.openrouter).toBeDefined()
117+
const openrouterData = providerData?.openrouter as Record<string, unknown>
118+
expect(openrouterData.usage).toBeDefined()
119119

120-
const usage = openrouterData.usage;
120+
const usage = openrouterData.usage
121121
expect(usage).toMatchObject({
122122
promptTokens: 10,
123123
completionTokens: 20,
@@ -129,24 +129,24 @@ describe('OpenRouter Usage Accounting', () => {
129129
completionTokensDetails: {
130130
reasoningTokens: 8,
131131
},
132-
});
133-
});
132+
})
133+
})
134134

135135
it('should not include provider-specific metadata when usage accounting is disabled', async () => {
136-
prepareJsonResponse();
136+
prepareJsonResponse()
137137

138138
// Create model with usage accounting disabled
139139
const settings: OpenRouterChatSettings = {
140140
// No usage property
141-
};
141+
}
142142

143143
const model = new OpenRouterChatLanguageModel('test-model', settings, {
144144
provider: 'openrouter.chat',
145145
url: () => 'https://api.openrouter.ai/chat/completions',
146146
headers: () => ({}),
147147
compatibility: 'strict',
148148
fetch: global.fetch,
149-
});
149+
})
150150

151151
// Call the model
152152
const result = await model.doGenerate({
@@ -159,9 +159,9 @@ describe('OpenRouter Usage Accounting', () => {
159159
],
160160
maxTokens: 100,
161161
inputFormat: 'messages',
162-
});
162+
})
163163

164164
// Verify that OpenRouter metadata is not included
165-
expect(result.providerMetadata?.openrouter?.usage).toBeUndefined();
166-
});
167-
});
165+
expect(result.providerMetadata?.openrouter?.usage).toBeUndefined()
166+
})
167+
})

0 commit comments

Comments
 (0)