@@ -3,6 +3,11 @@ import { afterEach, beforeEach, describe, test } from 'node:test'
33import {
44 getNavigatorLanguage ,
55 getPreferredLanguageKey ,
6+ chatgptApiModelKeys ,
7+ gptApiModelKeys ,
8+ claudeApiModelKeys ,
9+ openRouterApiModelKeys ,
10+ aimlApiModelKeys ,
611 isUsingAimlApiModel ,
712 isUsingAzureOpenAiApiModel ,
813 isUsingBingWebModel ,
@@ -19,6 +24,7 @@ import {
1924 isUsingMultiModeModel ,
2025 isUsingOllamaApiModel ,
2126 isUsingOpenAiApiModel ,
27+ isUsingGptCompletionApiModel ,
2228 isUsingOpenRouterApiModel ,
2329} from '../../../src/config/index.mjs'
2430
@@ -64,19 +70,32 @@ test('getNavigatorLanguage treats zh-Hant locale as zhHant', () => {
6470} )
6571
6672test ( 'isUsingChatgptApiModel detects chatgpt API models and excludes custom model' , ( ) => {
67- assert . equal ( isUsingChatgptApiModel ( { modelName : 'chatgptApi4oMini' } ) , true )
73+ for ( const modelName of chatgptApiModelKeys ) {
74+ assert . equal ( isUsingChatgptApiModel ( { modelName } ) , true )
75+ }
6876 assert . equal ( isUsingChatgptApiModel ( { modelName : 'customModel' } ) , false )
6977} )
7078
7179test ( 'isUsingOpenAiApiModel accepts both chat and completion API model groups' , ( ) => {
72- assert . equal ( isUsingOpenAiApiModel ( { modelName : 'chatgptApi4oMini' } ) , true )
73- assert . equal ( isUsingOpenAiApiModel ( { modelName : 'gptApiInstruct' } ) , true )
80+ for ( const modelName of chatgptApiModelKeys ) {
81+ assert . equal ( isUsingOpenAiApiModel ( { modelName } ) , true )
82+ }
83+ for ( const modelName of gptApiModelKeys ) {
84+ assert . equal ( isUsingOpenAiApiModel ( { modelName } ) , true )
85+ }
7486} )
7587
7688test ( 'isUsingOpenAiApiModel excludes custom model' , ( ) => {
7789 assert . equal ( isUsingOpenAiApiModel ( { modelName : 'customModel' } ) , false )
7890} )
7991
92+ test ( 'isUsingGptCompletionApiModel accepts all completion API model keys' , ( ) => {
93+ for ( const modelName of gptApiModelKeys ) {
94+ assert . equal ( isUsingGptCompletionApiModel ( { modelName } ) , true )
95+ }
96+ assert . equal ( isUsingGptCompletionApiModel ( { modelName : 'chatgptApi4oMini' } ) , false )
97+ } )
98+
8099test ( 'isUsingCustomModel works with modelName and apiMode forms' , ( ) => {
81100 assert . equal ( isUsingCustomModel ( { modelName : 'customModel' } ) , true )
82101
@@ -113,8 +132,9 @@ test('isUsingGeminiWebModel detects bard/gemini web models', () => {
113132} )
114133
115134test ( 'isUsingClaudeApiModel detects Claude API models' , ( ) => {
116- assert . equal ( isUsingClaudeApiModel ( { modelName : 'claude37SonnetApi' } ) , true )
117- assert . equal ( isUsingClaudeApiModel ( { modelName : 'claudeOpus4Api' } ) , true )
135+ for ( const modelName of claudeApiModelKeys ) {
136+ assert . equal ( isUsingClaudeApiModel ( { modelName } ) , true )
137+ }
118138 assert . equal ( isUsingClaudeApiModel ( { modelName : 'claude2WebFree' } ) , false )
119139} )
120140
@@ -131,16 +151,16 @@ test('isUsingDeepSeekApiModel detects DeepSeek models', () => {
131151} )
132152
133153test ( 'isUsingOpenRouterApiModel detects OpenRouter models' , ( ) => {
134- assert . equal (
135- isUsingOpenRouterApiModel ( { modelName : 'openRouter_anthropic_claude_sonnet4' } ) ,
136- true ,
137- )
138- assert . equal ( isUsingOpenRouterApiModel ( { modelName : 'openRouter_openai_o3' } ) , true )
154+ for ( const modelName of openRouterApiModelKeys ) {
155+ assert . equal ( isUsingOpenRouterApiModel ( { modelName } ) , true )
156+ }
139157 assert . equal ( isUsingOpenRouterApiModel ( { modelName : 'chatgptApi4oMini' } ) , false )
140158} )
141159
142160test ( 'isUsingAimlApiModel detects AI/ML models' , ( ) => {
143- assert . equal ( isUsingAimlApiModel ( { modelName : 'aiml_claude_3_7_sonnet_20250219' } ) , true )
161+ for ( const modelName of aimlApiModelKeys ) {
162+ assert . equal ( isUsingAimlApiModel ( { modelName } ) , true )
163+ }
144164 assert . equal ( isUsingAimlApiModel ( { modelName : 'chatgptApi4oMini' } ) , false )
145165} )
146166
0 commit comments