Browse Source

Fix webview tests

Kevin van Dijk 1 month ago
parent
commit
be260c8a90

+ 10 - 0
webview-ui/src/components/kilocode/hooks/useProviderModels.ts

@@ -15,6 +15,8 @@ import {
 	mistralModels,
 	mistralModels,
 	openAiNativeDefaultModelId,
 	openAiNativeDefaultModelId,
 	openAiNativeModels,
 	openAiNativeModels,
+	openAiCodexDefaultModelId, // kilocode_change
+	openAiCodexModels, // kilocode_change
 	vertexDefaultModelId,
 	vertexDefaultModelId,
 	vertexModels,
 	vertexModels,
 	xaiDefaultModelId,
 	xaiDefaultModelId,
@@ -167,6 +169,14 @@ export const getModelsByProvider = ({
 				defaultModel: openAiNativeDefaultModelId,
 				defaultModel: openAiNativeDefaultModelId,
 			}
 			}
 		}
 		}
+		// kilocode_change start
+		case "openai-codex": {
+			return {
+				models: openAiCodexModels,
+				defaultModel: openAiCodexDefaultModelId,
+			}
+		}
+		// kilocode_change end
 		case "mistral": {
 		case "mistral": {
 			return {
 			return {
 				models: mistralModels,
 				models: mistralModels,

+ 3 - 1
webview-ui/src/components/settings/LanguageSettings.tsx

@@ -20,7 +20,9 @@ type LanguageSettingsProps = HTMLAttributes<HTMLDivElement> & {
 
 
 // kilocode_change start: sort languages
 // kilocode_change start: sort languages
 function getSortedLanguages() {
 function getSortedLanguages() {
-	return Object.entries(LANGUAGES).toSorted((a, b) => a[0].localeCompare(b[0]))
+	// NOTE: `Array.prototype.toSorted` is not available in older Node runtimes used by CI.
+	// `Object.entries()` already returns a new array, so in-place `sort()` is safe here.
+	return Object.entries(LANGUAGES).sort((a, b) => a[0].localeCompare(b[0]))
 }
 }
 // kilocode_change end
 // kilocode_change end
 
 

+ 4 - 0
webview-ui/src/components/settings/__tests__/SettingsView.change-detection.spec.tsx

@@ -16,6 +16,10 @@ import { useExtensionState } from "@src/context/ExtensionStateContext"
 
 
 // Mock the extension state context
 // Mock the extension state context
 vi.mock("@src/context/ExtensionStateContext", () => ({
 vi.mock("@src/context/ExtensionStateContext", () => ({
+	// kilocode_change: some components access the raw context via `useContext(ExtensionStateContext)`
+	ExtensionStateContext: React.createContext<any>(undefined),
+	// kilocode_change: keep provider available in case a component tree expects it
+	ExtensionStateContextProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
 	useExtensionState: vi.fn(),
 	useExtensionState: vi.fn(),
 }))
 }))
 
 

+ 5 - 0
webview-ui/src/components/settings/__tests__/SettingsView.unsaved-changes.spec.tsx

@@ -14,6 +14,11 @@ const mockVscode = {
 
 
 // Mock the extension state context
 // Mock the extension state context
 vi.mock("@src/context/ExtensionStateContext", () => ({
 vi.mock("@src/context/ExtensionStateContext", () => ({
+	// kilocode_change: some components access the raw context via `useContext(ExtensionStateContext)`
+	// (e.g. MarketplaceView). Provide the named export so module consumers don't crash.
+	ExtensionStateContext: React.createContext<any>(undefined),
+	// kilocode_change: keep provider available in case a component tree expects it
+	ExtensionStateContextProvider: ({ children }: { children: React.ReactNode }) => <>{children}</>,
 	useExtensionState: vi.fn(),
 	useExtensionState: vi.fn(),
 }))
 }))