@@ -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,23 +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 )
68- assert . equal ( isUsingChatgptApiModel ( { modelName : 'chatgptApi5' } ) , true )
69- assert . equal ( isUsingChatgptApiModel ( { modelName : 'chatgptApi5_1' } ) , true )
70- assert . equal ( isUsingChatgptApiModel ( { modelName : 'chatgptApi5_2' } ) , true )
71- assert . equal ( isUsingChatgptApiModel ( { modelName : 'chatgptApi5_4' } ) , true )
73+ for ( const modelName of chatgptApiModelKeys ) {
74+ assert . equal ( isUsingChatgptApiModel ( { modelName } ) , true )
75+ }
7276 assert . equal ( isUsingChatgptApiModel ( { modelName : 'customModel' } ) , false )
7377} )
7478
7579test ( 'isUsingOpenAiApiModel accepts both chat and completion API model groups' , ( ) => {
76- assert . equal ( isUsingOpenAiApiModel ( { modelName : 'chatgptApi4oMini' } ) , true )
77- 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+ }
7886} )
7987
8088test ( 'isUsingOpenAiApiModel excludes custom model' , ( ) => {
8189 assert . equal ( isUsingOpenAiApiModel ( { modelName : 'customModel' } ) , false )
8290} )
8391
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+
8499test ( 'isUsingCustomModel works with modelName and apiMode forms' , ( ) => {
85100 assert . equal ( isUsingCustomModel ( { modelName : 'customModel' } ) , true )
86101
@@ -117,8 +132,9 @@ test('isUsingGeminiWebModel detects bard/gemini web models', () => {
117132} )
118133
119134test ( 'isUsingClaudeApiModel detects Claude API models' , ( ) => {
120- assert . equal ( isUsingClaudeApiModel ( { modelName : 'claude37SonnetApi' } ) , true )
121- assert . equal ( isUsingClaudeApiModel ( { modelName : 'claudeOpus4Api' } ) , true )
135+ for ( const modelName of claudeApiModelKeys ) {
136+ assert . equal ( isUsingClaudeApiModel ( { modelName } ) , true )
137+ }
122138 assert . equal ( isUsingClaudeApiModel ( { modelName : 'claude2WebFree' } ) , false )
123139} )
124140
@@ -135,16 +151,16 @@ test('isUsingDeepSeekApiModel detects DeepSeek models', () => {
135151} )
136152
137153test ( 'isUsingOpenRouterApiModel detects OpenRouter models' , ( ) => {
138- assert . equal (
139- isUsingOpenRouterApiModel ( { modelName : 'openRouter_anthropic_claude_sonnet4' } ) ,
140- true ,
141- )
142- assert . equal ( isUsingOpenRouterApiModel ( { modelName : 'openRouter_openai_o3' } ) , true )
154+ for ( const modelName of openRouterApiModelKeys ) {
155+ assert . equal ( isUsingOpenRouterApiModel ( { modelName } ) , true )
156+ }
143157 assert . equal ( isUsingOpenRouterApiModel ( { modelName : 'chatgptApi4oMini' } ) , false )
144158} )
145159
146160test ( 'isUsingAimlApiModel detects AI/ML models' , ( ) => {
147- assert . equal ( isUsingAimlApiModel ( { modelName : 'aiml_claude_3_7_sonnet_20250219' } ) , true )
161+ for ( const modelName of aimlApiModelKeys ) {
162+ assert . equal ( isUsingAimlApiModel ( { modelName } ) , true )
163+ }
148164 assert . equal ( isUsingAimlApiModel ( { modelName : 'chatgptApi4oMini' } ) , false )
149165} )
150166
0 commit comments